Xyce  6.1
Xyce::Device::SW::Instance Class Reference

#include <N_DEV_SW.h>

Inheritance diagram for Xyce::Device::SW::Instance:
Collaboration diagram for Xyce::Device::SW::Instance:

Public Member Functions

 Instance (const Configuration &configuration, const InstanceBlock &IB, Model &SWiter, const FactoryBlock &factory_block)
 
 ~Instance ()
 
void registerLIDs (const std::vector< int > &intLIDVecRef, const std::vector< int > &extLIDVecRef)
 
void registerStateLIDs (const std::vector< int > &staLIDVecRef)
 
void registerStoreLIDs (const std::vector< int > &stoLIDVecRef)
 
virtual void loadNodeSymbols (Util::SymbolTable &symbol_table) const
 Populates and returns the store name map. More...
 
bool processParams ()
 
const std::vector< std::string > & getDepSolnVars ()
 
const std::vector< std::vector< int > > & jacobianStamp () const
 
void registerJacLIDs (const std::vector< std::vector< int > > &jacLIDVec)
 
bool updateIntermediateVars ()
 
bool updatePrimaryState ()
 
bool updateSecondaryState ()
 
bool loadDAEQVector ()
 
bool loadDAEFVector ()
 
bool loadDAEdQdx ()
 
bool loadDAEdFdx ()
 
void setupPointers ()
 
ModelgetModel ()
 
- Public Member Functions inherited from Xyce::Device::DeviceInstance
 DeviceInstance (const InstanceBlock &instance_block, ParametricData< void > &parametric_data, const FactoryBlock &factory_block)
 
virtual ~DeviceInstance ()
 
virtual std::ostream & printName (std::ostream &os) const
 
virtual void enableLeadCurrentCalc ()
 
virtual void registerGIDs (const IndexPairVector &intGIDListRef, const IndexPairVector &extGIDListRef)
 
virtual void registerStateGIDs (const IndexPairVector &staGIDListRef)
 
virtual void registerStoreGIDs (const IndexPairVector &stoGIDListRef)
 
virtual void registerBranchDataLIDs (const LocalIdVector &branchDataLIDVecRef)
 
virtual void registerDepSolnGIDs (const std::vector< IdVector > &varList)
 
virtual const std::vector< std::string > & getDepStateVars ()
 
virtual void registerDepStateGIDs (const std::vector< IdVector > &varList)
 
virtual const std::vector< std::string > & getDepStoreVars ()
 
virtual void registerDepStoreGIDs (const std::vector< IdVector > &varList)
 
virtual const std::vector< std::string > & getDepLeadCurrentVars ()
 
virtual void registerDepLeadCurrentGIDs (const std::vector< IdVector > &varList)
 
virtual void registerDepSolnLIDs (const std::vector< IdVector > &depSolnLIDVecRef)
 
virtual void registerDepStateLIDs (const std::vector< IdVector > &depStaLIDVecRef)
 
virtual void registerDepStoreLIDs (const std::vector< IdVector > &depStoLIDVecRef)
 
virtual void registerGIDData (const std::vector< int > &counts, const IdVector &GIDs, const JacobianStamp &jacGIDs)
 
virtual const IdVectorgetDepSolnGIDVec ()
 
virtual const IndexPairVector & getIndexPairList ()
 
virtual bool getInstanceBreakPoints (std::vector< Util::BreakPoint > &breakPointTimes)
 
virtual bool updateSource ()
 
virtual bool processInstanceParams ()
 
virtual bool updateTemperature (const double &temp_tmp)
 
virtual bool isConverged ()
 
virtual bool testDAEMatrices (const std::vector< const std::string * > &nameVec)
 
virtual bool loadTrivialDAE_FMatrixStamp ()
 
bool trivialStampLoader (Linear::Matrix *matPtr)
 
bool zeroMatrixDiagonal (Linear::Matrix *matPtr)
 
virtual bool setIC ()
 
virtual bool plotfileFlag ()
 
virtual void loadErrorWeightMask ()
 
virtual void acceptStep ()
 
virtual bool loadDAEBVector ()
 
virtual int getNumNoiseSources () const
 
virtual void setupNoiseSources (Xyce::Analysis::NoiseData &noiseDataVec)
 
virtual void getNoiseSources (Xyce::Analysis::NoiseData &noiseDataVec)
 
const InstanceNamegetName () const
 
int getNumIntVars () const
 
int getNumExtVars () const
 
int getNumStateVars () const
 
