46 #ifndef Xyce_N_DEV_Device_h
47 #define Xyce_N_DEV_Device_h
56 #include <N_LAS_fwd.h>
158 virtual const std::string &
getName()
const = 0;
314 virtual bool updateState(
double * solVec,
double * staVec,
double * stoVec)
360 virtual bool loadDAEVectors (
double * solVec,
double * fVec,
double * qVec,
double *bVec,
double * storeLeadF,
double * storeLeadQ,
double * leadF,
double * leadQ,
double * junctionV)
virtual bool updateSources()
Updates the devices source information.
virtual bool isConverged() const
Checks that the device is converged.
virtual ~DeviceInstanceOp()
virtual const std::string & getDefaultModelName() const =0
Returns the name of the default model that would to used for this device.
virtual bool isPDEDevice() const =0
Returns true is the device is a PDE device.
Pure virtual class to augment a linear system.
Devices and models are each named.
virtual bool updateState(double *solVec, double *staVec, double *stoVec)
Updates the devices state information.
virtual bool updateSecondaryState(double *staDerivVec, double *stoVec)
Updates the devices secondary state information.
virtual DeviceModel * findModel(const ModelName &model_name)=0
Returns the device entity with the specified name.
The FactoryBlock contains parameters needed by the device, instance and model creation functions...
virtual DeviceInstance * addInstance(const InstanceBlock &instance_block, const FactoryBlock &factory_block)=0
Creates a device instance and adds to the device model's instance list.
virtual bool operator()(DeviceInstance *instance)=0
virtual bool loadDAEMatrices(Linear::Matrix &dFdx, Linear::Matrix &dQdx)
Populates the device's Jacobian object with these pointers.
The Device class is an interface for device implementations.
virtual const std::string & getName() const =0
Returns the name given to the device.
virtual void forEachInstance(DeviceInstanceOp &op) const =0
Executes op on each DeviceInstance pointer of the device.
virtual void forEachModel(DeviceModelOp &op) const =0
Executes op on each DeviceModel pointer of the device.
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.
virtual DeviceEntity * findInstance(const InstanceName &instance_name)=0
Returns the device entity with the specified name.
virtual DeviceModel * addModel(const ModelBlock &model_block, const FactoryBlock &factory_block)=0
Creates a device model and adds it to the device's list of models.
Device & operator=(const Device &)
No assignment.
ModelBlock represents a .MODEL line from the netlist.
InstanceBlock represent a device instance line from the netlist.
virtual bool isLinearDevice() const =0
Returns true if the device is linear.
virtual bool operator()(DeviceModel *model)=0