Xyce  6.1
Xyce::Device::DeviceMgr Class Reference

#include <N_DEV_DeviceMgr.h>

Inheritance diagram for Xyce::Device::DeviceMgr:
Collaboration diagram for Xyce::Device::DeviceMgr:

Public Types

typedef std::vector< Device * > DeviceVector
 
typedef std::vector< DeviceEntity * > EntityVector
 
typedef std::vector< DeviceInstance * > InstanceVector
 
typedef std::vector< DeviceModel * > ModelVector
 
typedef std::map< ModelTypeId, ModelVectorModelTypeModelVectorMap
 
typedef std::map< ModelTypeId, InstanceVectorModelTypeInstanceVectorMap
 
typedef unordered_map< std::string, DeviceEntity *, HashNoCase, EqualNoCase > DeviceEntityMap
 
typedef unordered_map< std::string, ModelTypeId, HashNoCase, EqualNoCase > ModelTypeNameModelTypeIdMap
 
typedef unordered_map< std::string, SourceInstance *, HashNoCase, EqualNoCase > IndependentSourceMap
 
typedef std::vector< SourceInstance * > IndependentSourceVector
 
typedef unordered_map< std::string, Util::Op::Operator * > OpMap
 

Public Member Functions

 DeviceMgr (Parallel::Machine comm, Topo::Topology &topology, Util::Op::BuilderManager &op_builder_manager, const IO::CmdParse &command_line)
 
 ~DeviceMgr ()
 
void notify (const Analysis::StepEvent &event)
 
bool registerAnalysisManager (Analysis::AnalysisManager *analysis_manager)
 
bool registerNonlinearSolver (Nonlinear::Manager *tmp_nlsMgrPtr)
 
bool registerICLoads (std::vector< std::pair< int, double > > *icLoads)
 
bool setLeadCurrentRequests (const std::set< std::string > &deviceNames)
 
std::vector< double > getFastSourcePeriod (Parallel::Machine comm, const std::vector< std::string > &sourceNames)
 
std::vector< double > registerFastSources (Parallel::Machine comm, const std::vector< std::string > &sourceNames)
 
void deRegisterFastSources (const std::vector< std::string > &sourceNames)
 
void deactivateSlowSources ()
 
void activateSlowSources ()
 
void setMPDEFlag (bool flagVal)
 
void setBlockAnalysisFlag (bool flagVal)
 
void setFastTime (double timeVal)
 
bool initializeAll (Linear::System &linear_system)
 
bool addDeviceModel (const ModelBlock &MB)
 
std::pair< ModelTypeId, ModelTypeIdgetModelType (const InstanceBlock &instance_block)
 
bool verifyDeviceInstance (const InstanceBlock &IB)
 
DeviceInstanceaddDeviceInstance (const InstanceBlock &IB)
 
bool deleteDeviceInstance (const std::string &name)
 
int getHomotopyBlockSize () const
 
bool outputPlotFiles (bool force_final_output)
 
bool finishOutput ()
 
void dotOpOutput ()
 
bool setInitialGuess (Linear::Vector *solVectorPtr)
 
bool loadErrorWeightMask (Linear::Vector *deviceMaskPtr)
 
void debugOutput1 ()
 
void debugOutput2 ()
 