int getNumStoreVars () const
 
int getNumBranchDataVars () const
 
void setNumStoreVars (int num_store_vars)
 
void setNumBranchDataVars (int num_branch_data_vars)
 
virtual const std::vector< int > & getDevConMap ()
 
virtual DeviceStategetInternalState ()
 
virtual bool setInternalState (const DeviceState &state)
 
virtual bool loadDFDV (int iElectrode, Linear::Vector *dfdvPtr)
 
virtual bool calcConductance (int iElectrode, const Linear::Vector *dxdvPtr)
 
virtual bool outputPlotFiles ()
 
virtual bool enablePDEContinuation (int &max_PDE_continuation_steps)
 
virtual bool disablePDEContinuation ()
 
virtual void setPDEContinuationAlpha (double alpha)
 
virtual void setPDEContinuationBeta (double beta)
 
virtual bool setInitialGuess ()
 
virtual double getMaxTimeStepSize ()
 
virtual void varTypes (std::vector< char > &varTypeVec)
 
bool getOrigFlag () const
 
void setOrigFlag (bool origFlag_local)
 
const IdVectorgetDevLIDs () const
 
const std::vector< IdVector > & getDevJacLIDs () const
 
const IdVectorgetStaLIDVec () const
 
bool getMergeRowColChecked () const
 
void setMergeRowColChecked (bool mergeRowColChecked_local)
 
const MatrixLoadDatagetMatrixLoadData () const
 
MatrixLoadDatagetMatrixLoadData ()
 
const ExternDatagetExternData () const
 
- Public Member Functions inherited from Xyce::Device::DeviceEntity
 DeviceEntity (ParametricData< void > &parametric_data, const SolverState &solver_state, const DeviceOptions &device_options, const std::string &netlist_filename, int netlist_line)
 
virtual ~DeviceEntity ()
 
virtual CompositeParamconstructComposite (const std::string &composite_name, const std::string &param_name)
 
bool setDefaultParam (double val, bool overrideOriginal=false)
 
double getDefaultParam () const
 
bool scaleParam (const std::string &paramName, double val, double val0)
 
bool scaleParam (const std::string &paramName, double val)
 
bool scaleDefaultParam (double val)
 
bool analyticSensitivityAvailable (const std::string &paramName)
 
bool getAnalyticSensitivity (const std::string &paramName, std::vector< double > &dfdpVec, std::vector< double > &dqdpVec, std::vector< double > &dbdpVec, std::vector< int > &FindicesVec, std::vector< int > &QindicesVec, std::vector< int > &BindicesVec)
 
bool setParam (const std::string &paramName, double val, bool overrideOriginal=false)
 
bool getParam (const std::string &paramName, double &result) const
 
bool getParamBreakpoints (std::vector< Util::BreakPoint > &)
 
bool updateDependentParameters (Linear::Vector &vars)
 
bool updateDependentParameters (double temp_tmp)
 
bool updateGlobalParameters (GlobalParameterMap &)
 
bool updateDependentParameters ()
 
double setDependentParameter (Util::Param &, double *, ParameterType::ExprAccess)
 
double setDependentParameter (Util::Param &, std::vector< double > *, int, ParameterType::ExprAccess)
 
void setDependentParameter (Util::Param &par, Depend &dependentParam, ParameterType::ExprAccess depend)
 
void setDefaultParams ()
 
void setParams (const std::vector< Param > &params)
 
bool given (const std::string &parameter_name) const
 
void setDefaultParamName (const std::string &default_param_name)
 
const std::vector< Depend > & getDependentParams ()
 
void addDependentParameter (const Depend &param)
 
const DeviceOptionsgetDeviceOptions () const
 
const SolverStategetSolverState () const
 
const NetlistLocation & netlistLocation () const
 
const ParameterMapgetParameterMap () const
 
- Public Member Functions inherited from Xyce::Device::ParameterBase
 ParameterBase ()
 
virtual ~ParameterBase ()
 
double getOriginalValue (int serial_number)
 
void setOriginalValue (int serial_number, double value)
 
bool wasValueGiven (int serial_number) const
 
void setValueGiven (int serial_number, bool value)
 

Private Member Functions

 Instance (const Instance &)
 
Instanceoperator= (const Instance &)
 

Private Attributes

Modelmodel_
 
Util::Expression * Exp_ptr
 
int expNumVars
 
int expBaseVar
 
int expNumDdt
 
std::list< std::string > evnList
 
std::vector< double > expVarDerivs
 
