47 #ifndef Xyce_N_DEV_MemristorYakopcic_h
48 #define Xyce_N_DEV_MemristorYakopcic_h
55 #include <N_UTL_RandomNumbers.h>
60 namespace MemristorYakopcic {
77 const std::string &name,
78 std::vector<double> & dfdp,
79 std::vector<double> & dqdp,
80 std::vector<double> & dbdp,
81 std::vector<int> & Findices,
82 std::vector<int> & Qindices,
83 std::vector<int> & Bindices
91 static const char *
name() {
return "MemristorYakopcic";}
181 virtual void registerLIDs(
const std::vector<int> & intLIDVecRef,
const std::vector<int> & extLIDVecRef) ;
185 virtual void registerJacLIDs(
const std::vector< std::vector<int> > & jacLIDVec) ;
279 #ifndef Xyce_NONPOINTER_MATRIX_LOAD
451 virtual bool updateState(
double * solVec,
double * staVec,
double * stoVec);
452 virtual bool loadDAEVectors (
double * solVec,
double * fVec,
double * qVec,
double * bVec,
double * storeLeadF,
double * storeLeadQ,
double * leadF,
double * leadQ,
double * junctionV);
453 virtual bool loadDAEMatrices(Linear::Matrix & dFdx, Linear::Matrix & dQdx);
463 #endif // Xyce_N_DEV_MemristorYakopcic_h
InstanceVector instanceContainer
static void loadInstanceParameters(ParametricData< Instance > &p)
Instance & operator=(const Instance &)
double randomResDeltaGrad_
Model & operator=(const Model &)
Pure virtual class to augment a linear system.
virtual bool processInstanceParams()
processInstanceParams
virtual bool loadDAEdFdx()
virtual bool processParams()
Base class for all parameters.
virtual bool loadDAEFVector()
static std::vector< std::vector< int > > jacStamp
double * f_PosEquPosNodePtr
double randomResUpdateTime_
void loadNodeSymbols(Util::SymbolTable &symbol_table) const
Populates and returns the store name map.
virtual void forEachInstance(DeviceInstanceOp &op) const
memristorYakopcicSensitivity()
double randomXEpsilonUpdateTime_
static memristorYakopcicSensitivity memrSens
virtual bool updatePrimaryState()
static bool modelRequired()
virtual bool updateState(double *solVec, double *staVec, double *stoVec)
Updates the devices state information.
static Device * factory(const Configuration &configuration, const FactoryBlock &factory_block)
virtual ~memristorYakopcicSensitivity()
DeviceMaster instantiates a device as described by the device traits T.
static const char * deviceTypeName()
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 resNoiseNextUpdateTime
The FactoryBlock contains parameters needed by the device, instance and model creation functions...
double * f_NegEquXNodePtr
Master(const Configuration &configuration, const FactoryBlock &factory_block, const SolverState &solver_state, const DeviceOptions &device_options)
int resNoiseLastUpdateStep
virtual bool loadDAEdQdx()
double randomXNoiseLambda_
virtual void setupPointers()
double * f_PosEquXNodePtr
double * f_XEquPosNodePtr
double resNoiseLastUpdateTime
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
double randomResNoiseMean_
virtual bool loadDAEMatrices(Linear::Matrix &dFdx, Linear::Matrix &dQdx)
Populates the device's Jacobian object with these pointers.
The Device class is an interface for device implementations.
double * f_NegEquPosNodePtr
static const char * name()
virtual bool updateTemperature(const double &temp_tmp)
static bool isLinearDevice()
Class Configuration contains device configuration data.
static void loadModelParameters(ParametricData< Model > &p)
double xNoiseNextUpdateTime
virtual std::ostream & printOutInstances(std::ostream &os) const
std::vector< Instance * > InstanceVector
double randomResNoiseLambda_
virtual void registerStoreLIDs(const std::vector< int > &stoLIDVecRef)
Instance(const Configuration &configuration, const InstanceBlock &instance_block, Model &model, const FactoryBlock &factory_block)
double * f_XEquNegNodePtr
double xNoiseLastUpdateTime
double * f_PosEquNegNodePtr
virtual bool updateIntermediateVars()
virtual void registerLIDs(const std::vector< int > &intLIDVecRef, const std::vector< int > &extLIDVecRef)
double * f_NegEquNegNodePtr
virtual void registerBranchDataLIDs(const std::vector< int > &branchLIDVecRef)
double randomXUpdateTime_
Base sensitivity functor.
ModelBlock represents a .MODEL line from the netlist.
void addInstance(Instance *instance)
The DeviceTraits template describes the configuration of a device.
virtual const std::vector< std::vector< int > > & jacobianStamp() const
virtual bool processParams()
processParams
Manages parameter binding for class C.
InstanceBlock represent a device instance line from the netlist.
virtual void registerStateLIDs(const std::vector< int > &staLIDVecRef)
virtual void registerJacLIDs(const std::vector< std::vector< int > > &jacLIDVec)
static void initializeJacobianStamp()
virtual bool loadDAEQVector()
double randomResEpsilonUpdateTime_
Xyce::Util::RandomNumbers * randomNumberGen_