46 #ifndef Xyce_N_DEV_Vsrc_h
47 #define Xyce_N_DEV_Vsrc_h
75 const std::string &name,
76 std::vector<double> & dfdp,
77 std::vector<double> & dqdp,
78 std::vector<double> & dbdp,
79 std::vector<int> & Findices,
80 std::vector<int> & Qindices,
81 std::vector<int> & Bindices
89 static const char *
name() {
return "Independent Voltage Source";}
131 void registerLIDs(
const std::vector<int> & intLIDVecRef,
132 const std::vector<int> & extLIDVecRef );
138 const std::vector< std::vector<int> > &
jacobianStamp()
const;
139 void registerJacLIDs(
const std::vector< std::vector<int> > & jacLIDVec );
160 void varTypes( std::vector<char> & varTypeVec );
162 void getLIDs(
int & lpos,
int & lneg,
int & lbra)
255 #ifndef Xyce_NONPOINTER_MATRIX_LOAD
350 virtual bool updateState (
double * solVec,
double * staVec,
double * stoVec);
353 virtual bool loadDAEVectors (
double * solVec,
double * fVec,
double * qVec,
double * bVec,
double * storeLeadF,
double * storeLeadQ,
double * leadF,
double * leadQ,
double * junctionV);
354 virtual bool loadDAEMatrices (Linear::Matrix & dFdx, Linear::Matrix & dQdx);
bool isLinearDevice() const
Master(const Configuration &configuration, const FactoryBlock &factory_block, const SolverState &solver_state, const DeviceOptions &device_options)
double * fPosEquPosNodePtr
virtual bool processParams()
processParams
double * fNegEquNegNodePtr
void registerLIDs(const std::vector< int > &intLIDVecRef, const std::vector< int > &extLIDVecRef)
void registerJacLIDs(const std::vector< std::vector< int > > &jacLIDVec)
virtual std::ostream & printOutInstances(std::ostream &os) const
Pure virtual class to augment a linear system.
static const char * instanceDefaultParameter()
double * fBraEquBraVarPtr
Base class for all parameters.
virtual bool processInstanceParams()
processInstanceParams
static const char * primaryParameter()
void addInstance(Instance *instance)
bool loadBVectorsforAC(double *bVecReal, double *bVecImag)
double * fNegEquBraVarPtr
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
Model & operator=(const Model &)
static const char * name()
DeviceMaster instantiates a device as described by the device traits T.
The FactoryBlock contains parameters needed by the device, instance and model creation functions...
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 * fBraEquNegNodePtr
bool TRANSIENTSOURCETYPEgiven
static const char * deviceTypeName()
void varTypes(std::vector< char > &varTypeVec)
The Device class is an interface for device implementations.
static Device * factory(const Configuration &configuration, const FactoryBlock &factory_block)
virtual bool updateState(double *solVec, double *staVec, double *stoVec)
Updates the devices state information.
static ParametricData< Model > & modelParameters()
virtual bool loadDAEMatrices(Linear::Matrix &dFdx, Linear::Matrix &dQdx)
Populates the device's Jacobian object with these pointers.
virtual void forEachInstance(DeviceInstanceOp &op) const
Apply a device instance "op" to all instances associated with this model.
void registerBranchDataLIDs(const std::vector< int > &branchLIDVecRef)
Register the local store IDs.
static std::vector< std::vector< int > > jacStampPDE
double * fBraEquPosNodePtr
double * fPosEquBraVarPtr
Class Configuration contains device configuration data.
std::vector< Instance * > instanceContainer
static void loadInstanceParameters(ParametricData< Instance > &instance_parameters)
static std::vector< std::vector< int > > jacStamp
static ParametricData< Instance > & instanceParameters()
int li_branch_data
Index for Lead Current and junction voltage (for power calculations)
double getMaxTimeStepSize()
static void loadModelParameters(ParametricData< Model > &model_parameters)
Base sensitivity functor.
static bool isLinearDevice()
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.
virtual ~dcVsrcSensitivity()
void loadNodeSymbols(Util::SymbolTable &symbol_table) const
Populates and returns the store name map.
static dcVsrcSensitivity dcv0Sens
const std::vector< std::vector< int > > & jacobianStamp() const
bool updatePrimaryState()
Instance(const Configuration &configuration, const InstanceBlock &IB, Model &Viter, const FactoryBlock &factory_block)
bool updateIntermediateVars()
std::vector< Instance * > InstanceVector
void getLIDs(int &lpos, int &lneg, int &lbra)
void registerStateLIDs(const std::vector< int > &staLIDVecRef)