47 #ifndef Xyce_N_DEV_DeviceEntity_h
48 #define Xyce_N_DEV_DeviceEntity_h
57 #include <N_LAS_fwd.h>
58 #include <N_UTL_fwd.h>
60 #include <N_UTL_NetlistLocation.h>
69 void populateParams(
const ParameterMap ¶meter_map, std::vector<Param> ¶m_list, CompositeParamMap &composite_param_map);
102 const std::string & netlist_filename,
124 bool scaleParam(
const std::string & paramName,
double val,
double val0);
125 bool scaleParam(
const std::string & paramName,
double val);
132 std::vector<double> & dfdpVec,
133 std::vector<double> & dqdpVec,
134 std::vector<double> & dbdpVec,
135 std::vector<int> & FindicesVec,
136 std::vector<int> & QindicesVec,
137 std::vector<int> & BindicesVec );
140 std::vector<double> & dqdpVec,
141 std::vector<double> & dbdpVec,
142 std::vector<int> & FindicesVec,
143 std::vector<int> & QindicesVec,
144 std::vector<int> & BindicesVec );
146 bool setParam(
const std::string & paramName,
double val,
bool overrideOriginal=
false);
147 bool getParam(
const std::string & paramName,
double & result)
const;
148 bool findParam(
const std::string ¶m_name)
const;
171 bool given(
const std::string & parameter_name)
const;
173 virtual std::ostream &
printName(std::ostream &os)
const = 0;
211 void escape(std::string &)
const;
236 #endif // Xyce_N_DEV_DeviceEntity_h
ParametricData< void > & parametricData_
std::string defaultParamName_
bool updateDependentParameters()
bool getParam(const std::string ¶mName, double &result) const
void escape(std::string &) const
NetlistLocation netlistLocation_
bool given(const std::string ¶meter_name) const
DeviceEntity & operator=(const DeviceEntity &)
No assignment.
Pure virtual class to augment a linear system.
unordered_map< std::string, Descriptor *, HashNoCase, EqualNoCase > ParameterMap
virtual CompositeParam * constructComposite(const std::string &composite_name, const std::string ¶m_name)
Base class for all parameters.
const std::vector< Depend > & getDependentParams()
DeviceEntity(ParametricData< void > ¶metric_data, const SolverState &solver_state, const DeviceOptions &device_options, const std::string &netlist_filename, int netlist_line)
bool getAnalyticSensitivity(const std::string ¶mName, std::vector< double > &dfdpVec, std::vector< double > &dqdpVec, std::vector< double > &dbdpVec, std::vector< int > &FindicesVec, std::vector< int > &QindicesVec, std::vector< int > &BindicesVec)
std::vector< double > * resVec
bool scaleDefaultParam(double val)
double setDependentParameter(Util::Param &, double *, ParameterType::ExprAccess)
const DeviceOptions & devOptions_
void setParams(const std::vector< Param > ¶ms)
const ParameterMap & getParameterMap() const
std::vector< double > vals
void setParameters(CompositeParam &composite_param, const std::string &pName, const Param &ndParam)
const DeviceOptions & getDeviceOptions() const
bool findParam(const std::string ¶m_name) const
union Xyce::Device::Depend::resUnion resultU
Class ParametricData manages the configuration information and the parameter binding map...
std::vector< std::string > global_params
void checkDepend(ParameterType::ExprAccess &)
bool setDefaultParam(double val, bool overrideOriginal=false)
std::vector< Depend > dependentParams_
void setDefaultParameters(ParameterBase ¶meter_base, ParameterMap::const_iterator begin, ParameterMap::const_iterator end, const DeviceOptions &device_options)
Set the default values for the parameter.
std::vector< int > expVarLIDs
bool getParamBreakpoints(std::vector< Util::BreakPoint > &)
std::vector< int > expVarGIDs
bool analyticSensitivityAvailable(const std::string ¶mName)
std::vector< double > eVarVals
const SolverState & getSolverState() const
const NetlistLocation & netlistLocation() const
virtual std::ostream & printName(std::ostream &os) const =0
void populateParams(const ParameterMap ¶meter_map, std::vector< Param > ¶m_list, CompositeParamMap &composite_param_map)
void addDependentParameter(const Depend ¶m)
std::map< std::string, std::vector< Param >, LessNoCase > CompositeParamMap
unordered_map< std::string, double, HashNoCase, EqualNoCase > GlobalParameterMap
std::vector< double > expVarVals
bool scaleParam(const std::string ¶mName, double val, double val0)
double getDefaultParam() const
bool setParam(const std::string ¶mName, double val, bool overrideOriginal=false)
bool getAnalyticSensitivityDefaultParam(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 analyticSensitivityAvailableDefaultParam()
void setDefaultParamName(const std::string &default_param_name)
virtual bool processInstanceParams()=0
bool updateGlobalParameters(GlobalParameterMap &)
ParameterMap & getMap()
Gets the parameter binding map map.
virtual bool processParams()=0
std::vector< std::string > expVarNames
CompositeParam is the base class for classes that wish to only manage the processing of parameter dat...
const SolverState & solState_