46 #include <Xyce_config.h>
55 #include <N_UTL_IndentStreamBuf.h>
56 #include <N_UTL_Demangle.h>
65 bool operator()(
const std::type_info *t0,
const std::type_info *t1)
const
67 return t0->before(*t1);
73 std::ostream &
printTypeName(std::ostream &os,
const std::type_info &type)
75 if (s_typeInfoNameMap.empty()) {
76 s_typeInfoNameMap[&
typeid(bool)] =
"boolean";
77 s_typeInfoNameMap[&
typeid(double)] =
"double";
78 s_typeInfoNameMap[&
typeid(int)] =
"int";
79 s_typeInfoNameMap[&
typeid(std::string)] =
"string";
80 s_typeInfoNameMap[&
typeid(std::vector<double>)] =
"double vector";
81 s_typeInfoNameMap[&
typeid(std::vector<int>)] =
"int vector";
82 s_typeInfoNameMap[&
typeid(std::vector<std::string>)] =
"string vector";
85 if (s_typeInfoNameMap[&type].empty())
88 os << s_typeInfoNameMap[&type];
93 std::ostream &
outputParameterMap(std::ostream &os,
const OrderedParameterMap ¶meter_map);
105 os <<
", original value managed, scaling enabled";
109 const OrderedParameterMap composite_parametric_map(composite_parametric_data.
getMap().begin(), composite_parametric_data.
getMap().end());
110 os << Util::push << std::endl;
123 const OrderedParameterMap & parameter_map)
125 for (OrderedParameterMap::const_iterator it = parameter_map.begin(); it != parameter_map.end(); ++it) {
126 os << (*it).first <<
", ";
139 os <<
"Configuration" << Xyce::Util::push << std::endl
140 <<
"Name: " << configuration.
getName() << std::endl
142 <<
"Nodes: " << configuration.
getNumNodes() << std::endl
145 <<
"Model Required: " << (configuration.
getModelRequired() ?
"yes" :
"no") << std::endl
146 <<
"Linear Device: " << (configuration.
getLinearDevice() ?
"yes" :
"no") << std::endl
147 <<
"PDE Device: " << (configuration.
getPDEDevice() ?
"yes" :
"no") << std::endl
151 os <<
"Model Types: ";
157 os << Xyce::Util::pop << std::endl
158 <<
"Model Parameters" << Xyce::Util::push << std::endl;
160 const OrderedParameterMap model_parameter_map(model_parameters.
getMap().begin(), model_parameters.
getMap().end());
162 os << Xyce::Util::pop << std::endl
163 <<
"Instance Parameters" << Xyce::Util::push << std::endl;
164 const OrderedParameterMap instance_parameter_map(instance_parameters.
getMap().begin(), instance_parameters.
getMap().end());
167 os << Xyce::Util::pop << std::endl
168 << Xyce::Util::pop << std::endl;
const Entry< void > & getEntry() const
Gets the entry object of the parameter.
bool getModelRequired() const
Returns true of the model must be specified when defining an instance of this device.
ParametricData< void > & getModelParameters() const
Returns the model parameter descriptions.
int getNumFillNodes() const
Returns the number of fill nodes of this device.
bool operator()(const std::type_info *t0, const std::type_info *t1) const
bool getPDEDevice() const
Returns true of the model is a PDE device.
std::ostream & outputParameterMap(std::ostream &os, const OrderedParameterMap ¶meter_map)
Pure virtual class to augment a linear system.
std::ostream & outputDescriptor(std::ostream &os, const Descriptor &descriptor)
const std::string & getPrimaryParameter() const
Returns the default primary parameter of this device or the empty string if there is no primary param...
int getNumOptionalNodes() const
Returns the number of optional nodes of this device.
const std::string & getDeviceTypeName() const
Returns the device type name.
std::ostream & print(std::ostream &os) const
Prints the value of the entry to the output stream.
std::ostream & printTypeName(std::ostream &os, const std::type_info &type)
ParametricData< void > & getInstanceParameters() const
Returns the instance parameter descriptions.
Class ParametricData manages the configuration information and the parameter binding map...
const ParametricData< U > * getCompositeParametricData() const
Return the composite parameter.
Class Descriptor describes the parameters stored in the ParametricData parameter map.
Class Configuration contains device configuration data.
std::map< std::string, Descriptor *, LessNoCase > OrderedParameterMap
bool hasOriginalValueStored() const
Returns whether an original value has been stored.
int getNumNodes() const
Returns the number of nodes of this device.
std::map< const std::type_info *, std::string, type_compare_less > s_typeInfoNameMap
const std::string & getName() const
Returns the device name.
const std::string & getInstanceDefaultParameterName() const
Returns the instance default parameter name.
ParameterMap & getMap()
Gets the parameter binding map map.
virtual const std::type_info & type() const =0
Returns the type_info of the data type being stored in the entry.
const std::vector< std::string > & getModelTypeNames() const
Returns a vector of strings that name all the model types defined of this model.
std::ostream & operator<<(std::ostream &os, const Configuration &configuration)
bool getLinearDevice() const
Returns true of the model is a linear device.