void getAnalyticSensitivities (std::string &name, 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 analyticSensitivitiesAvailable (const std::string &name)
 
bool setParam (const std::string &name, double val, bool overrideOriginal=false)
 
bool updateTemperature (double val)
 
bool updateSources ()
 
bool resetRHSLoadFlags (int index)
 
bool isLinearSystem ()
 
bool isPDESystem ()
 
const DeviceOptionsgetDeviceOptions () const
 
const ArtificialParameterMapgetArtificialParameterMap () const
 
const PassthroughParameterSetgetPassthroughParameterSet () const
 
bool getVoltageLimiterFlag ()
 
bool setICs (Linear::Vector *tmpSolVectorPtr, Linear::Vector *tmpCurrSolVectorPtr, Linear::Vector *tmpLastSolVectorPtr, Linear::Vector *tmpStaVectorPtr, Linear::Vector *tmpCurrStaVectorPtr, Linear::Vector *tmpLasStaVectorPtr, Linear::Vector *tmpStaDerivVectorPtr, Linear::Vector *tmpStoVectorPtr, Linear::Vector *tmpCurrStoVectorPtr, Linear::Vector *tmpLastStoVectorPtr, Linear::Vector *tmpQVectorPtr, Linear::Vector *tmpFVectorPtr, Linear::Vector *tmpBVectorPtr, Linear::Vector *tmpdFdxdVpVectorPtr, Linear::Vector *tmpdQdxdVpVectorPtr)
 
bool getBreakPoints (std::vector< Util::BreakPoint > &breakPointTimes)
 
double getMaxTimeStepSize ()
 
int enablePDEContinuation ()
 
bool disablePDEContinuation ()
 
void getNumInterfaceNodes (std::vector< int > &numInterfaceNodes)
 
bool loadCouplingRHS (int iPDEDevice, int iElectrode, Linear::Vector *dfdvPtr)
 
bool calcCouplingTerms (int iSubProblem, int iElectrode, const Linear::Vector *dxdvPtr)
 
bool calcPDESubProblemInfo ()
 
bool loadDAEMatrices (Linear::Vector *tmpSolVectorPtr, Linear::Vector *tmpStaVectorPtr, Linear::Vector *tmpStaDerivVectorPtr, Linear::Vector *tmpStoVectorPtr, Linear::Matrix *tmpdQdxMatrixPtr, Linear::Matrix *tmpdFdxMatrixPtr)
 
bool loadDAEVectors (Linear::Vector *tmpNextSolVectorPtr, Linear::Vector *tmpCurrSolVectorPtr, Linear::Vector *tmpLastSolVectorPtr, Linear::Vector *tmpNextStaVectorPtr, Linear::Vector *tmpCurrStaVectorPtr, Linear::Vector *tmpLastStaVectorPtr, Linear::Vector *tmpStaDerivVectorPtr, Linear::Vector *tmpNextStoVectorPtr, Linear::Vector *tmpCurrStoVectorPtr, Linear::Vector *tmpLastStoVectorPtr, Linear::Vector *tmpStoLeadCurrQCompVectorPtr, Linear::Vector *tmpLeadFCompVectorPtr, Linear::Vector *tmpLastLeadFCompVectorPtr, Linear::Vector *tmpNextLeadFCompVectorPtr, Linear::Vector *tmpLeadQCompVectorPtr, Linear::Vector *tmpJunctionVCompVectorPtr, Linear::Vector *tmpLastJunctionVCompVectorPtr, Linear::Vector *tmpNextJunctionCompVectorPtr, Linear::Vector *tmpQVectorPtr, Linear::Vector *tmpFVectorPtr, Linear::Vector *tmpBVectorPtr, Linear::Vector *tmpdFdxdVpVectorPtr, Linear::Vector *tmpdQdxdVpVectorPtr)
 
bool updateState (Linear::Vector *nextSolVectorPtr, Linear::Vector *currSolVectorPtr, Linear::Vector *lastSolVectorPtr, Linear::Vector *nextStaVectorPtr, Linear::Vector *currStaVectorPtr, Linear::Vector *lastStaVectorPtr, Linear::Vector *nextStoVectorPtr, Linear::Vector *currStoVectorPtr, Linear::Vector *lastStoVectorPtr)
 
bool loadBVectorsforAC (Linear::Vector *bVecRealPtr, Linear::Vector *bVecImagPtr)
 
bool getBMatrixEntriesforMOR (std::vector< int > &bMatEntriesVec, std::vector< int > &bMatPosEntriesVec)
 
int getNumNoiseDevices ()
 
int getNumNoiseSources ()
 
void setupNoiseSources (std::vector< Xyce::Analysis::NoiseData * > &noiseDataVec)
 
void getNoiseSources (std::vector< Xyce::Analysis::NoiseData * > &noiseDataVec)
 
void unsetVoltageLimiterFlag ()
 
void setVoltageLimiterFlag (bool flagVal)
 
void addGlobalPar (const Util::Param &param)
 
const double * findGlobalPar (const std::string &name) const
 
bool setDeviceOptions (const Util::OptionBlock &option_block)
 
bool registerSensParams (const Util::OptionBlock &option_block)
 
bool setOPAnalysisParams (const Util::OptionBlock &option_block)
 
bool setHBAnalysisParams (const Util::OptionBlock &option_block)
 
bool setACAnalysisParams (const Util::OptionBlock &option_block)
 
bool setNOISEAnalysisParams (const Util::OptionBlock &option_block)
 
bool getHBSpecified () const
 
bool getACSpecified () const
 
bool allDevicesConverged (Parallel::Machine comm) const
 
bool setupExternalDevices (N_PDS_Comm &parallel_comm)
 
const DeviceCountMapgetDeviceCountMap ()
 
void addDeviceToCount (const std::string &device_name, int num_devs=1)
 
void addDevicesToCount (const DeviceCountMap &device_map)
 
DeviceEntitygetDeviceEntity (const std::string &full_param_name) const
 
void acceptStep ()
 
bool getInitialQnorm (std::vector< TimeIntg::TwoLevelError > &tleVec)
 
bool getInnerLoopErrorSums (std::vector< TimeIntg::TwoLevelError > &tleVec) const
 
bool updateStateArrays ()
 
bool startTimeStep (bool beginIntegrationFlag, double nextTimeStep, double nextTime, int currentOrder)
 
void setExternalSolverState (bool external_initJctFlag)
 
int restartDataSize (bool pack) const
 
bool dumpRestartData (char *buf, int bsize, int &pos, N_PDS_Comm *comm, bool pack) const
 
bool restoreRestartData (char *buf, int bsize, int &pos, N_PDS_Comm *comm, bool pack)
 
void setGlobalFlags ()
 
DevicegetDevice (EntityTypeId model_type_id)
 
EntityTypeId getModelGroup (const std::string &model_or_device_type_name)
 Return the ModelGroup of the device associated with the model type name or device type name. More...
 
void addArtificialParameter (const std::string &name, ArtificialParameters::ArtificialParameter *artificial_parameter)
 
const InstanceVectorgetDevices (ModelTypeId model_type_id) const
 
bool getVoltageLimiterStatus ()
 
void setVoltageLimiterStatus (bool voltageLimterStatus)
 
Util::Op::Operator * getOp (Parallel::Machine comm, const std::string &name) const
 
bool parameterExists (Parallel::Machine comm, const std::string &name) const
 

Private Member Functions

 DeviceMgr (const DeviceMgr &)
 No copying. More...
 
DeviceMgroperator= (const DeviceMgr &)
 No assignment. More...
 
DevicegetDeviceByModelType (const EntityTypeId model_type)
 
bool setupRawVectorPointers_ ()
 
bool setupRawMatrixPointers_ ()
 
bool updateIntermediateVars_ ()
 
bool updatePrimaryState_ ()
 
bool updateSecondaryState_ ()
 
bool updateDependentParameters_ ()
 
void updateExternalDevices_ ()
 
ExternDevice::Instance * addExtDeviceInstance_ (const InstanceBlock &IB)
 

Private Attributes

const IO::CmdParse & commandLine_
 Command line. More...
 
Topo::Topology & topology_
 Topology. More...
 
DeviceOptions devOptions_
 user-defined options: More...
 
EntityTypeIdDeviceMap deviceMap_
 
bool sensFlag_
 .SENS present in netlist More...
 
bool isLinearSystem_
 True if all devices in netlist have isLinearDevice() true. More...
 
bool firstDependent_
 True until updateDependentParameters_ is called. More...
 
bool parameterChanged_
 Only used locally in updateDependentParameters_, don't know if stateful of just a member for fun. More...
 
bool breakPointInstancesInitialized
 
double timeParamsProcessed_
 Time updateDependentParameters was called. More...
 
ExternData externData_
 
MatrixLoadData matrixLoadData_
 temporary jacobian load structures: More...
 
SolverState solState_
 real time solver data: More...
 
Globalsglobals_
 global variables More...
 
bool externalInitJctFlag_
 
bool externalStateFlag_
 
Linear::Vector * numJacSolVectorPtr_
 
Linear::Vector * numJacStaVectorPtr_
 
Linear::Vector * numJacStoVectorPtr_
 
Linear::Vector * diagonalVectorPtr_
 
Analysis::AnalysisManageranalysisManager_
 To search for non-device parameters. This needs to be removed. More...
 
ArtificialParameterMap artificialParameterMap_
 Specially named parameters. This needs to be removed. More...
 
PassthroughParameterSet passthroughParameterSet_
 Parameters to pass through to external devices when set. More...
 
Parallel::Machine comm_
 Communicator (should be passed in when needed, not a member) More...
 
Nonlinear::ManagernlsMgrPtr_
 To get Nonlinear solver information. This needs to be removed. More...
 
std::vector< std::pair< int, double > > * icLoads_
 
ModelTypeNameModelTypeIdMap modelTypeMap_
 Model type name to model. More...
 
ModelTypeNameModelTypeIdMap modelGroupMap_
 Model type name to model group. More...
 
ModelTypeInstanceVectorMap modelGroupInstanceVector_
 
ModelTypeInstanceVectorMap modelTypeInstanceVector_
 
ModelVector modelVector_
 
ModelTypeModelVectorMap modelGroupModelVector_
 
ModelTypeModelVectorMap modelTypeModelVector_
 
DeviceCountMap localDeviceCountMap_
 
DeviceVector devicePtrVec_
 
DeviceVector pdeDevicePtrVec_
 
InstanceVector instancePtrVec_
 
InstanceVector bpInstancePtrVec_
 instances with breakpoints functions More...
 
InstanceVector pdeInstancePtrVec_
 
InstanceVector nonPdeInstancePtrVec_
 
InstanceVector plotFileInstancePtrVec_
 
IndependentSourceVector independentSourceVector_
 
IndependentSourceMap independentSourceMap_
 
IndependentSourceVector indepSourceInstanceBackupPtrVec_
 
InstanceVector testJacDevicePtrVec_
 Devices under jacobian test. More...
 
EntityVector dependentPtrVec_
 
std::set< std::string > devicesNeedingLeadCurrentLoads_
 
Util::Op::BuilderManager & opBuilderManager_
 
OpMap opMap_
 
DeviceEntityMap parameterDeviceCache_
 Full parameter name to device entity cache. More...
 
std::vector< int > numInterfaceNodes_
 
bool calledBeforeCSPI
 
DeviceSensitivitiesdevSensPtr_
 
bool dotOpOutputRequested_
 
bool dotOpOutputFlag_
 
bool ACSpecified_
 
bool HBSpecified_
 

Friends

class ArtificialParameters::ArtificialParameter
 
bool getParamAndReduce (Parallel::Machine comm, const DeviceMgr &device_manager, const std::string &name, double &value)
 

Detailed Description

Definition at line 99 of file N_DEV_DeviceMgr.h.

Member Typedef Documentation

typedef unordered_map<std::string, DeviceEntity *, HashNoCase, EqualNoCase> Xyce::Device::DeviceMgr::DeviceEntityMap

Definition at line 111 of file N_DEV_DeviceMgr.h.

Definition at line 105 of file N_DEV_DeviceMgr.h.

Definition at line 106 of file N_DEV_DeviceMgr.h.

typedef unordered_map<std::string, SourceInstance *, HashNoCase, EqualNoCase> Xyce::Device::DeviceMgr::IndependentSourceMap

Definition at line 114 of file N_DEV_DeviceMgr.h.

Definition at line 115 of file N_DEV_DeviceMgr.h.

Definition at line 107 of file N_DEV_DeviceMgr.h.

typedef unordered_map<std::string, ModelTypeId, HashNoCase, EqualNoCase> Xyce::Device::DeviceMgr::ModelTypeNameModelTypeIdMap

Definition at line 112 of file N_DEV_DeviceMgr.h.

Definition at line 108 of file N_DEV_DeviceMgr.h.

typedef unordered_map<std::string, Util::Op::Operator *> Xyce::Device::DeviceMgr::OpMap

Definition at line 117 of file N_DEV_DeviceMgr.h.

Constructor & Destructor Documentation

Xyce::Device::DeviceMgr::DeviceMgr ( Parallel::Machine  comm,
Topo::Topology &  topology,
Util::Op::BuilderManager &  op_builder_manager,
const IO::CmdParse &  command_line 
)

Definition at line 137 of file N_DEV_DeviceMgr.C.

Xyce::Device::DeviceMgr::~DeviceMgr ( )

Definition at line 259 of file N_DEV_DeviceMgr.C.

Xyce::Device::DeviceMgr::DeviceMgr ( const DeviceMgr )
private

No copying.

Member Function Documentation

void Xyce::Device::DeviceMgr::acceptStep ( )

Definition at line 3442 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::activateSlowSources ( )

Definition at line 652 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::addArtificialParameter ( const std::string &  name,
ArtificialParameters::ArtificialParameter artificial_parameter 
)
inline

Definition at line 417 of file N_DEV_DeviceMgr.h.

DeviceInstance * Xyce::Device::DeviceMgr::addDeviceInstance ( const InstanceBlock IB)

Definition at line 1132 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::addDeviceModel ( const ModelBlock MB)

Definition at line 940 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::addDevicesToCount ( const DeviceCountMap device_map)

Definition at line 3858 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::addDeviceToCount ( const std::string &  device_name,
int  num_devs = 1 
)
inline

Definition at line 376 of file N_DEV_DeviceMgr.h.

ExternDevice::Instance * Xyce::Device::DeviceMgr::addExtDeviceInstance_ ( const InstanceBlock IB)
private

Definition at line 3403 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::addGlobalPar ( const Util::Param &  param)

Definition at line 2111 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::allDevicesConverged ( Parallel::Machine  comm) const

Definition at line 3235 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::analyticSensitivitiesAvailable ( const std::string &  name)

Definition at line 1456 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::calcCouplingTerms ( int  iSubProblem,
int  iElectrode,
const Linear::Vector *  dxdvPtr 
)

Definition at line 3119 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::calcPDESubProblemInfo ( )

Definition at line 3055 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::deactivateSlowSources ( )

Definition at line 625 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::debugOutput1 ( )

Definition at line 1296 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::debugOutput2 ( )

Definition at line 1359 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::deleteDeviceInstance ( const std::string &  name)

Definition at line 1245 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::deRegisterFastSources ( const std::vector< std::string > &  sourceNames)

Definition at line 573 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::disablePDEContinuation ( )

Definition at line 3023 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::dotOpOutput ( )

Definition at line 2657 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::dumpRestartData ( char *  buf,
int  bsize,
int &  pos,
N_PDS_Comm *  comm,
bool  pack 
) const

Definition at line 3680 of file N_DEV_DeviceMgr.C.

int Xyce::Device::DeviceMgr::enablePDEContinuation ( )

Definition at line 2991 of file N_DEV_DeviceMgr.C.

const double * Xyce::Device::DeviceMgr::findGlobalPar ( const std::string &  name) const

Definition at line 2124 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::finishOutput ( )

Definition at line 2637 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::getACSpecified ( ) const
inline

Definition at line 353 of file N_DEV_DeviceMgr.h.

void Xyce::Device::DeviceMgr::getAnalyticSensitivities ( std::string &  name,
std::vector< double > &  dfdpVec,
std::vector< double > &  dqdpVec,
std::vector< double > &  dbdpVec,
std::vector< int > &  FindicesVec,
std::vector< int > &  QindicesVec,
std::vector< int > &  BindicesVec 
)

Definition at line 1491 of file N_DEV_DeviceMgr.C.

const ArtificialParameterMap& Xyce::Device::DeviceMgr::getArtificialParameterMap ( ) const
inline

Definition at line 229 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::getBMatrixEntriesforMOR ( std::vector< int > &  bMatEntriesVec,
std::vector< int > &  bMatPosEntriesVec 
)

Definition at line 2485 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::getBreakPoints ( std::vector< Util::BreakPoint > &  breakPointTimes)

Definition at line 2709 of file N_DEV_DeviceMgr.C.

Device* Xyce::Device::DeviceMgr::getDevice ( EntityTypeId  model_type_id)
inline

Definition at line 409 of file N_DEV_DeviceMgr.h.

Device & Xyce::Device::DeviceMgr::getDeviceByModelType ( const EntityTypeId  model_type)
private

Definition at line 877 of file N_DEV_DeviceMgr.C.

const DeviceCountMap& Xyce::Device::DeviceMgr::getDeviceCountMap ( )
inline

Definition at line 371 of file N_DEV_DeviceMgr.h.

DeviceEntity * Xyce::Device::DeviceMgr::getDeviceEntity ( const std::string &  full_param_name) const

Definition at line 3828 of file N_DEV_DeviceMgr.C.

const DeviceOptions& Xyce::Device::DeviceMgr::getDeviceOptions ( ) const
inline

Definition at line 224 of file N_DEV_DeviceMgr.h.

const InstanceVector & Xyce::Device::DeviceMgr::getDevices ( ModelTypeId  model_type_id) const

Definition at line 407 of file N_DEV_DeviceMgr.C.

std::vector< double > Xyce::Device::DeviceMgr::getFastSourcePeriod ( Parallel::Machine  comm,
const std::vector< std::string > &  sourceNames 
)

Definition at line 453 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::getHBSpecified ( ) const
inline

Definition at line 348 of file N_DEV_DeviceMgr.h.

int Xyce::Device::DeviceMgr::getHomotopyBlockSize ( ) const

Definition at line 3133 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::getInitialQnorm ( std::vector< TimeIntg::TwoLevelError > &  tleVec)

Definition at line 3508 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::getInnerLoopErrorSums ( std::vector< TimeIntg::TwoLevelError > &  tleVec) const

Definition at line 3540 of file N_DEV_DeviceMgr.C.

double Xyce::Device::DeviceMgr::getMaxTimeStepSize ( )

Definition at line 2960 of file N_DEV_DeviceMgr.C.

EntityTypeId Xyce::Device::DeviceMgr::getModelGroup ( const std::string &  model_or_device_type_name)

Return the ModelGroup of the device associated with the model type name or device type name.

Parameters
model_type_namemodel type name or device type name
Returns
Author
David G. Baur Raytheon Sandia National Laboratories 1355
Date
Mon Sep 23 07:53:04 2013

Definition at line 927 of file N_DEV_DeviceMgr.C.

std::pair< ModelTypeId, ModelTypeId > Xyce::Device::DeviceMgr::getModelType ( const InstanceBlock instance_block)

Definition at line 988 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::getNoiseSources ( std::vector< Xyce::Analysis::NoiseData * > &  noiseDataVec)

Definition at line 2460 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::getNumInterfaceNodes ( std::vector< int > &  numInterfaceNodes)

Definition at line 3080 of file N_DEV_DeviceMgr.C.

int Xyce::Device::DeviceMgr::getNumNoiseDevices ( )

Definition at line 2365 of file N_DEV_DeviceMgr.C.

int Xyce::Device::DeviceMgr::getNumNoiseSources ( )

Definition at line 2393 of file N_DEV_DeviceMgr.C.

Util::Op::Operator * Xyce::Device::DeviceMgr::getOp ( Parallel::Machine  comm,
const std::string &  name 
) const

Definition at line 4184 of file N_DEV_DeviceMgr.C.

const PassthroughParameterSet& Xyce::Device::DeviceMgr::getPassthroughParameterSet ( ) const
inline

Definition at line 234 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::getVoltageLimiterFlag ( )
inline

Definition at line 239 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::getVoltageLimiterStatus ( )

Definition at line 426 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::initializeAll ( Linear::System &  linear_system)

Definition at line 712 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::isLinearSystem ( )
inline

Definition at line 214 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::isPDESystem ( )
inline

Definition at line 219 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::loadBVectorsforAC ( Linear::Vector *  bVecRealPtr,
Linear::Vector *  bVecImagPtr 
)

Definition at line 2331 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::loadCouplingRHS ( int  iPDEDevice,
int  iElectrode,
Linear::Vector *  dfdvPtr 
)

Definition at line 3106 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::loadDAEMatrices ( Linear::Vector *  tmpSolVectorPtr,
Linear::Vector *  tmpStaVectorPtr,
Linear::Vector *  tmpStaDerivVectorPtr,
Linear::Vector *  tmpStoVectorPtr,
Linear::Matrix *  tmpdQdxMatrixPtr,
Linear::Matrix *  tmpdFdxMatrixPtr 
)

Definition at line 1754 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::loadDAEVectors ( Linear::Vector *  tmpNextSolVectorPtr,
Linear::Vector *  tmpCurrSolVectorPtr,
Linear::Vector *  tmpLastSolVectorPtr,
Linear::Vector *  tmpNextStaVectorPtr,
Linear::Vector *  tmpCurrStaVectorPtr,
Linear::Vector *  tmpLastStaVectorPtr,
Linear::Vector *  tmpStaDerivVectorPtr,
Linear::Vector *  tmpNextStoVectorPtr,
Linear::Vector *  tmpCurrStoVectorPtr,
Linear::Vector *  tmpLastStoVectorPtr,
Linear::Vector *  tmpStoLeadCurrQCompVectorPtr,
Linear::Vector *  tmpLeadFCompVectorPtr,
Linear::Vector *  tmpLastLeadFCompVectorPtr,
Linear::Vector *  tmpNextLeadFCompVectorPtr,
Linear::Vector *  tmpLeadQCompVectorPtr,
Linear::Vector *  tmpJunctionVCompVectorPtr,
Linear::Vector *  tmpLastJunctionVCompVectorPtr,
Linear::Vector *  tmpNextJunctionCompVectorPtr,
Linear::Vector *  tmpQVectorPtr,
Linear::Vector *  tmpFVectorPtr,
Linear::Vector *  tmpBVectorPtr,
Linear::Vector *  tmpdFdxdVpVectorPtr,
Linear::Vector *  tmpdQdxdVpVectorPtr 
)

Definition at line 1913 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::loadErrorWeightMask ( Linear::Vector *  deviceMaskPtr)

Definition at line 2088 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::notify ( const Analysis::StepEvent event)

Definition at line 846 of file N_DEV_DeviceMgr.C.

DeviceMgr& Xyce::Device::DeviceMgr::operator= ( const DeviceMgr )
private

No assignment.

bool Xyce::Device::DeviceMgr::outputPlotFiles ( bool  force_final_output)

Definition at line 2607 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::parameterExists ( Parallel::Machine  comm,
const std::string &  name 
) const

Definition at line 1603 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::registerAnalysisManager ( Analysis::AnalysisManager analysis_manager)

Definition at line 244 of file N_DEV_DeviceMgr.C.

std::vector< double > Xyce::Device::DeviceMgr::registerFastSources ( Parallel::Machine  comm,
const std::vector< std::string > &  sourceNames 
)

Definition at line 500 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::registerICLoads ( std::vector< std::pair< int, double > > *  icLoads)
inline

Definition at line 576 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::registerNonlinearSolver ( Nonlinear::Manager tmp_nlsMgrPtr)
inline

Definition at line 138 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::registerSensParams ( const Util::OptionBlock &  option_block)

Definition at line 296 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::resetRHSLoadFlags ( int  index)
int Xyce::Device::DeviceMgr::restartDataSize ( bool  pack) const

Definition at line 3653 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::restoreRestartData ( char *  buf,
int  bsize,
int &  pos,
N_PDS_Comm *  comm,
bool  pack 
)

Definition at line 3746 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::setACAnalysisParams ( const Util::OptionBlock &  option_block)

Definition at line 379 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::setBlockAnalysisFlag ( bool  flagVal)

Definition at line 679 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::setDeviceOptions ( const Util::OptionBlock &  option_block)
inline

Definition at line 336 of file N_DEV_DeviceMgr.h.

void Xyce::Device::DeviceMgr::setExternalSolverState ( bool  external_initJctFlag)

Definition at line 3638 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::setFastTime ( double  timeVal)

Definition at line 698 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::setGlobalFlags ( )

Definition at line 2692 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::setHBAnalysisParams ( const Util::OptionBlock &  option_block)

Definition at line 365 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::setICs ( Linear::Vector *  tmpSolVectorPtr,
Linear::Vector *  tmpCurrSolVectorPtr,
Linear::Vector *  tmpLastSolVectorPtr,
Linear::Vector *  tmpStaVectorPtr,
Linear::Vector *  tmpCurrStaVectorPtr,
Linear::Vector *  tmpLasStaVectorPtr,
Linear::Vector *  tmpStaDerivVectorPtr,
Linear::Vector *  tmpStoVectorPtr,
Linear::Vector *  tmpCurrStoVectorPtr,
Linear::Vector *  tmpLastStoVectorPtr,
Linear::Vector *  tmpQVectorPtr,
Linear::Vector *  tmpFVectorPtr,
Linear::Vector *  tmpBVectorPtr,
Linear::Vector *  tmpdFdxdVpVectorPtr,
Linear::Vector *  tmpdQdxdVpVectorPtr 
)

Definition at line 2544 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::setInitialGuess ( Linear::Vector *  solVectorPtr)

Definition at line 1428 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::setLeadCurrentRequests ( const std::set< std::string > &  deviceNames)

Definition at line 321 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::setMPDEFlag ( bool  flagVal)

Definition at line 666 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::setNOISEAnalysisParams ( const Util::OptionBlock &  option_block)

Definition at line 393 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::setOPAnalysisParams ( const Util::OptionBlock &  option_block)

Definition at line 352 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::setParam ( const std::string &  name,
double  val,
bool  overrideOriginal = false 
)

Definition at line 1542 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::setupExternalDevices ( N_PDS_Comm &  parallel_comm)

Definition at line 3286 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::setupNoiseSources ( std::vector< Xyce::Analysis::NoiseData * > &  noiseDataVec)

Definition at line 2416 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::setupRawMatrixPointers_ ( )
private

Definition at line 2940 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::setupRawVectorPointers_ ( )
private

Definition at line 2801 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::setVoltageLimiterFlag ( bool  flagVal)
inline

Definition at line 563 of file N_DEV_DeviceMgr.h.

void Xyce::Device::DeviceMgr::setVoltageLimiterStatus ( bool  voltageLimterStatus)

Definition at line 439 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::startTimeStep ( bool  beginIntegrationFlag,
double  nextTimeStep,
double  nextTime,
int  currentOrder 
)

Definition at line 3601 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::unsetVoltageLimiterFlag ( )
inline

Definition at line 550 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::updateDependentParameters_ ( )
private

Definition at line 2211 of file N_DEV_DeviceMgr.C.

void Xyce::Device::DeviceMgr::updateExternalDevices_ ( )
private

Definition at line 3379 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::updateIntermediateVars_ ( )
private

Definition at line 2139 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::updatePrimaryState_ ( )
private

Definition at line 2163 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::updateSecondaryState_ ( )
private

Definition at line 2187 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::updateSources ( )

Definition at line 2518 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::updateState ( Linear::Vector *  nextSolVectorPtr,
Linear::Vector *  currSolVectorPtr,
Linear::Vector *  lastSolVectorPtr,
Linear::Vector *  nextStaVectorPtr,
Linear::Vector *  currStaVectorPtr,
Linear::Vector *  lastStaVectorPtr,
Linear::Vector *  nextStoVectorPtr,
Linear::Vector *  currStoVectorPtr,
Linear::Vector *  lastStoVectorPtr 
)

Definition at line 1635 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::updateStateArrays ( )

Definition at line 3573 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::updateTemperature ( double  val)

Definition at line 3146 of file N_DEV_DeviceMgr.C.

bool Xyce::Device::DeviceMgr::verifyDeviceInstance ( const InstanceBlock IB)

Definition at line 1090 of file N_DEV_DeviceMgr.C.

Friends And Related Function Documentation

Definition at line 101 of file N_DEV_DeviceMgr.h.

bool getParamAndReduce ( Parallel::Machine  comm,
const DeviceMgr device_manager,
const std::string &  name,
double &  value 
)
friend

Definition at line 4210 of file N_DEV_DeviceMgr.C.

Member Data Documentation

bool Xyce::Device::DeviceMgr::ACSpecified_
private

Definition at line 538 of file N_DEV_DeviceMgr.h.

Analysis::AnalysisManager* Xyce::Device::DeviceMgr::analysisManager_
private

To search for non-device parameters. This needs to be removed.

Definition at line 480 of file N_DEV_DeviceMgr.h.

ArtificialParameterMap Xyce::Device::DeviceMgr::artificialParameterMap_
private

Specially named parameters. This needs to be removed.

Definition at line 482 of file N_DEV_DeviceMgr.h.

InstanceVector Xyce::Device::DeviceMgr::bpInstancePtrVec_
private

instances with breakpoints functions

Definition at line 504 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::breakPointInstancesInitialized
private

Definition at line 465 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::calledBeforeCSPI
private

Definition at line 528 of file N_DEV_DeviceMgr.h.

Parallel::Machine Xyce::Device::DeviceMgr::comm_
private

Communicator (should be passed in when needed, not a member)

Definition at line 485 of file N_DEV_DeviceMgr.h.

const IO::CmdParse& Xyce::Device::DeviceMgr::commandLine_
private

Command line.

Definition at line 456 of file N_DEV_DeviceMgr.h.

EntityVector Xyce::Device::DeviceMgr::dependentPtrVec_
private

Definition at line 518 of file N_DEV_DeviceMgr.h.

EntityTypeIdDeviceMap Xyce::Device::DeviceMgr::deviceMap_
private

Definition at line 459 of file N_DEV_DeviceMgr.h.

DeviceVector Xyce::Device::DeviceMgr::devicePtrVec_
private

Definition at line 500 of file N_DEV_DeviceMgr.h.

std::set<std::string> Xyce::Device::DeviceMgr::devicesNeedingLeadCurrentLoads_
private

Definition at line 520 of file N_DEV_DeviceMgr.h.

DeviceOptions Xyce::Device::DeviceMgr::devOptions_
private

user-defined options:

Definition at line 458 of file N_DEV_DeviceMgr.h.

DeviceSensitivities* Xyce::Device::DeviceMgr::devSensPtr_
private

Definition at line 531 of file N_DEV_DeviceMgr.h.

Linear::Vector* Xyce::Device::DeviceMgr::diagonalVectorPtr_
private

Definition at line 478 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::dotOpOutputFlag_
private

Definition at line 535 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::dotOpOutputRequested_
private

Definition at line 534 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::externalInitJctFlag_
private

Definition at line 472 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::externalStateFlag_
private

Definition at line 473 of file N_DEV_DeviceMgr.h.

ExternData Xyce::Device::DeviceMgr::externData_
private

Definition at line 468 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::firstDependent_
private

True until updateDependentParameters_ is called.

Definition at line 463 of file N_DEV_DeviceMgr.h.

Globals& Xyce::Device::DeviceMgr::globals_
private

global variables

Definition at line 471 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::HBSpecified_
private

Definition at line 539 of file N_DEV_DeviceMgr.h.

std::vector<std::pair<int, double> >* Xyce::Device::DeviceMgr::icLoads_
private

Definition at line 487 of file N_DEV_DeviceMgr.h.

IndependentSourceMap Xyce::Device::DeviceMgr::independentSourceMap_
private

Definition at line 510 of file N_DEV_DeviceMgr.h.

IndependentSourceVector Xyce::Device::DeviceMgr::independentSourceVector_
private

Definition at line 509 of file N_DEV_DeviceMgr.h.

IndependentSourceVector Xyce::Device::DeviceMgr::indepSourceInstanceBackupPtrVec_
private

Definition at line 515 of file N_DEV_DeviceMgr.h.

InstanceVector Xyce::Device::DeviceMgr::instancePtrVec_
private

Definition at line 503 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::isLinearSystem_
private

True if all devices in netlist have isLinearDevice() true.

Definition at line 462 of file N_DEV_DeviceMgr.h.

DeviceCountMap Xyce::Device::DeviceMgr::localDeviceCountMap_
private

Definition at line 498 of file N_DEV_DeviceMgr.h.

MatrixLoadData Xyce::Device::DeviceMgr::matrixLoadData_
private

temporary jacobian load structures:

Definition at line 469 of file N_DEV_DeviceMgr.h.

ModelTypeInstanceVectorMap Xyce::Device::DeviceMgr::modelGroupInstanceVector_
private

Definition at line 491 of file N_DEV_DeviceMgr.h.

ModelTypeNameModelTypeIdMap Xyce::Device::DeviceMgr::modelGroupMap_
private

Model type name to model group.

Definition at line 490 of file N_DEV_DeviceMgr.h.

ModelTypeModelVectorMap Xyce::Device::DeviceMgr::modelGroupModelVector_
private

Definition at line 495 of file N_DEV_DeviceMgr.h.

ModelTypeInstanceVectorMap Xyce::Device::DeviceMgr::modelTypeInstanceVector_
private

Definition at line 492 of file N_DEV_DeviceMgr.h.

ModelTypeNameModelTypeIdMap Xyce::Device::DeviceMgr::modelTypeMap_
private

Model type name to model.

Definition at line 489 of file N_DEV_DeviceMgr.h.

ModelTypeModelVectorMap Xyce::Device::DeviceMgr::modelTypeModelVector_
private

Definition at line 496 of file N_DEV_DeviceMgr.h.

ModelVector Xyce::Device::DeviceMgr::modelVector_
private

Definition at line 494 of file N_DEV_DeviceMgr.h.

Nonlinear::Manager* Xyce::Device::DeviceMgr::nlsMgrPtr_
private

To get Nonlinear solver information. This needs to be removed.

Definition at line 486 of file N_DEV_DeviceMgr.h.

InstanceVector Xyce::Device::DeviceMgr::nonPdeInstancePtrVec_
private

Definition at line 506 of file N_DEV_DeviceMgr.h.

std::vector<int> Xyce::Device::DeviceMgr::numInterfaceNodes_
private

Definition at line 527 of file N_DEV_DeviceMgr.h.

Linear::Vector* Xyce::Device::DeviceMgr::numJacSolVectorPtr_
private

Definition at line 475 of file N_DEV_DeviceMgr.h.

Linear::Vector* Xyce::Device::DeviceMgr::numJacStaVectorPtr_
private

Definition at line 476 of file N_DEV_DeviceMgr.h.

Linear::Vector* Xyce::Device::DeviceMgr::numJacStoVectorPtr_
private

Definition at line 477 of file N_DEV_DeviceMgr.h.

Util::Op::BuilderManager& Xyce::Device::DeviceMgr::opBuilderManager_
private

Definition at line 522 of file N_DEV_DeviceMgr.h.

OpMap Xyce::Device::DeviceMgr::opMap_
mutableprivate

Definition at line 523 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::parameterChanged_
private

Only used locally in updateDependentParameters_, don't know if stateful of just a member for fun.

Definition at line 464 of file N_DEV_DeviceMgr.h.

DeviceEntityMap Xyce::Device::DeviceMgr::parameterDeviceCache_
mutableprivate

Full parameter name to device entity cache.

Definition at line 525 of file N_DEV_DeviceMgr.h.

PassthroughParameterSet Xyce::Device::DeviceMgr::passthroughParameterSet_
private

Parameters to pass through to external devices when set.

Definition at line 483 of file N_DEV_DeviceMgr.h.

DeviceVector Xyce::Device::DeviceMgr::pdeDevicePtrVec_
private

Definition at line 501 of file N_DEV_DeviceMgr.h.

InstanceVector Xyce::Device::DeviceMgr::pdeInstancePtrVec_
private

Definition at line 505 of file N_DEV_DeviceMgr.h.

InstanceVector Xyce::Device::DeviceMgr::plotFileInstancePtrVec_
private

Definition at line 507 of file N_DEV_DeviceMgr.h.

bool Xyce::Device::DeviceMgr::sensFlag_
private

.SENS present in netlist

Definition at line 461 of file N_DEV_DeviceMgr.h.

SolverState Xyce::Device::DeviceMgr::solState_
private

real time solver data:

Definition at line 470 of file N_DEV_DeviceMgr.h.

InstanceVector Xyce::Device::DeviceMgr::testJacDevicePtrVec_
private

Devices under jacobian test.

Definition at line 517 of file N_DEV_DeviceMgr.h.

double Xyce::Device::DeviceMgr::timeParamsProcessed_
private

Time updateDependentParameters was called.

Definition at line 466 of file N_DEV_DeviceMgr.h.

Topo::Topology& Xyce::Device::DeviceMgr::topology_
private

Topology.

Definition at line 457 of file N_DEV_DeviceMgr.h.


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