46 #ifndef Xyce_N_DEV_JFET_h
47 #define Xyce_N_DEV_JFET_h
64 static const char *
name() {
return "JFET";}
102 void registerLIDs(
const std::vector<int> & intLIDVecRef,
103 const std::vector<int> & extLIDVecRef );
109 const std::vector< std::vector<int> > &
jacobianStamp()
const;
110 void registerJacLIDs(
const std::vector< std::vector<int> > & jacLIDVec );
128 #ifndef Xyce_ERK_JFET_CONV_TEST
153 static std::vector< std::vector<int> >
jacMap2;
278 #ifndef Xyce_NONPOINTER_MATRIX_LOAD
455 #ifndef Xyce_ERK_JFET_CONV_TEST
497 virtual bool updateState (
double * solVec,
double * staVec,
double * stoVec);
501 virtual bool loadDAEVectors (
double * solVec,
double * fVec,
double * qVec,
double * bVec,
double * storeLeadF,
double * storeLeadQ,
double * leadF,
double * leadQ,
double * junctionV);
504 virtual bool loadDAEMatrices (Linear::Matrix & dFdx, Linear::Matrix & dQdx);
double * q_SourcePrimeEquSourceNodePtr
double * q_SourcePrimeEquGateNodePtr
int ASourceEquSourceNodeOffset
Master(const Configuration &configuration, const FactoryBlock &factory_block, const SolverState &ss1, const DeviceOptions &do1)
Instance(const Configuration &configuration, const InstanceBlock &instance_block, Model &model, const FactoryBlock &factory_block)
static std::vector< int > jacMap_SC
bool updateTemperature(const double &temp_tmp)
double * q_SourceEquSourceNodePtr
double * q_DrainEquDrainPrimeNodePtr
int ASourcePrimeEquSourcePrimeNodeOffset
Pure virtual class to augment a linear system.
double * f_SourceEquSourceNodePtr
virtual std::ostream & printOutInstances(std::ostream &os) const
double * q_DrainPrimeEquGateNodePtr
static const char * deviceTypeName()
virtual void forEachInstance(DeviceInstanceOp &op) const
Apply a device instance "op" to all instances associated with this model.
int ASourceEquSourcePrimeNodeOffset
Instance & operator=(const Instance &)
static std::vector< std::vector< int > > jacStamp
double * f_SourceEquSourcePrimeNodePtr
double * f_DrainPrimeEquSourcePrimeNodePtr
double * q_GateEquDrainPrimeNodePtr
static std::vector< int > jacMap_DC
static std::vector< std::vector< int > > jacStamp_SC
static std::vector< std::vector< int > > jacStamp_DC
double * q_SourcePrimeEquDrainPrimeNodePtr
int AGateEquDrainPrimeNodeOffset
static bool isLinearDevice()
int ADrainEquDrainPrimeNodeOffset
double * q_SourceEquSourcePrimeNodePtr
double * f_DrainPrimeEquDrainPrimeNodePtr
std::vector< Instance * > instanceContainer
static bool modelRequired()
DeviceMaster instantiates a device as described by the device traits T.
int ADrainPrimeEquDrainPrimeNodeOffset
double * f_SourcePrimeEquSourceNodePtr
int ADrainPrimeEquGateNodeOffset
The FactoryBlock contains parameters needed by the device, instance and model creation functions...
int ADrainEquDrainNodeOffset
void registerStoreLIDs(const std::vector< int > &stoLIDVecRef)
double * q_SourcePrimeEquSourcePrimeNodePtr
virtual bool loadDAEVectors(double *solVec, double *fVec, double *qVec, double *bVec, double *storeLeadF, double *storeLeadQ, double *leadF, double *leadQ, double *junctionV)
Populates the device's ExternData object with these pointers.
double * f_SourcePrimeEquGateNodePtr
double * f_DrainPrimeEquDrainNodePtr
static std::vector< std::vector< int > > jacMap2_DC
double * q_DrainPrimeEquDrainPrimeNodePtr
double * q_DrainEquDrainNodePtr
bool processParams()
processParams
static void loadModelParameters(ParametricData< Model > &model_parameters)
static std::vector< std::vector< int > > jacMap2_DC_SC
The Device class is an interface for device implementations.
const std::vector< std::vector< int > > & jacobianStamp() const
static std::vector< std::vector< int > > jacStamp_DC_SC
static std::vector< int > jacMap
double * f_GateEquGateNodePtr
Class Configuration contains device configuration data.
virtual bool loadDAEMatrices(Linear::Matrix &dFdx, Linear::Matrix &dQdx)
Populates the device's Jacobian object with these pointers.
static void loadInstanceParameters(ParametricData< Instance > &instance_parameters)
double * q_GateEquGateNodePtr
static std::vector< int > jacMap_DC_SC
double * f_GateEquDrainPrimeNodePtr
std::vector< Instance * > InstanceVector
void registerStateLIDs(const std::vector< int > &staLIDVecRef)
int AGateEquSourcePrimeNodeOffset
void registerLIDs(const std::vector< int > &intLIDVecRef, const std::vector< int > &extLIDVecRef)
bool processInstanceParams()
processInstanceParams
double * q_GateEquSourcePrimeNodePtr
bool updateIntermediateVars()
int ADrainPrimeEquSourcePrimeNodeOffset
double * f_SourcePrimeEquSourcePrimeNodePtr
static Device * factory(const Configuration &configuration, const FactoryBlock &factory_block)
virtual bool updateState(double *solVec, double *staVec, double *stoVec)
Updates the devices state information.
double * f_GateEquSourcePrimeNodePtr
void addInstance(Instance *instance)
double * f_DrainEquDrainNodePtr
void registerJacLIDs(const std::vector< std::vector< int > > &jacLIDVec)
double * q_DrainPrimeEquDrainNodePtr
Model & operator=(const Model &)
static const char * name()
ModelBlock represents a .MODEL line from the netlist.
The DeviceTraits template describes the configuration of a device.
double * f_SourcePrimeEquDrainPrimeNodePtr
Manages parameter binding for class C.
InstanceBlock represent a device instance line from the netlist.
void loadNodeSymbols(Util::SymbolTable &symbol_table) const
Populates and returns the store name map.
int AGateEquGateNodeOffset
int ADrainPrimeEquDrainNodeOffset
int ASourcePrimeEquGateNodeOffset
int ASourcePrimeEquDrainPrimeNodeOffset
double * q_DrainPrimeEquSourcePrimeNodePtr
static std::vector< std::vector< int > > jacMap2
double * f_DrainEquDrainPrimeNodePtr
bool updatePrimaryState()
int ASourcePrimeEquSourceNodeOffset
static std::vector< std::vector< int > > jacMap2_SC
double * f_DrainPrimeEquGateNodePtr