std::vector< double > myVarVals
 
std::vector< double > ddtVals
 
double expVal
 
double R
 
double CONTROL
 
bool ON
 
bool OFF
 
double G
 
double dGdI
 
double dGdV
 
double v_pos
 
double v_neg
 
double LeadCurrent
 
double SW_STATE
 
double switch_state
 
std::vector< int > li_ddt
 
int li_switch_state
 
int li_Pos
 
int li_Neg
 
int li_store_dev_i
 
int APosEquPosNodeOffset
 
int APosEquNegNodeOffset
 
int ANegEquPosNodeOffset
 
int ANegEquNegNodeOffset
 
std::vector< int > APosEquControlNodeOffset
 
std::vector< int > ANegEquControlNodeOffset
 
double * fPosEquPosNodePtr
 
double * fPosEquNegNodePtr
 
double * fNegEquPosNodePtr
 
double * fNegEquNegNodePtr
 
std::vector< double * > fPosEquControlNodePtr
 
std::vector< double * > fNegEquControlNodePtr
 
std::vector< std::vector< int > > jacStamp
 

Friends

class ParametricData< Instance >
 
class Model
 
class Traits
 
class Master
 

Additional Inherited Members

- Public Attributes inherited from Xyce::Device::DeviceInstance
std::vector< int > & cols
 
std::vector< double > & vals
 
NumericalJacobiannumJacPtr
 
bool psLoaded
 
bool ssLoaded
 
bool rhsLoaded
 
bool origFlag
 
int numIntVars
 
int numExtVars
 
int numStateVars
 
int numStoreVars
 
int numLeadCurrentVars
 
int numLeadCurrentStoreVars
 
bool loadLeadCurrent
 
int numBranchDataVars
 
int numBranchDataVarsIfAllocated
 
std::vector< int > devConMap
 
bool mergeRowColChecked
 
- Protected Member Functions inherited from Xyce::Device::DeviceInstance
void jacStampMap (const JacobianStamp &stamp_parent, IdVector &map_parent, JacobianStamp &map2_parent, JacobianStamp &stamp, IdVector &map, JacobianStamp &map2, int from, int to, int original_size)
 
void jacStampMap_fixOrder (const JacobianStamp &stamp_parent, JacobianStamp &map2_parent, JacobianStamp &stamp, JacobianStamp &map2)
 
void outputJacStamp (const JacobianStamp &jac)
 
void outputJacMaps (const std::vector< int > &jacMap, const JacobianStamp &jacMap2)
 
- Protected Attributes inherited from Xyce::Device::DeviceInstance
const ExternDataextData
 
IndexPairVector indexPairList
 
IndexPairVector intGIDList
 
IndexPairVector extGIDList
 
IndexPairVector staGIDList
 
IdVector intLIDVec
 
IdVector extLIDVec
 
IdVector staLIDVec
 
IdVector stoLIDVec
 
IdVector devLIDs
 devLIDs is a combined LID vector, containing int, ext, and expVar ID's. More...
 
JacobianStamp devJacLIDs
 
DeviceSupport devSupport
 
- Protected Attributes inherited from Xyce::Device::DeviceEntity
std::vector< int > expVarGIDs
 
std::vector< int > expVarLIDs
 
std::vector< std::string > expVarNames
 
std::vector< double > expVarVals
 
std::vector< double > eVarVals
 

Detailed Description

Definition at line 84 of file N_DEV_SW.h.

Constructor & Destructor Documentation

Xyce::Device::SW::Instance::Instance ( const Configuration configuration,
const InstanceBlock IB,
Model SWiter,
const FactoryBlock factory_block 
)

Definition at line 155 of file N_DEV_SW.C.

Xyce::Device::SW::Instance::~Instance ( )

Definition at line 258 of file N_DEV_SW.C.

Xyce::Device::SW::Instance::Instance ( const Instance )
private

Member Function Documentation

const std::vector< std::string > & Xyce::Device::SW::Instance::getDepSolnVars ( )
virtual

Reimplemented from Xyce::Device::DeviceInstance.

Definition at line 336 of file N_DEV_SW.C.

Model& Xyce::Device::SW::Instance::getModel ( )
inline

Definition at line 137 of file N_DEV_SW.h.

const std::vector< std::vector< int > > & Xyce::Device::SW::Instance::jacobianStamp ( ) const
virtual

Reimplemented from Xyce::Device::DeviceInstance.

Definition at line 349 of file N_DEV_SW.C.

