45 #include <Xyce_config.h>
61 #include <N_ERH_ErrorMgr.h>
63 #include <N_LAS_Vector.h>
64 #include <N_LAS_Matrix.h>
75 .setDescription(
"Transconductance");
98 :
DeviceInstance(instance_block, configuration.getInstanceParameters(), factory_block),
100 Transconductance(1.0),
106 APosEquContPosVarOffset(-1),
107 APosEquContNegVarOffset(-1),
108 ANegEquContPosVarOffset(-1),
109 ANegEquContNegVarOffset(-1),
110 f_PosEquContPosVarPtr(0),
111 f_PosEquContNegVarPtr(0),
112 f_NegEquContPosVarPtr(0),
113 f_NegEquContNegVarPtr(0)
140 UserError0(*
this) <<
"Could not find Transconductance parameter in instance.";
166 const std::vector<int> & extLIDVecRef )
171 #ifdef Xyce_DEBUG_DEVICE
175 Xyce::dout() << std::endl << section_divider << std::endl;
176 Xyce::dout() <<
" VCCSInstance::registerLIDs" << std::endl;
177 Xyce::dout() <<
" name = " <<
getName() << std::endl;
194 #ifdef Xyce_DEBUG_DEVICE
197 Xyce::dout() <<
" li_Pos = " <<
li_Pos << std::endl;
198 Xyce::dout() <<
" li_Neg = " <<
li_Neg << std::endl;
199 Xyce::dout() <<
" li_ContPos = " <<
li_ContPos << std::endl;
200 Xyce::dout() <<
" li_ContNeg = " <<
li_ContNeg << std::endl;
202 Xyce::dout() << section_divider << std::endl;
257 std::string modName(
getName());
260 tmpstr = modName+
":DEV_I";
307 #ifndef Xyce_NONPOINTER_MATRIX_LOAD
399 :
DeviceModel(MB, configuration.getModelParameters(), factory_block)
413 std::vector<Instance*>::iterator iter;
417 for (iter=first; iter!=last; ++iter)
433 std::vector<Instance*>::const_iterator iter;
439 os <<
" name model name Parameters" << std::endl;
440 for (i=0, iter=first; iter!=last; ++iter, ++i)
442 os <<
" " << i <<
": " << (*iter)->getName() <<
" ";
468 for (std::vector<Instance *>::const_iterator it = instanceContainer.begin(); it != instanceContainer.end(); ++it)
530 #ifndef Xyce_NONPOINTER_MATRIX_LOAD
556 .registerDevice(
"g", 1);