Xyce  6.1
Xyce::Device::Digital::Instance Class Reference

#include <N_DEV_Digital.h>

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

Public Member Functions

 Instance (const Configuration &configuration, const InstanceBlock &instance_block, Model &model, 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 loadNodeSymbols (Util::SymbolTable &symbol_table) const
 Populates and returns the store name map. More...
 
const std::vector< std::vector< int > > & jacobianStamp () const
 
void registerJacLIDs (const std::vector< std::vector< int > > &jacLIDVec)
 
bool processParams ()
 
bool updateIntermediateVars ()
 
bool updatePrimaryState ()
 
bool updateSecondaryState ()
 
bool getInstanceBreakPoints (std::vector< Util::BreakPoint > &)
 
bool loadDAEQVector ()
 
bool loadDAEFVector ()
 
bool loadDAEdQdx ()
 
bool loadDAEdFdx ()
 
void acceptStep ()
 
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 registerStoreLIDs (const LocalIdVector &stoLIDVecRef)
 
virtual void registerBranchDataLIDs (const LocalIdVector &branchDataLIDVecRef)
 
virtual const std::vector< std::string > & getDepSolnVars ()
 
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 void setupPointers ()
 
virtual const IdVectorgetDepSolnGIDVec ()
 
virtual const IndexPairVector & getIndexPairList ()
 
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 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 Types

enum  gType {
  INV,
  NOT,
  AND,
  NAND,
  OR,
  NOR,
  ADD,
  XOR,
  NXOR,
  DFF,
  DLTCH,
  BUF
}
 

Private Member Functions

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

Private Attributes

Modelmodel_
 
std::vector< double > qlo
 
std::vector< double > ilo
 
std::vector< double > vcaplo
 
std::vector< double > qhi
 
std::vector< double > ihi
 
std::vector< double > vcaphi
 
std::vector< double > qref
 
std::vector< double > iref
 
std::vector< double > vcapref
 
std::vector< double > rilo
 
std::vector< double > rihi
 
std::vector< double > riref
 
std::vector< double > currentOut
 
std::vector< double > currentIn
 
std::vector< double > glo
 
std::vector< double > ghi
 
std::vector< double > qInp
 
std::vector< double > iInp
 
std::vector< double > vcapInp
 
std::vector< double > currentInp
 
bool ic1
 
bool ic2
 
bool ic3
 
int numInput
 
int numOutput
 
enum gType gate
 
int li_Lo
 
int li_Hi
 
int li_Ref
 
std::vector< int > li_Inp
 
std::vector< int > li_Out
 
std::vector< int > li_currentStateInp
 
std::vector< int > li_transitionTimeInp
 
std::vector< int > li_QinpState
 
std::vector< int > li_IinpState
 
std::vector< int > li_currentStateOut
 
std::vector< int > li_transitionTimeOut
 
std::vector< int > li_QloState
 
std::vector< int > li_IloState
 
std::vector< int > li_QhiState
 
std::vector< int > li_IhiState
 
std::vector< bool > inpL
 
std::vector< double > iTime
 
std::vector< bool > outL
 
std::vector< double > oTime
 
double breakTime
 
int row_Lo
 
int row_Hi
 
int row_Ref
 
std::vector< std::vector< int > > li_jac_Ref
 
std::vector< std::vector< int > > li_jac_Lo
 
std::vector< std::vector< int > > li_jac_Hi
 
std::vector< std::vector< int > > jacStamp
 
double prevInputStateChangeTime_
 
bool inputStateChange_
 

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 92 of file N_DEV_Digital.h.

Member Enumeration Documentation

Enumerator
INV 
NOT 
AND 
NAND 
OR 
NOR 
ADD 
XOR 
NXOR 
DFF 
DLTCH 
BUF 

Definition at line 100 of file N_DEV_Digital.h.

Constructor & Destructor Documentation

Xyce::Device::Digital::Instance::Instance ( const Configuration configuration,
const InstanceBlock instance_block,
Model model,
const FactoryBlock factory_block 
)

Definition at line 188 of file N_DEV_Digital.C.

Xyce::Device::Digital::Instance::~Instance ( )

Definition at line 602 of file N_DEV_Digital.C.

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

Member Function Documentation

void Xyce::Device::Digital::Instance::acceptStep ( )
virtual

Reimplemented from Xyce::Device::DeviceInstance.

Definition at line 1363 of file N_DEV_Digital.C.

bool Xyce::Device::Digital::Instance::getInstanceBreakPoints ( std::vector< Util::BreakPoint > &  breakPointTimes)
virtual

Reimplemented from Xyce::Device::DeviceInstance.

Definition at line 1339 of file N_DEV_Digital.C.

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

Definition at line 150 of file N_DEV_Digital.h.

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

Reimplemented from Xyce::Device::DeviceInstance.

Definition at line 751 of file N_DEV_Digital.C.

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

Implements Xyce::Device::DeviceInstance.

Definition at line 1642 of file N_DEV_Digital.C.

bool Xyce::Device::Digital::Instance::loadDAEdQdx ( )
virtual

Implements Xyce::Device::DeviceInstance.

Definition at line 1548 of file N_DEV_Digital.C.

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

Implements Xyce::Device::DeviceInstance.

Definition at line 1468 of file N_DEV_Digital.C.

bool Xyce::Device::Digital::Instance::loadDAEQVector ( )
virtual

Implements Xyce::Device::DeviceInstance.

Definition at line 1400 of file N_DEV_Digital.C.

void Xyce::Device::Digital::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 739 of file N_DEV_Digital.C.

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

Reimplemented from Xyce::Device::DeviceInstance.

Definition at line 171 of file N_DEV_Digital.C.

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

Reimplemented from Xyce::Device::DeviceInstance.

Definition at line 764 of file N_DEV_Digital.C.

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

Reimplemented from Xyce::Device::DeviceInstance.

Definition at line 615 of file N_DEV_Digital.C.

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

Reimplemented from Xyce::Device::DeviceInstance.

Definition at line 692 of file N_DEV_Digital.C.

bool Xyce::Device::Digital::Instance::updateIntermediateVars ( )
inlinevirtual

Implements Xyce::Device::DeviceInstance.

Definition at line 130 of file N_DEV_Digital.h.

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

Implements Xyce::Device::DeviceInstance.

Definition at line 887 of file N_DEV_Digital.C.

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

Reimplemented from Xyce::Device::DeviceInstance.

Definition at line 1297 of file N_DEV_Digital.C.

Friends And Related Function Documentation

friend class Master
friend

Definition at line 97 of file N_DEV_Digital.h.

friend class Model
friend

Definition at line 95 of file N_DEV_Digital.h.

friend class ParametricData< Instance >
friend

Definition at line 94 of file N_DEV_Digital.h.

friend class Traits
friend

Definition at line 96 of file N_DEV_Digital.h.

Member Data Documentation

double Xyce::Device::Digital::Instance::breakTime
private

Definition at line 225 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::currentIn
private

Definition at line 178 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::currentInp
private

Definition at line 187 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::currentOut
private

Definition at line 177 of file N_DEV_Digital.h.

enum gType Xyce::Device::Digital::Instance::gate
private

Definition at line 197 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::ghi
private

Definition at line 181 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::glo
private

Definition at line 180 of file N_DEV_Digital.h.

bool Xyce::Device::Digital::Instance::ic1
private

Definition at line 191 of file N_DEV_Digital.h.

bool Xyce::Device::Digital::Instance::ic2
private

Definition at line 192 of file N_DEV_Digital.h.

bool Xyce::Device::Digital::Instance::ic3
private

Definition at line 193 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::ihi
private

Definition at line 168 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::iInp
private

Definition at line 184 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::ilo
private

Definition at line 165 of file N_DEV_Digital.h.

std::vector<bool> Xyce::Device::Digital::Instance::inpL
private

Definition at line 220 of file N_DEV_Digital.h.

bool Xyce::Device::Digital::Instance::inputStateChange_
private

Definition at line 239 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::iref
private

Definition at line 171 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::iTime
private

Definition at line 221 of file N_DEV_Digital.h.

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

Definition at line 235 of file N_DEV_Digital.h.

std::vector<int> Xyce::Device::Digital::Instance::li_currentStateInp
private

Definition at line 207 of file N_DEV_Digital.h.

std::vector<int> Xyce::Device::Digital::Instance::li_currentStateOut
private

Definition at line 213 of file N_DEV_Digital.h.

int Xyce::Device::Digital::Instance::li_Hi
private

Definition at line 201 of file N_DEV_Digital.h.

std::vector<int> Xyce::Device::Digital::Instance::li_IhiState
private

Definition at line 218 of file N_DEV_Digital.h.

std::vector<int> Xyce::Device::Digital::Instance::li_IinpState
private

Definition at line 210 of file N_DEV_Digital.h.

std::vector<int> Xyce::Device::Digital::Instance::li_IloState
private

Definition at line 216 of file N_DEV_Digital.h.

std::vector<int> Xyce::Device::Digital::Instance::li_Inp
private

Definition at line 203 of file N_DEV_Digital.h.

std::vector< std::vector<int> > Xyce::Device::Digital::Instance::li_jac_Hi
private

Definition at line 233 of file N_DEV_Digital.h.

std::vector< std::vector<int> > Xyce::Device::Digital::Instance::li_jac_Lo
private

Definition at line 232 of file N_DEV_Digital.h.

std::vector< std::vector<int> > Xyce::Device::Digital::Instance::li_jac_Ref
private

Definition at line 231 of file N_DEV_Digital.h.

int Xyce::Device::Digital::Instance::li_Lo
private

Definition at line 200 of file N_DEV_Digital.h.

std::vector<int> Xyce::Device::Digital::Instance::li_Out
private

Definition at line 204 of file N_DEV_Digital.h.

std::vector<int> Xyce::Device::Digital::Instance::li_QhiState
private

Definition at line 217 of file N_DEV_Digital.h.

std::vector<int> Xyce::Device::Digital::Instance::li_QinpState
private

Definition at line 209 of file N_DEV_Digital.h.

std::vector<int> Xyce::Device::Digital::Instance::li_QloState
private

Definition at line 215 of file N_DEV_Digital.h.

int Xyce::Device::Digital::Instance::li_Ref
private

Definition at line 202 of file N_DEV_Digital.h.

std::vector<int> Xyce::Device::Digital::Instance::li_transitionTimeInp
private

Definition at line 208 of file N_DEV_Digital.h.

std::vector<int> Xyce::Device::Digital::Instance::li_transitionTimeOut
private

Definition at line 214 of file N_DEV_Digital.h.

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

Definition at line 156 of file N_DEV_Digital.h.

int Xyce::Device::Digital::Instance::numInput
private

Definition at line 195 of file N_DEV_Digital.h.

int Xyce::Device::Digital::Instance::numOutput
private

Definition at line 196 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::oTime
private

Definition at line 223 of file N_DEV_Digital.h.

std::vector<bool> Xyce::Device::Digital::Instance::outL
private

Definition at line 222 of file N_DEV_Digital.h.

double Xyce::Device::Digital::Instance::prevInputStateChangeTime_
private

Definition at line 238 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::qhi
private

Definition at line 167 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::qInp
private

Definition at line 183 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::qlo
private

Definition at line 164 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::qref
private

Definition at line 170 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::rihi
private

Definition at line 175 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::rilo
private

Definition at line 174 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::riref
private

Definition at line 176 of file N_DEV_Digital.h.

int Xyce::Device::Digital::Instance::row_Hi
private

Definition at line 229 of file N_DEV_Digital.h.

int Xyce::Device::Digital::Instance::row_Lo
private

Definition at line 228 of file N_DEV_Digital.h.

int Xyce::Device::Digital::Instance::row_Ref
private

Definition at line 230 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::vcaphi
private

Definition at line 169 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::vcapInp
private

Definition at line 185 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::vcaplo
private

Definition at line 166 of file N_DEV_Digital.h.

std::vector<double> Xyce::Device::Digital::Instance::vcapref
private

Definition at line 172 of file N_DEV_Digital.h.


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