bool Xyce::Device::SW::Instance::loadDAEdFdx ( )
virtual

Implements Xyce::Device::DeviceInstance.

Definition at line 594 of file N_DEV_SW.C.

bool Xyce::Device::SW::Instance::loadDAEdQdx ( )
inlinevirtual

Implements Xyce::Device::DeviceInstance.

Definition at line 129 of file N_DEV_SW.h.

bool Xyce::Device::SW::Instance::loadDAEFVector ( )
virtual

Implements Xyce::Device::DeviceInstance.

Definition at line 564 of file N_DEV_SW.C.

bool Xyce::Device::SW::Instance::loadDAEQVector ( )
inlinevirtual

Implements Xyce::Device::DeviceInstance.

Definition at line 125 of file N_DEV_SW.h.

void Xyce::Device::SW::Instance::loadNodeSymbols ( Util::SymbolTable &  symbol_table) const
virtual

Populates and returns the store name map.

If the DeviceInstance::storeNameMap is empty, populate it.

For the purpose of lead currents, store vector elements must be given names that can be used to locate lead currents at print time. When a netlist attempts to print, say, "I(R1)" the output code looks for an entry in the store vector named R1:DEV_I.

This method does the assignment of names to various vector elements.

Author
David G. Baur
Date
12/18/2014

Implements Xyce::Device::DeviceInstance.

Definition at line 520 of file N_DEV_SW.C.

Instance& Xyce::Device::SW::Instance::operator= ( const Instance )
private
bool Xyce::Device::SW::Instance::processParams ( )
virtual

Reimplemented from Xyce::Device::DeviceInstance.

Definition at line 142 of file N_DEV_SW.C.

void Xyce::Device::SW::Instance::registerJacLIDs ( const std::vector< std::vector< int > > &  jacLIDVec)
virtual

Reimplemented from Xyce::Device::DeviceInstance.

Definition at line 362 of file N_DEV_SW.C.

void Xyce::Device::SW::Instance::registerLIDs ( const std::vector< int > &  intLIDVecRef,
const std::vector< int > &  extLIDVecRef 
)
virtual

Reimplemented from Xyce::Device::DeviceInstance.

Definition at line 270 of file N_DEV_SW.C.

void Xyce::Device::SW::Instance::registerStateLIDs ( const std::vector< int > &  staLIDVecRef)
virtual

Reimplemented from Xyce::Device::DeviceInstance.

Definition at line 297 of file N_DEV_SW.C.

void Xyce::Device::SW::Instance::registerStoreLIDs ( const std::vector< int > &  stoLIDVecRef)
virtual

Reimplemented from Xyce::Device::DeviceInstance.

Definition at line 318 of file N_DEV_SW.C.

void Xyce::Device::SW::Instance::setupPointers ( )
virtual

Reimplemented from Xyce::Device::DeviceInstance.

Definition at line 388 of file N_DEV_SW.C.

bool Xyce::Device::SW::Instance::updateIntermediateVars ( )
virtual

Implements Xyce::Device::DeviceInstance.

Definition at line 534 of file N_DEV_SW.C.

bool Xyce::Device::SW::Instance::updatePrimaryState ( )
virtual

Implements Xyce::Device::DeviceInstance.

Definition at line 417 of file N_DEV_SW.C.

bool Xyce::Device::SW::Instance::updateSecondaryState ( )
virtual

Reimplemented from Xyce::Device::DeviceInstance.

Definition at line 438 of file N_DEV_SW.C.

Friends And Related Function Documentation

friend class Master
friend

Definition at line 88 of file N_DEV_SW.h.

friend class Model
friend

Definition at line 87 of file N_DEV_SW.h.

friend class ParametricData< Instance >
friend

Definition at line 86 of file N_DEV_SW.h.

friend class Traits
friend

Definition at line 88 of file N_DEV_SW.h.

Member Data Documentation

std::vector<int> Xyce::Device::SW::Instance::ANegEquControlNodeOffset
private

Definition at line 198 of file N_DEV_SW.h.

int Xyce::Device::SW::Instance::ANegEquNegNodeOffset
private

Definition at line 194 of file N_DEV_SW.h.

int Xyce::Device::SW::Instance::ANegEquPosNodeOffset
private

Definition at line 193 of file N_DEV_SW.h.

std::vector<int> Xyce::Device::SW::Instance::APosEquControlNodeOffset
private

Definition at line 197 of file N_DEV_SW.h.

