JUK1
|
a non-linear FET model More...
#include <NLNMOS.hpp>
Public Member Functions | |
void | addNonLinearStampTo (Stamp< T > &stamp, const Matrix< T > &solutionMatrix, const size_t currentSolutionIndex, T timestep=0) const |
adds this component's non-linear stamp to the target stamp. More... | |
void | updateStoredState (const Matrix< T > &solutionMatrix, const size_t currentSolutionIndex, T timestep, size_t sizeG_A) |
Updates any stored state based on the current solution index. More... | |
![]() | |
virtual void | addStaticStampTo (Stamp< T > &destination) const |
Adds this component's static stamp to the target stamp. More... | |
virtual void | addDynamicStampTo (Stamp< T > &destination, const Matrix< T > &solutionMatrix, const size_t currentSolutionIndex, T timestep) const |
Adds this component's dynamic stamp to the target stamp. More... | |
virtual void | addDCAnalysisStampTo (Stamp< T > &destination, const Matrix< T > &solutionVector, size_t numCurrents) const |
adds this component's DC stamp to the target stamp. More... | |
virtual void | updateDCStoredState (const Matrix< T > &solutionVector, size_t sizeG_A, size_t numCurrents) |
a function to update the stored state of a component based on a DC value More... | |
virtual void | setTimestep (T timestep) |
initialises the component More... | |
virtual | ~Component () |
Static Public Member Functions | |
static void | addToElements (const std::string &line, CircuitElements< T > &elements, size_t &numNodes, size_t &numCurrents, size_t &numDCCurrents) |
![]() | |
static void | addToElements (const std::string &line, CircuitElements< T > &elements, size_t &numNodes, size_t &numCurrents, size_t &numDCCurrents) |
Called as a helper to add the component to the elements class. More... | |
Public Attributes | |
size_t | d = 0 |
size_t | g = 0 |
size_t | s = 0 |
const T | C_GSp = 0.01 |
const T | C_GSo = 0.5 |
const T | P_S10 = 0 |
const T | P_S11 = 0.5 |
const T | C_GDp = 0.5 |
const T | C_GDo = 1 |
const T | P_D10 = -1 |
const T | P_D11 = 0.4 |
const T | beta_DS = 1.3 |
const T | alpha_DS = 0.42 |
T | u_gd_last = 0 |
T | u_gs_last = 0 |
T | i_gd_last = 0 |
T | i_gs_last = 0 |
T | C_GD_last = C_GDp + C_GDo * (1.0 + std::tanh(P_D10 + P_D11 * u_gd_last)) |
T | C_GS_last = C_GSp + C_GSo * (1.0 + std::tanh(P_S10 + P_S11 * u_gs_last)) |
![]() | |
std::string | designator = "" |
The designator as in the netlist for e.g. More... | |
a non-linear FET model
T | the value type |
Definition at line 10 of file NLNMOS.hpp.
|
inlinevirtual |
adds this component's non-linear stamp to the target stamp.
destination | The stamp to be added to. |
solutionMatrix | A vector containing all past solutions to the circuit |
currentSolutionIndex | The current timeStep index |
timestep | The length of each time step |
Reimplemented from Component< T >.
Definition at line 40 of file NLNMOS.hpp.
|
inlinestatic |
Definition at line 181 of file NLNMOS.hpp.
|
inlinevirtual |
Updates any stored state based on the current solution index.
solutionMatrix | A vector containing all past solutions to the circuit |
currentSolutionIndex | The current timeStep index |
timestep | The length of each time step |
sizeG_A | the size of the A portion of G, marks the end of the equiv currents |
Reimplemented from Component< T >.
Definition at line 142 of file NLNMOS.hpp.
const T NLNMOS< T >::alpha_DS = 0.42 |
Definition at line 27 of file NLNMOS.hpp.
const T NLNMOS< T >::beta_DS = 1.3 |
Definition at line 26 of file NLNMOS.hpp.
T NLNMOS< T >::C_GD_last = C_GDp + C_GDo * (1.0 + std::tanh(P_D10 + P_D11 * u_gd_last)) |
Definition at line 36 of file NLNMOS.hpp.
const T NLNMOS< T >::C_GDo = 1 |
Definition at line 22 of file NLNMOS.hpp.
const T NLNMOS< T >::C_GDp = 0.5 |
Definition at line 21 of file NLNMOS.hpp.
T NLNMOS< T >::C_GS_last = C_GSp + C_GSo * (1.0 + std::tanh(P_S10 + P_S11 * u_gs_last)) |
Definition at line 37 of file NLNMOS.hpp.
const T NLNMOS< T >::C_GSo = 0.5 |
Definition at line 18 of file NLNMOS.hpp.
const T NLNMOS< T >::C_GSp = 0.01 |
Definition at line 17 of file NLNMOS.hpp.
size_t NLNMOS< T >::d = 0 |
Definition at line 12 of file NLNMOS.hpp.
size_t NLNMOS< T >::g = 0 |
Definition at line 13 of file NLNMOS.hpp.
T NLNMOS< T >::i_gd_last = 0 |
Definition at line 33 of file NLNMOS.hpp.
T NLNMOS< T >::i_gs_last = 0 |
Definition at line 34 of file NLNMOS.hpp.
const T NLNMOS< T >::P_D10 = -1 |
Definition at line 23 of file NLNMOS.hpp.
const T NLNMOS< T >::P_D11 = 0.4 |
Definition at line 24 of file NLNMOS.hpp.
const T NLNMOS< T >::P_S10 = 0 |
Definition at line 19 of file NLNMOS.hpp.
const T NLNMOS< T >::P_S11 = 0.5 |
Definition at line 20 of file NLNMOS.hpp.
size_t NLNMOS< T >::s = 0 |
Definition at line 14 of file NLNMOS.hpp.
T NLNMOS< T >::u_gd_last = 0 |
Definition at line 29 of file NLNMOS.hpp.
T NLNMOS< T >::u_gs_last = 0 |
Definition at line 30 of file NLNMOS.hpp.