38 #include <Xyce_config.h>
50 #include <N_ERH_ErrorMgr.h>
52 #include <N_LAS_Vector.h>
53 #include <N_LAS_Matrix.h>
98 :
DeviceInstance(IB, configuration.getInstanceParameters(), factory_block),
110 ABraEquPosNodeOffset(-1),
111 ABraEquNegNodeOffset(-1),
112 AOutEquBraVarOffset(-1),
181 const std::vector<int> & extLIDVecRef)
184 #ifdef Xyce_DEBUG_DEVICE
187 Xyce::dout() << std::endl << section_divider << std::endl;
188 Xyce::dout() <<
" OpAmpInstance::registerLIDs" << std::endl;
189 Xyce::dout() <<
" name = " <<
getName() << std::endl;
195 int numInt = intLIDVecRef.size();
196 int numExt = extLIDVecRef.size();
200 std::string msg =
"Instance::registerLIDs:";
201 msg +=
"numInt != numIntVars";
202 N_ERH_ErrorMgr::report ( N_ERH_ErrorMgr::DEV_FATAL_0,msg);
207 std::string msg =
"Instance::registerLIDs:";
208 msg +=
"numExt != numExtVars";
209 N_ERH_ErrorMgr::report ( N_ERH_ErrorMgr::DEV_FATAL_0,msg);
225 #ifdef Xyce_DEBUG_DEVICE
228 Xyce::dout() <<
" li_Pos = " <<
li_Pos << std::endl;
229 Xyce::dout() <<
" li_Neg = " <<
li_Neg << std::endl;
230 Xyce::dout() <<
" li_Out = " <<
li_Out << std::endl;
231 Xyce::dout() <<
" li_Bra = " <<
li_Bra << std::endl;
232 Xyce::dout() << section_divider << std::endl;
302 #ifdef Xyce_DEBUG_DEVICE
305 Xyce::dout() << subsection_divider << std::endl;
306 Xyce::dout() <<
" Instance::updateIntermediateVars" << std::endl;
307 Xyce::dout() <<
" name = " <<
getName() <<std::endl;
308 Xyce::dout() <<
" v_pos = " <<
v_pos << std::endl;
309 Xyce::dout() <<
" v_neg = " << v_neg << std::endl;
310 Xyce::dout() <<
" v_out = " <<
v_out << std::endl;
311 Xyce::dout() <<
" i_bra = " <<
i_bra << std::endl;
312 Xyce::dout() << std::endl;
313 Xyce::dout() << subsection_divider << std::endl;
330 #ifdef Xyce_DEBUG_DEVICE
333 Xyce::dout() <<
" Instance::updatePrimaryState" << std::endl;
336 bool bsuccess =
true;
358 #ifdef Xyce_DEBUG_DEVICE
361 Xyce::dout() << subsection_divider << std::endl;
362 Xyce::dout() <<
" Instance::loadDAEFVector" << std::endl;
363 Xyce::dout() <<
" name = " <<
getName() <<std::endl;
364 Xyce::dout() <<
" Output Current = " <<
outCurrent << std::endl;
365 Xyce::dout() <<
" Delta Voltage = " <<
deltaVoltage << std::endl;
400 #ifdef Xyce_DEBUG_DEVICE
404 Xyce::dout() << subsection_divider << std::endl;
405 Xyce::dout() <<
"name = " <<
getName() << std::endl;
406 Xyce::dout() <<
"\nOPAMP dFdx LOADS\n";
407 Xyce::dout() <<
"Pos,Bra: " <<
li_Out <<
",";
409 Xyce::dout() <<
"Bra,Pos: " <<
li_Bra <<
",";
411 Xyce::dout() <<
"Bra,Neg: " <<
li_Bra <<
",";
413 Xyce::dout() <<
"DONE OPAMP dFdx LOAD\n";
440 :
DeviceModel(MB, configuration.getModelParameters(), factory_block),
458 for ( ; iter!=last; ++iter)
480 os <<
" name model name Parameters" << std::endl;
481 for (
int i=0; iter!=last; ++iter, ++i)
483 os <<
" " << i <<
": " << (*iter)->getName() <<
" ";
509 for (std::vector<Instance *>::const_iterator it = instanceContainer.begin(); it != instanceContainer.end(); ++it)
523 .registerDevice(
"opamp", 1)
524 .registerModelType(
"opamp", 1);