48 #include <Xyce_config.h>
62 #include <N_LAS_Matrix.h>
63 #include <N_LAS_Vector.h>
64 #include <N_UTL_FeatureTest.h>
65 #include <N_UTL_IndentStreamBuf.h>
75 .setDescription(
"Initial Velocity");
79 .setDescription(
"Initial Position");
103 :
DeviceInstance(IB, configuration.getInstanceParameters(), factory_block),
112 AVelEquAccNodeOffset(-1),
113 AVelEquVelNodeOffset(-1),
114 APosEquVelNodeOffset(-1),
115 APosEquPosNodeOffset(-1)
173 const std::vector<int> & extLIDVecRef )
186 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS))
189 << Util::push << std::endl
190 <<
"li_Acc = " <<
li_Acc << std::endl
193 << Util::pop << std::endl;
270 bool bsuccess =
true;
291 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
293 Xyce::dout() <<
"Instance::updatePrimaryState" <<std::endl;
355 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
357 Xyce::dout() << subsection_divider << std::endl;
358 Xyce::dout() <<
" Instance::loadDAEFVector" << std::endl;
359 Xyce::dout() <<
" name = " <<
getName() <<std::endl;
360 Xyce::dout() <<
" velocity = " <<
velocity << std::endl;
361 Xyce::dout() <<
" position = " <<
position << std::endl;
484 :
DeviceModel(MB, configuration.getModelParameters(), factory_block)
498 std::vector<Instance*>::iterator iter;
502 for (iter=first; iter!=last; ++iter)
518 std::vector<Instance*>::const_iterator iter;
524 os <<
" name model name Parameters" << std::endl;
525 for (i=0, iter=first; iter!=last; ++iter, ++i)
527 os <<
" " << i <<
": " << (*iter)->getName() <<
" ";
553 for (std::vector<Instance *>::const_iterator it = instanceContainer.begin(); it != instanceContainer.end(); ++it)
567 .registerDevice(
"acc", 1);
const InstanceName & getName() const
double * nextStaDerivVectorRawPtr
static void loadModelParameters(ParametricData< Model > &model_parameters)
const SolverState & solverState_
Descriptor & addPar(const char *parName, T default_value, T U::*varPtr)
Adds the parameter description to the parameter map.
double * daeQVectorRawPtr
bool updateIntermediateVars()
std::vector< int > devConMap
bool updatePrimaryState()
Pure virtual class to augment a linear system.
static void loadInstanceParameters(ParametricData< Instance > &instance_parameters)
double * currStaVectorRawPtr
void loadNodeSymbols(Util::SymbolTable &symbol_table) const
Populates and returns the store name map.
virtual std::ostream & printOutInstances(std::ostream &os) const
virtual void registerJacLIDs(const JacobianStamp &jacLIDVec)
static std::vector< std::vector< int > > jacStamp
void registerLIDs(const std::vector< int > &intLIDVecRef, const std::vector< int > &extLIDVecRef)
bool updateSecondaryState()
const std::vector< std::vector< int > > & jacobianStamp() const
void setParams(const std::vector< Param > ¶ms)
const std::string & getName() const
double * daeFVectorRawPtr
The FactoryBlock contains parameters needed by the device, instance and model creation functions...
const DeviceOptions & deviceOptions_
virtual void forEachInstance(DeviceInstanceOp &op) const
Apply a device instance "op" to all instances associated with this model.
static Config< T > & addConfiguration()
Adds the device to the Xyce device configuration.
Linear::Matrix * dFdxMatrixPtr
The Device class is an interface for device implementations.
Class Configuration contains device configuration data.
std::vector< Instance * > instanceContainer
Instance(const Configuration &configuration, const InstanceBlock &IB, Model &Riter, const FactoryBlock &factory_block)
const SolverState & getSolverState() const
double * nextStaVectorRawPtr
void registerStateLIDs(const std::vector< int > &staLIDVecRef)
const ExternData & extData
void registerJacLIDs(const std::vector< std::vector< int > > &jacLIDVec)
ModelBlock represents a .MODEL line from the netlist.
Manages parameter binding for class C.
InstanceBlock represent a device instance line from the netlist.
std::vector< Param > params
Linear::Matrix * dQdxMatrixPtr
double * nextSolVectorRawPtr
static Device * factory(const Configuration &configuration, const FactoryBlock &factory_block)