46 #ifndef Xyce_N_DEV_ADC_h
47 #define Xyce_N_DEV_ADC_h
50 #include <N_UTL_fwd.h>
68 static const char *
name() {
return "ADC";}
69 static const char *
deviceTypeName() {
return "YADC level 1 (Analog to Digital Interface)";};
107 void registerLIDs(
const std::vector<int> & intLIDVecRef,
108 const std::vector<int> & extLIDVecRef );
111 const std::vector< std::vector<int> > &
jacobianStamp()
const;
112 void registerJacLIDs(
const std::vector< std::vector<int> > & jacLIDVec );
122 void getTVVEC(std::vector< std::pair<double, double> > & TVVVEC_Out);
169 std::vector< std::pair<double, double> >
TVVEC;
259 virtual bool updateState (
double * solVec,
double * staVec,
double * stoVec);
263 virtual bool loadDAEVectors (
double * solVec,
double * fVec,
double * qVec,
double * bVec,
double * storeLeadF,
double * storeLeadQ,
double * leadF,
double * leadQ,
double * junctionV);
264 virtual bool loadDAEMatrices (Linear::Matrix & dFdx, Linear::Matrix & dQdx);
266 bool getBreakPoints (std::vector<Util::BreakPoint> &breakPointTimes);
Instance(const Configuration &configuration, const InstanceBlock &instance_block, Model &model, const FactoryBlock &factory_block)
static std::vector< std::vector< int > > jacStamp
void registerJacLIDs(const std::vector< std::vector< int > > &jacLIDVec)
static const char * name()
static void loadModelParameters(ParametricData< Model > &model_parameters)
virtual void forEachInstance(DeviceInstanceOp &op) const
double lowerVoltageLimit_
Pure virtual class to augment a linear system.
void getTVVEC(std::vector< std::pair< double, double > > &TVVVEC_Out)
bool processInstanceParams()
processInstanceParams
static const char * deviceTypeName()
double upperVoltageLimit_
bool getInstanceBreakPoints(std::vector< Util::BreakPoint > &breakPointTimes)
std::vector< Instance * > InstanceVector
static void loadInstanceParameters(ParametricData< Instance > &instance_parameters)
static Device * factory(const Configuration &configuration, const FactoryBlock &factory_block)
Master(const Configuration &configuration, const FactoryBlock &factory_block, const SolverState &ss1, const DeviceOptions &do1)
bool getInstanceParamsMap(std::map< std::string, double > ¶msMap)
virtual std::ostream & printOutInstances(std::ostream &os) const
virtual bool loadDAEMatrices(Linear::Matrix &dFdx, Linear::Matrix &dQdx)
Populates the device's Jacobian object with these pointers.
DeviceMaster instantiates a device as described by the device traits T.
The FactoryBlock contains parameters needed by the device, instance and model creation functions...
static bool isLinearDevice()
std::vector< std::pair< double, double > > TVVEC
void addInstance(Instance *instance)
std::vector< Instance * > instanceContainer
bool getBreakPoints(std::vector< Util::BreakPoint > &breakPointTimes)
bool processParams()
processParams
The Device class is an interface for device implementations.
const std::vector< std::vector< int > > & jacobianStamp() const
bool updateIntermediateVars()
virtual bool updateSecondaryState(double *staDeriv, double *stoVec)
Updates the devices secondary state information.
Class Configuration contains device configuration data.
bool setBitVectorWidth(int width)
void trimTVVEC(double earliestTime)
virtual void loadNodeSymbols(Util::SymbolTable &symbol_table) const
Populates and returns the store name map.
int outputBitVectorWidth_
virtual bool updateState(double *solVec, double *staVec, double *stoVec)
Updates the devices state information.
Model & operator=(const Model &)
bool updatePrimaryState()
void registerStateLIDs(const std::vector< int > &staLIDVecRef)
ModelBlock represents a .MODEL line from the netlist.
The DeviceTraits template describes the configuration of a device.
Manages parameter binding for class C.
void registerLIDs(const std::vector< int > &intLIDVecRef, const std::vector< int > &extLIDVecRef)
InstanceBlock represent a device instance line from the netlist.
int getNumberQuantLevels()
bool updateSecondaryState()
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.