50 #ifndef Xyce_N_DEV_MemristorTEAM_h
51 #define Xyce_N_DEV_MemristorTEAM_h
58 #include <N_UTL_RandomNumbers.h>
62 namespace MemristorTEAM {
79 const std::string &name,
80 std::vector<double> & dfdp,
81 std::vector<double> & dqdp,
82 std::vector<double> & dbdp,
83 std::vector<int> & Findices,
84 std::vector<int> & Qindices,
85 std::vector<int> & Bindices
93 static const char *
name() {
return "MemristorTEAM";}
183 virtual void registerLIDs(
const std::vector<int> & intLIDVecRef,
const std::vector<int> & extLIDVecRef) ;
187 virtual void registerJacLIDs(
const std::vector< std::vector<int> > & jacLIDVec) ;
275 #ifndef Xyce_NONPOINTER_MATRIX_LOAD
438 virtual bool updateState(
double * solVec,
double * staVec,
double * stoVec);
439 virtual bool loadDAEVectors (
double * solVec,
double * fVec,
double * qVec,
double * bVec,
double * storeLeadF,
double * storeLeadQ,
double * leadF,
double * leadQ,
double * junctionV);
440 virtual bool loadDAEMatrices(Linear::Matrix & dFdx, Linear::Matrix & dQdx);
450 #endif // Xyce_N_DEV_MemristorTEAM_h
double * f_XEquNegNodePtr
static bool isLinearDevice()
virtual void registerStoreLIDs(const std::vector< int > &stoLIDVecRef)
double * f_PosEquNegNodePtr
virtual bool loadDAEMatrices(Linear::Matrix &dFdx, Linear::Matrix &dQdx)
Populates the device's Jacobian object with these pointers.
static const char * name()
Pure virtual class to augment a linear system.
virtual bool loadDAEFVector()
double * f_NegEquXNodePtr
virtual void registerLIDs(const std::vector< int > &intLIDVecRef, const std::vector< int > &extLIDVecRef)
Model & operator=(const Model &)
void addInstance(Instance *instance)
Base class for all parameters.
virtual std::ostream & printOutInstances(std::ostream &os) const
Instance & operator=(const Instance &)
int resNoiseLastUpdateStep
double randomResUpdateTime_
double randomResEpsilonUpdateTime_
std::vector< Instance * > InstanceVector
static void loadInstanceParameters(ParametricData< Instance > &p)
virtual const std::vector< std::vector< int > > & jacobianStamp() const
virtual void operator()(const ParameterBase &entity, const std::string &name, std::vector< double > &dfdp, std::vector< double > &dqdp, std::vector< double > &dbdp, std::vector< int > &Findices, std::vector< int > &Qindices, std::vector< int > &Bindices) const
virtual bool loadDAEQVector()
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 void initializeJacobianStamp()
double resNoiseNextUpdateTime
double resNoiseLastUpdateTime
virtual void registerJacLIDs(const std::vector< std::vector< int > > &jacLIDVec)
InstanceVector instanceContainer
Instance(const Configuration &configuration, const InstanceBlock &instance_block, Model &model, const FactoryBlock &factory_block)
virtual bool loadDAEdFdx()
double * f_PosEquPosNodePtr
static memristorTEAMSensitivity memrSens
virtual bool updateIntermediateVars()
virtual bool processInstanceParams()
processInstanceParams
The Device class is an interface for device implementations.
double * f_XEquPosNodePtr
virtual bool updateTemperature(const double &temp_tmp)
virtual bool updatePrimaryState()
double * f_PosEquXNodePtr
static const char * deviceTypeName()
static bool modelRequired()
Class Configuration contains device configuration data.
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_NegEquNegNodePtr
virtual void registerBranchDataLIDs(const std::vector< int > &branchLIDVecRef)
virtual bool updateState(double *solVec, double *staVec, double *stoVec)
Updates the devices state information.
double randomResDeltaGrad_
virtual void forEachInstance(DeviceInstanceOp &op) const
virtual bool processParams()
double randomResNoiseMean_
virtual ~memristorTEAMSensitivity()
Master(const Configuration &configuration, const FactoryBlock &factory_block, const SolverState &solver_state, const DeviceOptions &device_options)
virtual void registerStateLIDs(const std::vector< int > &staLIDVecRef)
static void loadModelParameters(ParametricData< Model > &p)
double * f_NegEquPosNodePtr
static std::vector< std::vector< int > > jacStamp
void loadNodeSymbols(Util::SymbolTable &symbol_table) const
Populates and returns the store name map.
memristorTEAMSensitivity()
Base sensitivity functor.
ModelBlock represents a .MODEL line from the netlist.
The DeviceTraits template describes the configuration of a device.
Manages parameter binding for class C.
InstanceBlock represent a device instance line from the netlist.
Xyce::Util::RandomNumbers * randomNumberGen_
static Device * factory(const Configuration &configuration, const FactoryBlock &factory_block)
virtual void setupPointers()
double randomResNoiseLambda_
virtual bool loadDAEdQdx()
virtual bool processParams()
processParams