int Xyce::Device::SW::Instance::APosEquNegNodeOffset
private

Definition at line 192 of file N_DEV_SW.h.

int Xyce::Device::SW::Instance::APosEquPosNodeOffset
private

Definition at line 191 of file N_DEV_SW.h.

double Xyce::Device::SW::Instance::CONTROL
private

Definition at line 160 of file N_DEV_SW.h.

std::vector<double> Xyce::Device::SW::Instance::ddtVals
private

Definition at line 154 of file N_DEV_SW.h.

double Xyce::Device::SW::Instance::dGdI
private

Definition at line 165 of file N_DEV_SW.h.

double Xyce::Device::SW::Instance::dGdV
private

Definition at line 165 of file N_DEV_SW.h.

std::list<std::string> Xyce::Device::SW::Instance::evnList
private

Definition at line 150 of file N_DEV_SW.h.

Util::Expression* Xyce::Device::SW::Instance::Exp_ptr
private

Definition at line 146 of file N_DEV_SW.h.

int Xyce::Device::SW::Instance::expBaseVar
private

Definition at line 148 of file N_DEV_SW.h.

int Xyce::Device::SW::Instance::expNumDdt
private

Definition at line 149 of file N_DEV_SW.h.

int Xyce::Device::SW::Instance::expNumVars
private

Definition at line 147 of file N_DEV_SW.h.

double Xyce::Device::SW::Instance::expVal
private

Definition at line 155 of file N_DEV_SW.h.

std::vector<double> Xyce::Device::SW::Instance::expVarDerivs
private

Definition at line 152 of file N_DEV_SW.h.

std::vector<double *> Xyce::Device::SW::Instance::fNegEquControlNodePtr
private

Definition at line 208 of file N_DEV_SW.h.

double* Xyce::Device::SW::Instance::fNegEquNegNodePtr
private

Definition at line 204 of file N_DEV_SW.h.

double* Xyce::Device::SW::Instance::fNegEquPosNodePtr
private

Definition at line 203 of file N_DEV_SW.h.

std::vector<double *> Xyce::Device::SW::Instance::fPosEquControlNodePtr
private

Definition at line 207 of file N_DEV_SW.h.

double* Xyce::Device::SW::Instance::fPosEquNegNodePtr
private

Definition at line 202 of file N_DEV_SW.h.

double* Xyce::Device::SW::Instance::fPosEquPosNodePtr
private

Definition at line 201 of file N_DEV_SW.h.

double Xyce::Device::SW::Instance::G
private

Definition at line 164 of file N_DEV_SW.h.

std::vector< std::vector<int> > Xyce::Device::SW::Instance::jacStamp
private

Definition at line 210 of file N_DEV_SW.h.

double Xyce::Device::SW::Instance::LeadCurrent
private

Definition at line 171 of file N_DEV_SW.h.

std::vector<int> Xyce::Device::SW::Instance::li_ddt
private

Definition at line 179 of file N_DEV_SW.h.

int Xyce::Device::SW::Instance::li_Neg
private

Definition at line 185 of file N_DEV_SW.h.

int Xyce::Device::SW::Instance::li_Pos
private

Definition at line 184 of file N_DEV_SW.h.

int Xyce::Device::SW::Instance::li_store_dev_i
private

Definition at line 188 of file N_DEV_SW.h.

int Xyce::Device::SW::Instance::li_switch_state
private

Definition at line 181 of file N_DEV_SW.h.

Model& Xyce::Device::SW::Instance::model_
private

Definition at line 144 of file N_DEV_SW.h.

std::vector<double> Xyce::Device::SW::Instance::myVarVals
private

Definition at line 153 of file N_DEV_SW.h.

bool Xyce::Device::SW::Instance::OFF
private

Definition at line 161 of file N_DEV_SW.h.

bool Xyce::Device::SW::Instance::ON
private

Definition at line 161 of file N_DEV_SW.h.

double Xyce::Device::SW::Instance::R
private

Definition at line 159 of file N_DEV_SW.h.

double Xyce::Device::SW::Instance::SW_STATE
private

Definition at line 174 of file N_DEV_SW.h.

double Xyce::Device::SW::Instance::switch_state
private

Definition at line 177 of file N_DEV_SW.h.

double Xyce::Device::SW::Instance::v_neg
private

Definition at line 169 of file N_DEV_SW.h.

double Xyce::Device::SW::Instance::v_pos
private

Definition at line 168 of file N_DEV_SW.h.


The documentation for this class was generated from the following files: