45 #include <Xyce_config.h>
53 #include <N_LAS_Matrix.h>
176 .setDescription(
"Resistance");
179 .setDescription(
"Length");
182 .setDescription(
"Width");
186 .setDescription(
"Device temperature");
191 .setDescription(
"Linear Temperature Coefficient");
195 .setDescription(
"Quadratic Temperature Coefficient");
201 .setDescription(
"Device Temperature -- For compatibility only. Parameter is NOT used");
232 .setDescription(
"Linear Temperature Coefficient");
235 .setDescription(
"Quadratic Temperature Coefficient");
238 .setDescription(
"Sheet Resistance");
241 .setDescription(
"Default Instance Width");
244 .setDescription(
"Narrowing due to side etching");
247 .setDescription(
"Parameter Measurement Temperature");
275 :
DeviceInstance(instance_block, configuration.getInstanceParameters(), factory_block),
280 temp(factory_block.deviceOptions_.temp.getImmutableValue<double>()),
284 tempCoeff1Given(false),
285 tempCoeff2Given(false),
292 APosEquPosNodeOffset(-1),
293 APosEquNegNodeOffset(-1),
294 ANegEquPosNodeOffset(-1),
295 ANegEquNegNodeOffset(-1)
298 f_PosEquPosNodePtr(0),
299 f_PosEquNegNodePtr(0),
300 f_NegEquPosNodePtr(0),
301 f_NegEquNegNodePtr(0)
347 UserWarning0(*
this) <<
"Resistance is set to 0, setting to the default, " <<
R <<
" ohms";
414 const std::vector<int> & intLIDVecRef,
415 const std::vector<int> & extLIDVecRef)
432 <<
"li_Pos_ = " <<
li_Pos << std::endl
433 <<
"li_Neg_ = " <<
li_Neg << std::endl
536 std::string modName(
getName());
539 tmpstr = modName+
":DEV_I";
623 #ifndef Xyce_NONPOINTER_MATRIX_LOAD
666 double v_pos = solVec[
li_Pos];
667 double v_neg = solVec[
li_Neg];
668 i0 = (v_pos-v_neg)*
G;
849 bool bsuccess =
true;
850 double difference, factor;
852 if (temp_tmp != -999.0)
858 G = 1.0/(
R * factor);
908 (*it)->processParams();
935 :
DeviceModel(model_block, configuration.getModelParameters(), factory_block),
941 tnom(getDeviceOptions().tnom)
1007 os <<
"Number of Resistor Instances: " <<
instanceContainer.size() << std::endl;
1008 os <<
" name model name Parameters" << std::endl;
1013 os <<
" " << i <<
": " << (*it)->getName() <<
"\t";
1015 os <<
"\t\tR(Tnom) = " << (*it)->R;
1016 os <<
"\tG(T) = " << (*it)->G;
1042 for (std::vector<Instance *>::const_iterator it = instanceContainer.begin(); it != instanceContainer.end(); ++it)
1079 double v_pos = solVec[ri.
li_Pos];
1080 double v_neg = solVec[ri.
li_Neg];
1083 ri.
i0 = (v_pos-v_neg)*ri.
G;
1165 #ifndef Xyce_NONPOINTER_MATRIX_LOAD
1222 .registerDevice(
"r", 1)
1223 .registerModelType(
"r", 1);