45 #include <Xyce_config.h>
50 #include <N_ERH_Message.h>
59 namespace ArtificialParameters {
143 for (InstanceVector::const_iterator it = (*model_group_it).second.begin(); it != (*model_group_it).second.end(); ++it)
145 success = (*it)->setParam(
"l", value);
146 success = success && (*it)->processParams ();
169 for (InstanceVector::const_iterator it = (*model_group_it).second.begin(); it != (*model_group_it).second.end(); ++it)
171 success = (*it)->setParam(
"w", value);
172 success = success && (*it)->processParams ();
202 for (InstanceVector::const_iterator it = (*model_group_it).second.begin(); it != (*model_group_it).second.end(); ++it)
204 success = (*it)->scaleParam(
"l", value, length0);
205 success = success || (*it)->scaleParam(
"w", value, width0);
206 success = success && (*it)->processParams();
233 for (InstanceVector::const_iterator it = (*model_group_it).second.begin(); it != (*model_group_it).second.end(); ++it)
235 success = (*it)->scaleParam(
"tox", value, tox0);
236 success = success && (*it)->processParams();
237 success = success && (*it)->processInstanceParams();
255 for (InstanceVector::const_iterator it = (*model_group_it).second.begin(); it != (*model_group_it).second.end(); ++it)
257 success = (*it)->scaleParam(
"bf", value, 0.0);
258 success = success && (*it)->processParams();
259 success = success && (*it)->processInstanceParams();
277 for (InstanceVector::const_iterator it = (*model_group_it).second.begin(); it != (*model_group_it).second.end(); ++it)
279 success = (*it)->scaleParam(
"nf", value, 0.0);
280 success = success && (*it)->processParams();
281 success = success && (*it)->processInstanceParams();
299 for (InstanceVector::const_iterator it = (*model_group_it).second.begin(); it != (*model_group_it).second.end(); ++it)
301 success = (*it)->scaleParam(
"nr", value, 0.0);
302 success = success && (*it)->processParams();
303 success = success && (*it)->processInstanceParams();
333 for (InstanceVector::const_iterator it = (*model_group_it).second.begin(); it != (*model_group_it).second.end(); ++it)
335 success = (*it)->scaleParam(
"n", value, 10.0);
336 success = success && (*it)->processParams();
337 success = success && (*it)->processInstanceParams();
355 for (InstanceVector::const_iterator it = (*model_group_it).second.begin(); it != (*model_group_it).second.end(); ++it)
357 success = (*it)->scaleDefaultParam(value);
358 success = (*it)->processParams();
376 Report::DevelFatal().in(
"DeviceMgr::setParam") <<
"Tried to set pdeAlpha without first calling enablePDEContinuation";
381 (*it)->setPDEContinuationAlpha(value);
398 (*it)->setPDEContinuationBeta(value);
virtual bool setValue(DeviceMgr &device_manager, double value)
virtual bool setValue(DeviceMgr &device_manager, double value)
bool chargeHomotopy_
2d PDE Devices, ArtificialParameters
virtual bool setValue(DeviceMgr &device_manager, double value)
virtual double getValue(const DeviceMgr &device_manager) const
bool bjtArtParameterFlag_
BJT homotopy variables (BJT Devices)
std::vector< DeviceInstance * > InstanceVector
double defw
MOS channel width.
virtual double getValue(const DeviceMgr &device_manager) const
virtual double getValue(const DeviceMgr &device_manager) const
virtual double getValue(const DeviceMgr &device_manager) const
virtual bool setValue(DeviceMgr &device_manager, double value)
virtual double getValue(const DeviceMgr &device_manager) const
virtual bool setValue(DeviceMgr &device_manager, double value)
InstanceVector instancePtrVec_
Pure virtual class to augment a linear system.
virtual double getValue(const DeviceMgr &device_manager) const
virtual bool setValue(DeviceMgr &device_manager, double value)
virtual bool setValue(DeviceMgr &device_manager, double value)
virtual double getValue(const DeviceMgr &device_manager) const
std::vector< double > gainScale_
MOSFET Devices, ArtificialParameters.
ModelTypeInstanceVectorMap & getModelTypeInstanceVectorMap(DeviceMgr &device_manager)
double sizeScale_
ArtificialParameters.
virtual bool setValue(DeviceMgr &device_manager, double value)
double defl
MOS channel length.
const T & value(const ParameterBase &entity, const Descriptor &descriptor)
Returns the value of the parameter for the entity.
bool PDEcontinuationFlag_
PDE enable/disablePDSContinuation(), VsrcScaleParam, PDEBetaParam, PDEAlphaParam, Diode PDE Device...
virtual bool setValue(DeviceMgr &device_manager, double value)
virtual double getValue(const DeviceMgr &device_manager) const
bool sizeParameterFlag_
ArtificialParameters, not sure these are really used.
double pdeAlpha_
PDEAlphaParam of ArtificialParameters.
virtual bool setValue(DeviceMgr &device_manager, double value)
virtual double getValue(const DeviceMgr &device_manager) const
double gmin_init
this is needed for gmin-homotopy.
virtual bool setValue(DeviceMgr &device_manager, double value)
virtual double getValue(const DeviceMgr &device_manager) const
DeviceOptions & getDeviceOptions(DeviceMgr &device_manager)
virtual double getValue(const DeviceMgr &device_manager) const
std::map< ModelTypeId, InstanceVector > ModelTypeInstanceVectorMap
virtual double getValue(const DeviceMgr &device_manager) const
virtual double getValue(const DeviceMgr &device_manager) const
virtual double getValue(const DeviceMgr &device_manager) const
virtual bool setValue(DeviceMgr &device_manager, double value)
virtual bool setValue(DeviceMgr &device_manager, double value)
virtual double getValue(const DeviceMgr &device_manager) const
bool artParameterFlag_
MOSFET Devices, ArtificialParameters.
InstanceVector & getInstanceVector(DeviceMgr &device_manager)
virtual bool setValue(DeviceMgr &device_manager, double value)
static const ModelTypeId modelGroup()
Returns the model group identifier.
DeviceOptions devOptions_
user-defined options:
SolverState solState_
real time solver data:
virtual bool setValue(DeviceMgr &device_manager, double value)
double nltermScale_
MOSFET Devices, ArtificialParameters.
virtual bool setValue(DeviceMgr &device_manager, double value)
double gmin
minimum allowed conductance.
bool updateTemperature(double val)
virtual double getValue(const DeviceMgr &device_manager) const
virtual bool setValue(DeviceMgr &device_manager, double value)
double chargeAlpha_
2d PDE Devices, ArtificialParameters
virtual double getValue(const DeviceMgr &device_manager) const
double exp_order
tolerance on resistance below which it will be treated as zero
Util::Param temp
operating temperature of ckt.
virtual bool setValue(DeviceMgr &device_manager, double value)
virtual double getValue(const DeviceMgr &device_manager) const
ModelTypeInstanceVectorMap modelGroupInstanceVector_
virtual bool setValue(DeviceMgr &device_manager, double value)
virtual double getValue(const DeviceMgr &device_manager) const
double gmin_orig
this is needed for gmin-homotopy.
SolverState & getSolverState(DeviceMgr &device_manager)