JUK1
NLNMOS< T > Struct Template Reference

a non-linear FET model More...

#include <NLNMOS.hpp>

Inheritance diagram for NLNMOS< T >:
Collaboration diagram for NLNMOS< T >:

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...
 
- Public Member Functions inherited from Component< T >
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 Public Member Functions inherited from Component< T >
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
 
u_gd_last = 0
 
u_gs_last = 0
 
i_gd_last = 0
 
i_gs_last = 0
 
C_GD_last = C_GDp + C_GDo * (1.0 + std::tanh(P_D10 + P_D11 * u_gd_last))
 
C_GS_last = C_GSp + C_GSo * (1.0 + std::tanh(P_S10 + P_S11 * u_gs_last))
 
- Public Attributes inherited from Component< T >
std::string designator = ""
 The designator as in the netlist for e.g. More...
 

Detailed Description

template<typename T>
struct NLNMOS< T >

a non-linear FET model

Template Parameters
Tthe value type

Definition at line 10 of file NLNMOS.hpp.

Member Function Documentation

◆ addNonLinearStampTo()

template<typename T >
void NLNMOS< T >::addNonLinearStampTo ( Stamp< T > &  destination,
const Matrix< T > &  solutionMatrix,
const size_t  currentSolutionIndex,
timestep = 0 
) const
inlinevirtual

adds this component's non-linear stamp to the target stamp.

Parameters
destinationThe stamp to be added to.
solutionMatrixA vector containing all past solutions to the circuit
currentSolutionIndexThe current timeStep index
timestepThe length of each time step

Reimplemented from Component< T >.

Definition at line 40 of file NLNMOS.hpp.

◆ addToElements()

template<typename T >
static void NLNMOS< T >::addToElements ( const std::string &  line,
CircuitElements< T > &  elements,
size_t &  numNodes,
size_t &  numCurrents,
size_t &  numDCCurrents 
)
inlinestatic

Definition at line 181 of file NLNMOS.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ updateStoredState()

template<typename T >
void NLNMOS< T >::updateStoredState ( const Matrix< T > &  solutionMatrix,
const size_t  currentSolutionIndex,
timestep,
size_t  numCurrents 
)
inlinevirtual

Updates any stored state based on the current solution index.

Parameters
solutionMatrixA vector containing all past solutions to the circuit
currentSolutionIndexThe current timeStep index
timestepThe length of each time step
sizeG_Athe 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.

Member Data Documentation

◆ alpha_DS

template<typename T >
const T NLNMOS< T >::alpha_DS = 0.42

Definition at line 27 of file NLNMOS.hpp.

◆ beta_DS

template<typename T >
const T NLNMOS< T >::beta_DS = 1.3

Definition at line 26 of file NLNMOS.hpp.

◆ C_GD_last

template<typename T >
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.

◆ C_GDo

template<typename T >
const T NLNMOS< T >::C_GDo = 1

Definition at line 22 of file NLNMOS.hpp.

◆ C_GDp

template<typename T >
const T NLNMOS< T >::C_GDp = 0.5

Definition at line 21 of file NLNMOS.hpp.

◆ C_GS_last

template<typename T >
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.

◆ C_GSo

template<typename T >
const T NLNMOS< T >::C_GSo = 0.5

Definition at line 18 of file NLNMOS.hpp.

◆ C_GSp

template<typename T >
const T NLNMOS< T >::C_GSp = 0.01

Definition at line 17 of file NLNMOS.hpp.

◆ d

template<typename T >
size_t NLNMOS< T >::d = 0

Definition at line 12 of file NLNMOS.hpp.

◆ g

template<typename T >
size_t NLNMOS< T >::g = 0

Definition at line 13 of file NLNMOS.hpp.

◆ i_gd_last

template<typename T >
T NLNMOS< T >::i_gd_last = 0

Definition at line 33 of file NLNMOS.hpp.

◆ i_gs_last

template<typename T >
T NLNMOS< T >::i_gs_last = 0

Definition at line 34 of file NLNMOS.hpp.

◆ P_D10

template<typename T >
const T NLNMOS< T >::P_D10 = -1

Definition at line 23 of file NLNMOS.hpp.

◆ P_D11

template<typename T >
const T NLNMOS< T >::P_D11 = 0.4

Definition at line 24 of file NLNMOS.hpp.

◆ P_S10

template<typename T >
const T NLNMOS< T >::P_S10 = 0

Definition at line 19 of file NLNMOS.hpp.

◆ P_S11

template<typename T >
const T NLNMOS< T >::P_S11 = 0.5

Definition at line 20 of file NLNMOS.hpp.

◆ s

template<typename T >
size_t NLNMOS< T >::s = 0

Definition at line 14 of file NLNMOS.hpp.

◆ u_gd_last

template<typename T >
T NLNMOS< T >::u_gd_last = 0

Definition at line 29 of file NLNMOS.hpp.

◆ u_gs_last

template<typename T >
T NLNMOS< T >::u_gs_last = 0

Definition at line 30 of file NLNMOS.hpp.


The documentation for this struct was generated from the following file: