49 #include <Xyce_config.h>
61 #include <N_LAS_Matrix.h>
62 #include <N_LAS_Vector.h>
64 #include <N_UTL_FeatureTest.h>
65 #if defined(HAVE_UNORDERED_MAP)
66 #include <unordered_map>
67 using std::unordered_map;
68 #elif defined(HAVE_TR1_UNORDERED_MAP)
69 #include <tr1/unordered_map>
70 using std::tr1::unordered_map;
72 #error neither unordered_map or tr1/unordered_map found
93 .setExpressionAccess(
NO_DOC)
96 .setDescription(
"Internal-use parameter for setting device instance temperature");
99 .setDescription(
"Device operating temperature")
100 .setAnalyticSensitivityAvailable(
true)
104 .setDescription(
"Number of emitter fingers");
107 .setDescription(
"Length of emitter fingers")
108 .setAnalyticSensitivityAvailable(
true)
112 .setDescription(
"Width of emitter fingers")
113 .setAnalyticSensitivityAvailable(
true)
128 .setExpressionAccess(
NO_DOC)
131 .setDescription(
"Internal-use parameter for setting device model temperature");
138 .setDescription(
"Device operating temperature")
139 .setAnalyticSensitivityAvailable(
true)
140 .setSensitivityFunctor(&
modSens);
142 .setAnalyticSensitivityAvailable(
true)
143 .setSensitivityFunctor(&
modSens);
145 .setAnalyticSensitivityAvailable(
true)
146 .setSensitivityFunctor(&
modSens);
149 .setDescription(
"Number of emitter fingers");
152 .setDescription(
"Length of emitter fingers")
153 .setAnalyticSensitivityAvailable(
true)
154 .setSensitivityFunctor(&
modSens);
157 .setDescription(
"Width of emitter fingers")
158 .setAnalyticSensitivityAvailable(
true)
159 .setSensitivityFunctor(&
modSens);
161 .setAnalyticSensitivityAvailable(
true)
162 .setSensitivityFunctor(&
modSens);
164 .setAnalyticSensitivityAvailable(
true)
165 .setSensitivityFunctor(&
modSens);
167 .setAnalyticSensitivityAvailable(
true)
168 .setSensitivityFunctor(&
modSens);
170 .setAnalyticSensitivityAvailable(
true)
171 .setSensitivityFunctor(&
modSens);
173 .setAnalyticSensitivityAvailable(
true)
174 .setSensitivityFunctor(&
modSens);
176 .setAnalyticSensitivityAvailable(
true)
177 .setSensitivityFunctor(&
modSens);
179 .setAnalyticSensitivityAvailable(
true)
180 .setSensitivityFunctor(&
modSens);
182 .setAnalyticSensitivityAvailable(
true)
183 .setSensitivityFunctor(&
modSens);
185 .setAnalyticSensitivityAvailable(
true)
186 .setSensitivityFunctor(&
modSens);
188 .setAnalyticSensitivityAvailable(
true)
189 .setSensitivityFunctor(&
modSens);
191 .setAnalyticSensitivityAvailable(
true)
192 .setSensitivityFunctor(&
modSens);
194 .setAnalyticSensitivityAvailable(
true)
195 .setSensitivityFunctor(&
modSens);
197 .setAnalyticSensitivityAvailable(
true)
198 .setSensitivityFunctor(&
modSens);
200 .setAnalyticSensitivityAvailable(
true)
201 .setSensitivityFunctor(&
modSens);
203 .setAnalyticSensitivityAvailable(
true)
204 .setSensitivityFunctor(&
modSens);
206 .setAnalyticSensitivityAvailable(
true)
207 .setSensitivityFunctor(&
modSens);
209 .setAnalyticSensitivityAvailable(
true)
210 .setSensitivityFunctor(&
modSens);
212 .setAnalyticSensitivityAvailable(
true)
213 .setSensitivityFunctor(&
modSens);
215 .setAnalyticSensitivityAvailable(
true)
216 .setSensitivityFunctor(&
modSens);
218 .setAnalyticSensitivityAvailable(
true)
219 .setSensitivityFunctor(&
modSens);
221 .setAnalyticSensitivityAvailable(
true)
222 .setSensitivityFunctor(&
modSens);
224 .setAnalyticSensitivityAvailable(
true)
225 .setSensitivityFunctor(&
modSens);
227 .setAnalyticSensitivityAvailable(
true)
228 .setSensitivityFunctor(&
modSens);
230 .setAnalyticSensitivityAvailable(
true)
231 .setSensitivityFunctor(&
modSens);
233 .setAnalyticSensitivityAvailable(
true)
234 .setSensitivityFunctor(&
modSens);
236 .setAnalyticSensitivityAvailable(
true)
237 .setSensitivityFunctor(&
modSens);
239 .setAnalyticSensitivityAvailable(
true)
240 .setSensitivityFunctor(&
modSens);
242 .setAnalyticSensitivityAvailable(
true)
243 .setSensitivityFunctor(&
modSens);
245 .setAnalyticSensitivityAvailable(
true)
246 .setSensitivityFunctor(&
modSens);
248 .setAnalyticSensitivityAvailable(
true)
249 .setSensitivityFunctor(&
modSens);
251 .setAnalyticSensitivityAvailable(
true)
252 .setSensitivityFunctor(&
modSens);
254 .setAnalyticSensitivityAvailable(
true)
255 .setSensitivityFunctor(&
modSens);
257 .setAnalyticSensitivityAvailable(
true)
258 .setSensitivityFunctor(&
modSens);
260 .setAnalyticSensitivityAvailable(
true)
261 .setSensitivityFunctor(&
modSens);
263 .setAnalyticSensitivityAvailable(
true)
264 .setSensitivityFunctor(&
modSens);
266 .setAnalyticSensitivityAvailable(
true)
267 .setSensitivityFunctor(&
modSens);
269 .setAnalyticSensitivityAvailable(
true)
270 .setSensitivityFunctor(&
modSens);
272 .setAnalyticSensitivityAvailable(
true)
273 .setSensitivityFunctor(&
modSens);
275 .setAnalyticSensitivityAvailable(
true)
276 .setSensitivityFunctor(&
modSens);
278 .setAnalyticSensitivityAvailable(
true)
279 .setSensitivityFunctor(&
modSens);
281 .setAnalyticSensitivityAvailable(
true)
282 .setSensitivityFunctor(&
modSens);
284 .setAnalyticSensitivityAvailable(
true)
285 .setSensitivityFunctor(&
modSens);
287 .setAnalyticSensitivityAvailable(
true)
288 .setSensitivityFunctor(&
modSens);
290 .setAnalyticSensitivityAvailable(
true)
291 .setSensitivityFunctor(&
modSens);
293 .setAnalyticSensitivityAvailable(
true)
294 .setSensitivityFunctor(&
modSens);
296 .setAnalyticSensitivityAvailable(
true)
297 .setSensitivityFunctor(&
modSens);
299 .setAnalyticSensitivityAvailable(
true)
300 .setSensitivityFunctor(&
modSens);
302 .setAnalyticSensitivityAvailable(
true)
303 .setSensitivityFunctor(&
modSens);
305 .setAnalyticSensitivityAvailable(
true)
306 .setSensitivityFunctor(&
modSens);
308 .setAnalyticSensitivityAvailable(
true)
309 .setSensitivityFunctor(&
modSens);
311 .setAnalyticSensitivityAvailable(
true)
312 .setSensitivityFunctor(&
modSens);
314 .setAnalyticSensitivityAvailable(
true)
315 .setSensitivityFunctor(&
modSens);
317 .setAnalyticSensitivityAvailable(
true)
318 .setSensitivityFunctor(&
modSens);
320 .setAnalyticSensitivityAvailable(
true)
321 .setSensitivityFunctor(&
modSens);
323 .setAnalyticSensitivityAvailable(
true)
324 .setSensitivityFunctor(&
modSens);
326 .setAnalyticSensitivityAvailable(
true)
327 .setSensitivityFunctor(&
modSens);
329 .setAnalyticSensitivityAvailable(
true)
330 .setSensitivityFunctor(&
modSens);
332 .setAnalyticSensitivityAvailable(
true)
333 .setSensitivityFunctor(&
modSens);
335 .setAnalyticSensitivityAvailable(
true)
336 .setSensitivityFunctor(&
modSens);
338 .setAnalyticSensitivityAvailable(
true)
339 .setSensitivityFunctor(&
modSens);
341 .setAnalyticSensitivityAvailable(
true)
342 .setSensitivityFunctor(&
modSens);
361 if ( (!((
Temp >=(-273.15)))) )
363 UserError0(*
this) <<
"ADMSHBT_X: Parameter Temp value " <<
Temp <<
" out of range [ (-273.15), (+inf) [";
369 UserError0(*
this) <<
"ADMSHBT_X: Parameter N value " <<
N <<
" out of range ] 0, (+inf) [";
375 UserError0(*
this) <<
"ADMSHBT_X: Parameter L value " <<
L <<
" out of range ] 0.0, (+inf) [";
381 UserError0(*
this) <<
"ADMSHBT_X: Parameter W value " <<
W <<
" out of range ] 0.0, (+inf) [";
412 :
DeviceInstance(instance_block, configuration.getInstanceParameters(), factory_block),
430 f_bi_Equ_ti_Node_Ptr(0),
431 f_ci_Equ_ti_Node_Ptr(0),
432 f_bi_Equ_bi_Node_Ptr(0),
433 f_bi_Equ_ci_Node_Ptr(0),
434 f_ci_Equ_bi_Node_Ptr(0),
435 f_ci_Equ_ci_Node_Ptr(0),
436 f_bii_Equ_ti_Node_Ptr(0),
437 f_bii_Equ_bii_Node_Ptr(0),
438 f_bii_Equ_ci_Node_Ptr(0),
439 f_ci_Equ_bii_Node_Ptr(0),
440 f_bii_Equ_ei_Node_Ptr(0),
441 f_ci_Equ_ei_Node_Ptr(0),
442 f_ei_Equ_bii_Node_Ptr(0),
443 f_ei_Equ_ci_Node_Ptr(0),
444 f_ei_Equ_ti_Node_Ptr(0),
445 f_ei_Equ_ei_Node_Ptr(0),
446 f_ex_Equ_ti_Node_Ptr(0),
447 f_ex_Equ_ex_Node_Ptr(0),
448 f_ex_Equ_ei_Node_Ptr(0),
449 f_ei_Equ_ex_Node_Ptr(0),
450 f_exx_Equ_ti_Node_Ptr(0),
451 f_exx_Equ_exx_Node_Ptr(0),
452 f_exx_Equ_ei_Node_Ptr(0),
453 f_ei_Equ_exx_Node_Ptr(0),
454 f_cx_Equ_ti_Node_Ptr(0),
455 f_cx_Equ_cx_Node_Ptr(0),
456 f_cx_Equ_ci_Node_Ptr(0),
457 f_ci_Equ_cx_Node_Ptr(0),
458 f_bii_Equ_bi_Node_Ptr(0),
459 f_bi_Equ_bii_Node_Ptr(0),
460 f_ex_Equ_bii_Node_Ptr(0),
461 f_bii_Equ_ex_Node_Ptr(0),
462 f_exx_Equ_bii_Node_Ptr(0),
463 f_bii_Equ_exx_Node_Ptr(0),
464 f_cx_Equ_bii_Node_Ptr(0),
465 f_bii_Equ_cx_Node_Ptr(0),
466 f_b_Equ_b_Node_Ptr(0),
467 f_c_Equ_c_Node_Ptr(0),
468 f_b_Equ_c_Node_Ptr(0),
469 f_c_Equ_b_Node_Ptr(0),
470 f_ti_Equ_bi_Node_Ptr(0),
471 f_ti_Equ_ci_Node_Ptr(0),
472 f_ti_Equ_ei_Node_Ptr(0),
473 f_ti_Equ_bii_Node_Ptr(0),
474 f_ti_Equ_ti_Node_Ptr(0),
475 f_t_Equ_t_Node_Ptr(0),
476 f_t_Equ_ti_Node_Ptr(0),
477 f_ti_Equ_t_Node_Ptr(0),
478 f_c_Equ_BRA_c_ci_Var_Ptr(0),
479 f_b_Equ_BRA_b_bi_Var_Ptr(0),
480 f_e_Equ_BRA_e_ei_Var_Ptr(0),
481 f_ei_Equ_BRA_e_ei_Var_Ptr(0),
482 f_bi_Equ_BRA_b_bi_Var_Ptr(0),
483 f_ci_Equ_BRA_c_ci_Var_Ptr(0),
484 f_BRA_b_bi_Equ_b_Node_Ptr(0),
485 f_BRA_b_bi_Equ_bi_Node_Ptr(0),
486 f_BRA_b_bi_Equ_BRA_b_bi_Var_Ptr(0),
487 f_BRA_e_ei_Equ_e_Node_Ptr(0),
488 f_BRA_e_ei_Equ_ei_Node_Ptr(0),
489 f_BRA_e_ei_Equ_BRA_e_ei_Var_Ptr(0),
490 f_BRA_c_ci_Equ_c_Node_Ptr(0),
491 f_BRA_c_ci_Equ_ci_Node_Ptr(0),
492 f_BRA_c_ci_Equ_BRA_c_ci_Var_Ptr(0),
493 q_bi_Equ_ti_Node_Ptr(0),
494 q_ci_Equ_ti_Node_Ptr(0),
495 q_bi_Equ_bi_Node_Ptr(0),
496 q_bi_Equ_ci_Node_Ptr(0),
497 q_ci_Equ_bi_Node_Ptr(0),
498 q_ci_Equ_ci_Node_Ptr(0),
499 q_bii_Equ_ti_Node_Ptr(0),
500 q_bii_Equ_bii_Node_Ptr(0),
501 q_bii_Equ_ci_Node_Ptr(0),
502 q_ci_Equ_bii_Node_Ptr(0),
503 q_bii_Equ_ei_Node_Ptr(0),
504 q_ci_Equ_ei_Node_Ptr(0),
505 q_ei_Equ_bii_Node_Ptr(0),
506 q_ei_Equ_ci_Node_Ptr(0),
507 q_ei_Equ_ti_Node_Ptr(0),
508 q_ei_Equ_ei_Node_Ptr(0),
509 q_ex_Equ_ti_Node_Ptr(0),
510 q_ex_Equ_ex_Node_Ptr(0),
511 q_ex_Equ_ei_Node_Ptr(0),
512 q_ei_Equ_ex_Node_Ptr(0),
513 q_exx_Equ_ti_Node_Ptr(0),
514 q_exx_Equ_exx_Node_Ptr(0),
515 q_exx_Equ_ei_Node_Ptr(0),
516 q_ei_Equ_exx_Node_Ptr(0),
517 q_cx_Equ_ti_Node_Ptr(0),
518 q_cx_Equ_cx_Node_Ptr(0),
519 q_cx_Equ_ci_Node_Ptr(0),
520 q_ci_Equ_cx_Node_Ptr(0),
521 q_bii_Equ_bi_Node_Ptr(0),
522 q_bi_Equ_bii_Node_Ptr(0),
523 q_ex_Equ_bii_Node_Ptr(0),
524 q_bii_Equ_ex_Node_Ptr(0),
525 q_exx_Equ_bii_Node_Ptr(0),
526 q_bii_Equ_exx_Node_Ptr(0),
527 q_cx_Equ_bii_Node_Ptr(0),
528 q_bii_Equ_cx_Node_Ptr(0),
529 q_b_Equ_b_Node_Ptr(0),
530 q_c_Equ_c_Node_Ptr(0),
531 q_b_Equ_c_Node_Ptr(0),
532 q_c_Equ_b_Node_Ptr(0),
533 q_ti_Equ_bi_Node_Ptr(0),
534 q_ti_Equ_ci_Node_Ptr(0),
535 q_ti_Equ_ei_Node_Ptr(0),
536 q_ti_Equ_bii_Node_Ptr(0),
537 q_ti_Equ_ti_Node_Ptr(0),
538 q_t_Equ_t_Node_Ptr(0),
539 q_t_Equ_ti_Node_Ptr(0),
540 q_ti_Equ_t_Node_Ptr(0),
541 q_c_Equ_BRA_c_ci_Var_Ptr(0),
542 q_b_Equ_BRA_b_bi_Var_Ptr(0),
543 q_e_Equ_BRA_e_ei_Var_Ptr(0),
544 q_ei_Equ_BRA_e_ei_Var_Ptr(0),
545 q_bi_Equ_BRA_b_bi_Var_Ptr(0),
546 q_ci_Equ_BRA_c_ci_Var_Ptr(0),
547 q_BRA_b_bi_Equ_b_Node_Ptr(0),
548 q_BRA_b_bi_Equ_bi_Node_Ptr(0),
549 q_BRA_b_bi_Equ_BRA_b_bi_Var_Ptr(0),
550 q_BRA_e_ei_Equ_e_Node_Ptr(0),
551 q_BRA_e_ei_Equ_ei_Node_Ptr(0),
552 q_BRA_e_ei_Equ_BRA_e_ei_Var_Ptr(0),
553 q_BRA_c_ci_Equ_c_Node_Ptr(0),
554 q_BRA_c_ci_Equ_ci_Node_Ptr(0),
555 q_BRA_c_ci_Equ_BRA_c_ci_Var_Ptr(0),
556 admsTemperature(getDeviceOptions().temp.getImmutableValue<double>())
708 for (
int i=0;i<mapSize;++i)
713 for (
int j=0;j<rowSize;++j)
728 if (!(
given(
"Temp")))
752 if (!
given(
"XYCEADMSINSTTEMP"))
794 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS))
796 Xyce::dout() << std::endl << section_divider << std::endl
797 <<
"In ADMSHBT_X::Instance::register LIDs\n\n"
798 <<
"name = " <<
getName() << std::endl
799 <<
"number of internal variables: " <<
numIntVars << std::endl
800 <<
"number of external variables: " <<
numExtVars << std::endl;
810 li_c = extLIDVecRef[i++];
811 li_b = extLIDVecRef[i++];
812 li_e = extLIDVecRef[i++];
813 li_t = extLIDVecRef[i++];
817 li_ei = intLIDVecRef[i++];
818 li_bi = intLIDVecRef[i++];
819 li_bii = intLIDVecRef[i++];
820 li_ci = intLIDVecRef[i++];
821 li_ti = intLIDVecRef[i++];
822 li_ex = intLIDVecRef[i++];
823 li_exx = intLIDVecRef[i++];
824 li_cx = intLIDVecRef[i++];
830 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS))
832 Xyce::dout() <<
"\nSolution and RHS variables:\n";
833 Xyce::dout() <<
"\nli_c = " <<
li_c << std::endl;
834 Xyce::dout() <<
"\nli_b = " <<
li_b << std::endl;
835 Xyce::dout() <<
"\nli_e = " <<
li_e << std::endl;
836 Xyce::dout() <<
"\nli_t = " <<
li_t << std::endl;
837 Xyce::dout() <<
"\nli_ei = " <<
li_ei << std::endl;
838 Xyce::dout() <<
"\nli_bi = " <<
li_bi << std::endl;
839 Xyce::dout() <<
"\nli_bii = " <<
li_bii << std::endl;
840 Xyce::dout() <<
"\nli_ci = " <<
li_ci << std::endl;
841 Xyce::dout() <<
"\nli_ti = " <<
li_ti << std::endl;
842 Xyce::dout() <<
"\nli_ex = " <<
li_ex << std::endl;
843 Xyce::dout() <<
"\nli_exx = " <<
li_exx << std::endl;
844 Xyce::dout() <<
"\nli_cx = " <<
li_cx << std::endl;
845 Xyce::dout() <<
"\nli_BRA_b_bi = " <<
li_BRA_b_bi << std::endl;
846 Xyce::dout() <<
"\nli_BRA_e_ei = " <<
li_BRA_e_ei << std::endl;
847 Xyce::dout() <<
"\nli_BRA_c_ci = " <<
li_BRA_c_ci << std::endl;
849 Xyce::dout() <<
"\nEnd of ADMSHBT_X::Instance::register LIDs\n";
850 Xyce::dout() << section_divider << std::endl;
889 int numSta = staLIDVecRef.size();
926 std::vector<int> & map=
jacMap;
927 std::vector< std::vector<int> > & map2=
jacMap2;
1194 bool bsuccess =
true;
1223 bool bsuccess =
true;
1245 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
1247 Xyce::dout() << std::endl << subsection_divider << std::endl;
1248 Xyce::dout() <<
" In ADMSHBT_X::Instance::updateIntermediateVars\n\n";
1249 Xyce::dout() <<
" name = " <<
getName() << std::endl;
1305 double vbei_orig,vbei_limited,vbei_old;
1306 double vbci_orig,vbci_limited,vbci_old;
1307 double vbcx_orig,vbcx_limited,vbcx_old;
1323 for (
int i=0; i < 12+3 ; ++i)
1331 for (
int i=0; i < 19 ; ++i)
1421 if ((*flagSolVectorPtr)[
li_e] == 0 ||
1422 (*flagSolVectorPtr)[
li_ei] == 0 ||
1423 (*flagSolVectorPtr)[
li_ex] == 0 ||
1424 (*flagSolVectorPtr)[
li_exx] == 0 ||
1425 (*flagSolVectorPtr)[
li_b] == 0 ||
1426 (*flagSolVectorPtr)[
li_bi] == 0 ||
1427 (*flagSolVectorPtr)[
li_bii] == 0 ||
1428 (*flagSolVectorPtr)[
li_c] == 0 ||
1429 (*flagSolVectorPtr)[
li_ci] == 0 ||
1430 (*flagSolVectorPtr)[
li_cx] == 0 ||
1431 (*flagSolVectorPtr)[
li_t] == 0 ||
1432 (*flagSolVectorPtr)[
li_ti] == 0 )
1434 vbcx_limited = vbci_limited = 0;
1435 vbei_limited = tVCrit;
1441 vbcx_limited = vbci_limited = 0;
1442 vbei_limited = tVCrit;
1446 Xyce::dout() <<
" Setting device initial condition to Base-Emitter drop=tVCri (" << tVCrit <<
")" << std::endl;
1460 vbei_old = vbei_limited;
1461 vbci_old = vbci_limited;
1462 vbcx_old = vbcx_limited;
1534 Area = (((
L*
W)*1.0e12)*
N);
1535 FOUR_K = (4*1.3806226e-23);
1536 TWO_Q = (2*1.6021918e-19);
1541 q1 = ((1.0+((AnalogFunctions::charge<AdmsFadType>(vbei,1.0,(
model_.
Vje),(
model_.
mje),1.0)-AnalogFunctions::charge<double>(0.0,1.0,(
model_.
Vje),(
model_.
mje),1.0))/(
model_.
VAR)))+((AnalogFunctions::charge<AdmsFadType>(vbci,1.0,(
model_.
Vjc),(
model_.
mjc),1.0)-AnalogFunctions::charge<double>(0.0,1.0,(
model_.
Vjc),(
model_.
mjc),1.0))/(
model_.
VAF)));
1583 qb = ((q1+sqrt(((q1*q1)+(4.0*q2))))/2.0);
1628 Ib0 = (Ic0a*EdBeta);
1631 Ib1 = (Ib0-AnalogFunctions::diode<AdmsFadType>(((-(
model_.
BVebo))-vbei),(
model_.
Jsf),0.0,1.0,Area,0.0,0.0));
1651 Ibdxx = (vxxe*1e-12);
1661 Ipdiss = ((((Ic1*vcei)+(Ib1*vbei))+(Ib2*vbci))+(Ibx*vbcx));
1669 if ((((
model_.
J0)<=0.0)||(Ic0<0.0)))
1681 if ((((
model_.
J0)<0.0)||(Ic0<0.0)))
1701 qb2 = (qb2med+qbtr);
1721 Ih = (1.0-(AnalogFunctions::ICK<AdmsFadType>(vcei,RCIO,Vlim,InvVpt,(
model_.
Vces))/Ic0));
1725 Ih = (1.0-(AnalogFunctions::Vceff<AdmsFadType>(vcei,(
model_.
Vces))/(RCIO*Ic0)));
1727 Wh = ((Ih+sqrt(((Ih*Ih)+AHC)))/(1.0+sqrt((1.0+AHC))));
1876 contribTemp= (-Ipdiss);
1919 Xyce::dout() <<
" probeVars[admsProbeID_V_t_ti] = "
1921 Xyce::dout() <<
" probeVars[admsProbeID_V_b_c] = "
1923 Xyce::dout() <<
" probeVars[admsProbeID_V_c_GND] = "
1925 Xyce::dout() <<
" probeVars[admsProbeID_V_b_GND] = "
1927 Xyce::dout() <<
" probeVars[admsProbeID_V_cx_bii] = "
1929 Xyce::dout() <<
" probeVars[admsProbeID_V_exx_bii] = "
1931 Xyce::dout() <<
" probeVars[admsProbeID_V_ex_bii] = "
1933 Xyce::dout() <<
" probeVars[admsProbeID_V_bii_bi] = "
1935 Xyce::dout() <<
" probeVars[admsProbeID_I_c_ci] = "
1937 Xyce::dout() <<
" probeVars[admsProbeID_I_e_ei] = "
1939 Xyce::dout() <<
" probeVars[admsProbeID_I_b_bi] = "
1941 Xyce::dout() <<
" probeVars[admsProbeID_V_ti_GND] = "
1943 Xyce::dout() <<
" probeVars[admsProbeID_V_ci_ei] = "
1945 Xyce::dout() <<
" probeVars[admsProbeID_V_exx_ei] = "
1947 Xyce::dout() <<
" probeVars[admsProbeID_V_cx_ci] = "
1949 Xyce::dout() <<
" probeVars[admsProbeID_V_ex_ei] = "
1951 Xyce::dout() <<
" probeVars[admsProbeID_V_bii_ei] = "
1953 Xyce::dout() <<
" probeVars[admsProbeID_V_bii_ci] = "
1955 Xyce::dout() <<
" probeVars[admsProbeID_V_bi_ci] = "
1957 Xyce::dout() <<
" staticContributions[admsNodeID_c] = "
1961 Xyce::dout() <<
" staticContributions[admsNodeID_c].dx(admsProbeID_V_c_GND) = " <<
staticContributions[
admsNodeID_c].dx(admsProbeID_V_c_GND) << std::endl;
1962 Xyce::dout() <<
" staticContributions[admsNodeID_c].dx(admsProbeID_V_b_GND) = " <<
staticContributions[
admsNodeID_c].dx(admsProbeID_V_b_GND) << std::endl;
1971 Xyce::dout() <<
" staticContributions[admsNodeID_c].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_c].dx(admsProbeID_V_ci_ei) << std::endl;
1972 Xyce::dout() <<
" staticContributions[admsNodeID_c].dx(admsProbeID_V_exx_ei) = " <<
staticContributions[
admsNodeID_c].dx(admsProbeID_V_exx_ei) << std::endl;
1973 Xyce::dout() <<
" staticContributions[admsNodeID_c].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_c].dx(admsProbeID_V_cx_ci) << std::endl;
1974 Xyce::dout() <<
" staticContributions[admsNodeID_c].dx(admsProbeID_V_ex_ei) = " <<
staticContributions[
admsNodeID_c].dx(admsProbeID_V_ex_ei) << std::endl;
1978 Xyce::dout() <<
" dynamicContributions[admsNodeID_c] = "
1982 Xyce::dout() <<
" dynamicContributions[admsNodeID_c].dx(admsProbeID_V_c_GND) = " <<
dynamicContributions[
admsNodeID_c].dx(admsProbeID_V_c_GND) << std::endl;
1983 Xyce::dout() <<
" dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_GND) = " <<
dynamicContributions[
admsNodeID_c].dx(admsProbeID_V_b_GND) << std::endl;
1992 Xyce::dout() <<
" dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ci_ei) = " <<
dynamicContributions[
admsNodeID_c].dx(admsProbeID_V_ci_ei) << std::endl;
1993 Xyce::dout() <<
" dynamicContributions[admsNodeID_c].dx(admsProbeID_V_exx_ei) = " <<
dynamicContributions[
admsNodeID_c].dx(admsProbeID_V_exx_ei) << std::endl;
1994 Xyce::dout() <<
" dynamicContributions[admsNodeID_c].dx(admsProbeID_V_cx_ci) = " <<
dynamicContributions[
admsNodeID_c].dx(admsProbeID_V_cx_ci) << std::endl;
1995 Xyce::dout() <<
" dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ex_ei) = " <<
dynamicContributions[
admsNodeID_c].dx(admsProbeID_V_ex_ei) << std::endl;
1999 Xyce::dout() <<
" Jdxp_static[admsNodeID_c] = "
2001 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_c] = "
2003 Xyce::dout() <<
" staticContributions[admsNodeID_b] = "
2007 Xyce::dout() <<
" staticContributions[admsNodeID_b].dx(admsProbeID_V_c_GND) = " <<
staticContributions[
admsNodeID_b].dx(admsProbeID_V_c_GND) << std::endl;
2008 Xyce::dout() <<
" staticContributions[admsNodeID_b].dx(admsProbeID_V_b_GND) = " <<
staticContributions[
admsNodeID_b].dx(admsProbeID_V_b_GND) << std::endl;
2017 Xyce::dout() <<
" staticContributions[admsNodeID_b].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_b].dx(admsProbeID_V_ci_ei) << std::endl;
2018 Xyce::dout() <<
" staticContributions[admsNodeID_b].dx(admsProbeID_V_exx_ei) = " <<
staticContributions[
admsNodeID_b].dx(admsProbeID_V_exx_ei) << std::endl;
2019 Xyce::dout() <<
" staticContributions[admsNodeID_b].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_b].dx(admsProbeID_V_cx_ci) << std::endl;
2020 Xyce::dout() <<
" staticContributions[admsNodeID_b].dx(admsProbeID_V_ex_ei) = " <<
staticContributions[
admsNodeID_b].dx(admsProbeID_V_ex_ei) << std::endl;
2024 Xyce::dout() <<
" dynamicContributions[admsNodeID_b] = "
2028 Xyce::dout() <<
" dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c_GND) = " <<
dynamicContributions[
admsNodeID_b].dx(admsProbeID_V_c_GND) << std::endl;
2029 Xyce::dout() <<
" dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_GND) = " <<
dynamicContributions[
admsNodeID_b].dx(admsProbeID_V_b_GND) << std::endl;
2038 Xyce::dout() <<
" dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ci_ei) = " <<
dynamicContributions[
admsNodeID_b].dx(admsProbeID_V_ci_ei) << std::endl;
2039 Xyce::dout() <<
" dynamicContributions[admsNodeID_b].dx(admsProbeID_V_exx_ei) = " <<
dynamicContributions[
admsNodeID_b].dx(admsProbeID_V_exx_ei) << std::endl;
2040 Xyce::dout() <<
" dynamicContributions[admsNodeID_b].dx(admsProbeID_V_cx_ci) = " <<
dynamicContributions[
admsNodeID_b].dx(admsProbeID_V_cx_ci) << std::endl;
2041 Xyce::dout() <<
" dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ex_ei) = " <<
dynamicContributions[
admsNodeID_b].dx(admsProbeID_V_ex_ei) << std::endl;
2045 Xyce::dout() <<
" Jdxp_static[admsNodeID_b] = "
2047 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_b] = "
2049 Xyce::dout() <<
" staticContributions[admsNodeID_e] = "
2053 Xyce::dout() <<
" staticContributions[admsNodeID_e].dx(admsProbeID_V_c_GND) = " <<
staticContributions[
admsNodeID_e].dx(admsProbeID_V_c_GND) << std::endl;
2054 Xyce::dout() <<
" staticContributions[admsNodeID_e].dx(admsProbeID_V_b_GND) = " <<
staticContributions[
admsNodeID_e].dx(admsProbeID_V_b_GND) << std::endl;
2063 Xyce::dout() <<
" staticContributions[admsNodeID_e].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_e].dx(admsProbeID_V_ci_ei) << std::endl;
2064 Xyce::dout() <<
" staticContributions[admsNodeID_e].dx(admsProbeID_V_exx_ei) = " <<
staticContributions[
admsNodeID_e].dx(admsProbeID_V_exx_ei) << std::endl;
2065 Xyce::dout() <<
" staticContributions[admsNodeID_e].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_e].dx(admsProbeID_V_cx_ci) << std::endl;
2066 Xyce::dout() <<
" staticContributions[admsNodeID_e].dx(admsProbeID_V_ex_ei) = " <<
staticContributions[
admsNodeID_e].dx(admsProbeID_V_ex_ei) << std::endl;
2070 Xyce::dout() <<
" dynamicContributions[admsNodeID_e] = "
2074 Xyce::dout() <<
" dynamicContributions[admsNodeID_e].dx(admsProbeID_V_c_GND) = " <<
dynamicContributions[
admsNodeID_e].dx(admsProbeID_V_c_GND) << std::endl;
2075 Xyce::dout() <<
" dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_GND) = " <<
dynamicContributions[
admsNodeID_e].dx(admsProbeID_V_b_GND) << std::endl;
2084 Xyce::dout() <<
" dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ci_ei) = " <<
dynamicContributions[
admsNodeID_e].dx(admsProbeID_V_ci_ei) << std::endl;
2085 Xyce::dout() <<
" dynamicContributions[admsNodeID_e].dx(admsProbeID_V_exx_ei) = " <<
dynamicContributions[
admsNodeID_e].dx(admsProbeID_V_exx_ei) << std::endl;
2086 Xyce::dout() <<
" dynamicContributions[admsNodeID_e].dx(admsProbeID_V_cx_ci) = " <<
dynamicContributions[
admsNodeID_e].dx(admsProbeID_V_cx_ci) << std::endl;
2087 Xyce::dout() <<
" dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ex_ei) = " <<
dynamicContributions[
admsNodeID_e].dx(admsProbeID_V_ex_ei) << std::endl;
2091 Xyce::dout() <<
" Jdxp_static[admsNodeID_e] = "
2093 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_e] = "
2095 Xyce::dout() <<
" staticContributions[admsNodeID_t] = "
2099 Xyce::dout() <<
" staticContributions[admsNodeID_t].dx(admsProbeID_V_c_GND) = " <<
staticContributions[
admsNodeID_t].dx(admsProbeID_V_c_GND) << std::endl;
2100 Xyce::dout() <<
" staticContributions[admsNodeID_t].dx(admsProbeID_V_b_GND) = " <<
staticContributions[
admsNodeID_t].dx(admsProbeID_V_b_GND) << std::endl;
2109 Xyce::dout() <<
" staticContributions[admsNodeID_t].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_t].dx(admsProbeID_V_ci_ei) << std::endl;
2110 Xyce::dout() <<
" staticContributions[admsNodeID_t].dx(admsProbeID_V_exx_ei) = " <<
staticContributions[
admsNodeID_t].dx(admsProbeID_V_exx_ei) << std::endl;
2111 Xyce::dout() <<
" staticContributions[admsNodeID_t].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_t].dx(admsProbeID_V_cx_ci) << std::endl;
2112 Xyce::dout() <<
" staticContributions[admsNodeID_t].dx(admsProbeID_V_ex_ei) = " <<
staticContributions[
admsNodeID_t].dx(admsProbeID_V_ex_ei) << std::endl;
2116 Xyce::dout() <<
" dynamicContributions[admsNodeID_t] = "
2120 Xyce::dout() <<
" dynamicContributions[admsNodeID_t].dx(admsProbeID_V_c_GND) = " <<
dynamicContributions[
admsNodeID_t].dx(admsProbeID_V_c_GND) << std::endl;
2121 Xyce::dout() <<
" dynamicContributions[admsNodeID_t].dx(admsProbeID_V_b_GND) = " <<
dynamicContributions[
admsNodeID_t].dx(admsProbeID_V_b_GND) << std::endl;
2130 Xyce::dout() <<
" dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ci_ei) = " <<
dynamicContributions[
admsNodeID_t].dx(admsProbeID_V_ci_ei) << std::endl;
2131 Xyce::dout() <<
" dynamicContributions[admsNodeID_t].dx(admsProbeID_V_exx_ei) = " <<
dynamicContributions[
admsNodeID_t].dx(admsProbeID_V_exx_ei) << std::endl;
2132 Xyce::dout() <<
" dynamicContributions[admsNodeID_t].dx(admsProbeID_V_cx_ci) = " <<
dynamicContributions[
admsNodeID_t].dx(admsProbeID_V_cx_ci) << std::endl;
2133 Xyce::dout() <<
" dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ex_ei) = " <<
dynamicContributions[
admsNodeID_t].dx(admsProbeID_V_ex_ei) << std::endl;
2137 Xyce::dout() <<
" Jdxp_static[admsNodeID_t] = "
2139 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_t] = "
2141 Xyce::dout() <<
" staticContributions[admsNodeID_ei] = "
2145 Xyce::dout() <<
" staticContributions[admsNodeID_ei].dx(admsProbeID_V_c_GND) = " <<
staticContributions[
admsNodeID_ei].dx(admsProbeID_V_c_GND) << std::endl;
2146 Xyce::dout() <<
" staticContributions[admsNodeID_ei].dx(admsProbeID_V_b_GND) = " <<
staticContributions[
admsNodeID_ei].dx(admsProbeID_V_b_GND) << std::endl;
2155 Xyce::dout() <<
" staticContributions[admsNodeID_ei].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_ei].dx(admsProbeID_V_ci_ei) << std::endl;
2156 Xyce::dout() <<
" staticContributions[admsNodeID_ei].dx(admsProbeID_V_exx_ei) = " <<
staticContributions[
admsNodeID_ei].dx(admsProbeID_V_exx_ei) << std::endl;
2157 Xyce::dout() <<
" staticContributions[admsNodeID_ei].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_ei].dx(admsProbeID_V_cx_ci) << std::endl;
2158 Xyce::dout() <<
" staticContributions[admsNodeID_ei].dx(admsProbeID_V_ex_ei) = " <<
staticContributions[
admsNodeID_ei].dx(admsProbeID_V_ex_ei) << std::endl;
2162 Xyce::dout() <<
" dynamicContributions[admsNodeID_ei] = "
2183 Xyce::dout() <<
" Jdxp_static[admsNodeID_ei] = "
2185 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_ei] = "
2187 Xyce::dout() <<
" staticContributions[admsNodeID_bi] = "
2191 Xyce::dout() <<
" staticContributions[admsNodeID_bi].dx(admsProbeID_V_c_GND) = " <<
staticContributions[
admsNodeID_bi].dx(admsProbeID_V_c_GND) << std::endl;
2192 Xyce::dout() <<
" staticContributions[admsNodeID_bi].dx(admsProbeID_V_b_GND) = " <<
staticContributions[
admsNodeID_bi].dx(admsProbeID_V_b_GND) << std::endl;
2201 Xyce::dout() <<
" staticContributions[admsNodeID_bi].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_bi].dx(admsProbeID_V_ci_ei) << std::endl;
2202 Xyce::dout() <<
" staticContributions[admsNodeID_bi].dx(admsProbeID_V_exx_ei) = " <<
staticContributions[
admsNodeID_bi].dx(admsProbeID_V_exx_ei) << std::endl;
2203 Xyce::dout() <<
" staticContributions[admsNodeID_bi].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_bi].dx(admsProbeID_V_cx_ci) << std::endl;
2204 Xyce::dout() <<
" staticContributions[admsNodeID_bi].dx(admsProbeID_V_ex_ei) = " <<
staticContributions[
admsNodeID_bi].dx(admsProbeID_V_ex_ei) << std::endl;
2208 Xyce::dout() <<
" dynamicContributions[admsNodeID_bi] = "
2229 Xyce::dout() <<
" Jdxp_static[admsNodeID_bi] = "
2231 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_bi] = "
2233 Xyce::dout() <<
" staticContributions[admsNodeID_bii] = "
2254 Xyce::dout() <<
" dynamicContributions[admsNodeID_bii] = "
2275 Xyce::dout() <<
" Jdxp_static[admsNodeID_bii] = "
2277 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_bii] = "
2279 Xyce::dout() <<
" staticContributions[admsNodeID_ci] = "
2283 Xyce::dout() <<
" staticContributions[admsNodeID_ci].dx(admsProbeID_V_c_GND) = " <<
staticContributions[
admsNodeID_ci].dx(admsProbeID_V_c_GND) << std::endl;
2284 Xyce::dout() <<
" staticContributions[admsNodeID_ci].dx(admsProbeID_V_b_GND) = " <<
staticContributions[
admsNodeID_ci].dx(admsProbeID_V_b_GND) << std::endl;
2293 Xyce::dout() <<
" staticContributions[admsNodeID_ci].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_ci].dx(admsProbeID_V_ci_ei) << std::endl;
2294 Xyce::dout() <<
" staticContributions[admsNodeID_ci].dx(admsProbeID_V_exx_ei) = " <<
staticContributions[
admsNodeID_ci].dx(admsProbeID_V_exx_ei) << std::endl;
2295 Xyce::dout() <<
" staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_ci].dx(admsProbeID_V_cx_ci) << std::endl;
2296 Xyce::dout() <<
" staticContributions[admsNodeID_ci].dx(admsProbeID_V_ex_ei) = " <<
staticContributions[
admsNodeID_ci].dx(admsProbeID_V_ex_ei) << std::endl;
2300 Xyce::dout() <<
" dynamicContributions[admsNodeID_ci] = "
2321 Xyce::dout() <<
" Jdxp_static[admsNodeID_ci] = "
2323 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_ci] = "
2325 Xyce::dout() <<
" staticContributions[admsNodeID_ti] = "
2329 Xyce::dout() <<
" staticContributions[admsNodeID_ti].dx(admsProbeID_V_c_GND) = " <<
staticContributions[
admsNodeID_ti].dx(admsProbeID_V_c_GND) << std::endl;
2330 Xyce::dout() <<
" staticContributions[admsNodeID_ti].dx(admsProbeID_V_b_GND) = " <<
staticContributions[
admsNodeID_ti].dx(admsProbeID_V_b_GND) << std::endl;
2339 Xyce::dout() <<
" staticContributions[admsNodeID_ti].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_ti].dx(admsProbeID_V_ci_ei) << std::endl;
2340 Xyce::dout() <<
" staticContributions[admsNodeID_ti].dx(admsProbeID_V_exx_ei) = " <<
staticContributions[
admsNodeID_ti].dx(admsProbeID_V_exx_ei) << std::endl;
2341 Xyce::dout() <<
" staticContributions[admsNodeID_ti].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_ti].dx(admsProbeID_V_cx_ci) << std::endl;
2342 Xyce::dout() <<
" staticContributions[admsNodeID_ti].dx(admsProbeID_V_ex_ei) = " <<
staticContributions[
admsNodeID_ti].dx(admsProbeID_V_ex_ei) << std::endl;
2346 Xyce::dout() <<
" dynamicContributions[admsNodeID_ti] = "
2367 Xyce::dout() <<
" Jdxp_static[admsNodeID_ti] = "
2369 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_ti] = "
2371 Xyce::dout() <<
" staticContributions[admsNodeID_ex] = "
2375 Xyce::dout() <<
" staticContributions[admsNodeID_ex].dx(admsProbeID_V_c_GND) = " <<
staticContributions[
admsNodeID_ex].dx(admsProbeID_V_c_GND) << std::endl;
2376 Xyce::dout() <<
" staticContributions[admsNodeID_ex].dx(admsProbeID_V_b_GND) = " <<
staticContributions[
admsNodeID_ex].dx(admsProbeID_V_b_GND) << std::endl;
2385 Xyce::dout() <<
" staticContributions[admsNodeID_ex].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_ex].dx(admsProbeID_V_ci_ei) << std::endl;
2386 Xyce::dout() <<
" staticContributions[admsNodeID_ex].dx(admsProbeID_V_exx_ei) = " <<
staticContributions[
admsNodeID_ex].dx(admsProbeID_V_exx_ei) << std::endl;
2387 Xyce::dout() <<
" staticContributions[admsNodeID_ex].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_ex].dx(admsProbeID_V_cx_ci) << std::endl;
2388 Xyce::dout() <<
" staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_ei) = " <<
staticContributions[
admsNodeID_ex].dx(admsProbeID_V_ex_ei) << std::endl;
2392 Xyce::dout() <<
" dynamicContributions[admsNodeID_ex] = "
2413 Xyce::dout() <<
" Jdxp_static[admsNodeID_ex] = "
2415 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_ex] = "
2417 Xyce::dout() <<
" staticContributions[admsNodeID_exx] = "
2438 Xyce::dout() <<
" dynamicContributions[admsNodeID_exx] = "
2459 Xyce::dout() <<
" Jdxp_static[admsNodeID_exx] = "
2461 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_exx] = "
2463 Xyce::dout() <<
" staticContributions[admsNodeID_cx] = "
2467 Xyce::dout() <<
" staticContributions[admsNodeID_cx].dx(admsProbeID_V_c_GND) = " <<
staticContributions[
admsNodeID_cx].dx(admsProbeID_V_c_GND) << std::endl;
2468 Xyce::dout() <<
" staticContributions[admsNodeID_cx].dx(admsProbeID_V_b_GND) = " <<
staticContributions[
admsNodeID_cx].dx(admsProbeID_V_b_GND) << std::endl;
2477 Xyce::dout() <<
" staticContributions[admsNodeID_cx].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_cx].dx(admsProbeID_V_ci_ei) << std::endl;
2478 Xyce::dout() <<
" staticContributions[admsNodeID_cx].dx(admsProbeID_V_exx_ei) = " <<
staticContributions[
admsNodeID_cx].dx(admsProbeID_V_exx_ei) << std::endl;
2479 Xyce::dout() <<
" staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_cx].dx(admsProbeID_V_cx_ci) << std::endl;
2480 Xyce::dout() <<
" staticContributions[admsNodeID_cx].dx(admsProbeID_V_ex_ei) = " <<
staticContributions[
admsNodeID_cx].dx(admsProbeID_V_ex_ei) << std::endl;
2484 Xyce::dout() <<
" dynamicContributions[admsNodeID_cx] = "
2505 Xyce::dout() <<
" Jdxp_static[admsNodeID_cx] = "
2507 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_cx] = "
2509 Xyce::dout() <<
" staticContributions[admsBRA_ID_b_bi] = "
2530 Xyce::dout() <<
" dynamicContributions[admsBRA_ID_b_bi] = "
2551 Xyce::dout() <<
" staticContributions[admsBRA_ID_e_ei] = "
2572 Xyce::dout() <<
" dynamicContributions[admsBRA_ID_e_ei] = "
2593 Xyce::dout() <<
" staticContributions[admsBRA_ID_c_ci] = "
2614 Xyce::dout() <<
" dynamicContributions[admsBRA_ID_c_ci] = "
2637 Xyce::dout() <<
"This step was limited by this device." << std::endl;
2653 bool bsuccess =
true;
2656 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2658 Xyce::dout() << subsection_divider << std::endl;
2659 Xyce::dout() <<
"ADMSHBT_X::Instance::loadDAEdFdx (" <<
getName() <<
"):" << std::endl;
2664 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2671 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2678 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2685 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2692 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2699 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2706 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2713 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2720 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2727 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2734 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2741 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2748 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2755 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2762 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2769 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2776 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2783 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2790 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2797 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2804 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2811 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2818 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2825 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2832 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2839 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2846 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2853 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2860 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2867 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2874 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2881 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2888 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2895 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2902 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2909 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2916 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2923 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2930 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2937 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2944 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2951 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2958 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2965 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2972 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2980 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2988 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2996 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3004 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3012 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3019 (*f_BRA_b_bi_Equ_b_Node_Ptr) += -1;
3021 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3022 { Xyce::dout() <<
" (*f_BRA_b_bi_Equ_b_Node_Ptr) += " << -1<< std::endl;
3026 (*f_BRA_b_bi_Equ_bi_Node_Ptr) += +1;
3028 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3029 { Xyce::dout() <<
" (*f_BRA_b_bi_Equ_bi_Node_Ptr) += " << +1<< std::endl;
3035 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3041 (*f_BRA_e_ei_Equ_e_Node_Ptr) += -1;
3043 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3044 { Xyce::dout() <<
" (*f_BRA_e_ei_Equ_e_Node_Ptr) += " << -1<< std::endl;
3048 (*f_BRA_e_ei_Equ_ei_Node_Ptr) += +1;
3050 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3051 { Xyce::dout() <<
" (*f_BRA_e_ei_Equ_ei_Node_Ptr) += " << +1<< std::endl;
3057 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3063 (*f_BRA_c_ci_Equ_c_Node_Ptr) += -1;
3065 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3066 { Xyce::dout() <<
" (*f_BRA_c_ci_Equ_c_Node_Ptr) += " << -1<< std::endl;
3070 (*f_BRA_c_ci_Equ_ci_Node_Ptr) += +1;
3072 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3073 { Xyce::dout() <<
" (*f_BRA_c_ci_Equ_ci_Node_Ptr) += " << +1<< std::endl;
3079 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3099 bool bsuccess =
true;
3102 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3104 Xyce::dout() << subsection_divider << std::endl;
3105 Xyce::dout() <<
"ADMSHBT_X::Instance::loadDAEdQdx (" <<
getName() <<
"):" << std::endl;
3110 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3117 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3124 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3131 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3138 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3145 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3152 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3159 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3166 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3173 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3180 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3187 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3194 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3201 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3208 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3215 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3222 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3229 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3236 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3243 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3250 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3257 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3264 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3271 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3336 if ( (!((
Mode >=0 &&
Mode <=4 ))) )
3338 UserError0(*
this) <<
"ADMSHBT_X: Parameter Mode value " <<
Mode <<
" out of range [ 0, 4 ]";
3344 UserError0(*
this) <<
"ADMSHBT_X: Parameter Noise value " <<
Noise <<
" out of range [ 0, 4 ]";
3348 if ( (!((
Debug >=0))) )
3350 UserError0(*
this) <<
"ADMSHBT_X: Parameter Debug value " <<
Debug <<
" out of range [ 0, (+inf) [";
3356 UserError0(*
this) <<
"ADMSHBT_X: Parameter DebugPlus value " <<
DebugPlus <<
" out of range [ 0, (+inf) [";
3360 if ( (!((
Temp >=(-273.15)))) )
3362 UserError0(*
this) <<
"ADMSHBT_X: Parameter Temp value " <<
Temp <<
" out of range [ (-273.15), (+inf) [";
3366 if ( (!((
Rth >=0.0))) )
3368 UserError0(*
this) <<
"ADMSHBT_X: Parameter Rth value " <<
Rth <<
" out of range [ 0.0, (+inf) [";
3372 if ( (!((
Cth >=0.0))) )
3374 UserError0(*
this) <<
"ADMSHBT_X: Parameter Cth value " <<
Cth <<
" out of range [ 0.0, (+inf) [";
3380 UserError0(*
this) <<
"ADMSHBT_X: Parameter N value " <<
N <<
" out of range ] 0, (+inf) [";
3384 if ( (!((
L >0.0))) )
3386 UserError0(*
this) <<
"ADMSHBT_X: Parameter L value " <<
L <<
" out of range ] 0.0, (+inf) [";
3390 if ( (!((
W >0.0))) )
3392 UserError0(*
this) <<
"ADMSHBT_X: Parameter W value " <<
W <<
" out of range ] 0.0, (+inf) [";
3396 if ( (!((
Jsf >=0.0))) )
3398 UserError0(*
this) <<
"ADMSHBT_X: Parameter Jsf value " <<
Jsf <<
" out of range [ 0.0, (+inf) [";
3402 if ( (!((
nf >=0.0))) )
3404 UserError0(*
this) <<
"ADMSHBT_X: Parameter nf value " <<
nf <<
" out of range [ 0.0, (+inf) [";
3408 if ( (!((
Vg >=(-2.0)))) )
3410 UserError0(*
this) <<
"ADMSHBT_X: Parameter Vg value " <<
Vg <<
" out of range [ (-2.0), (+inf) [";
3414 if ( (!((
Jse >=0.0))) )
3416 UserError0(*
this) <<
"ADMSHBT_X: Parameter Jse value " <<
Jse <<
" out of range [ 0.0, (+inf) [";
3420 if ( (!((
ne >=0.0))) )
3422 UserError0(*
this) <<
"ADMSHBT_X: Parameter ne value " <<
ne <<
" out of range [ 0.0, (+inf) [";
3426 if ( (!((
Rbxx >0.0))) )
3428 UserError0(*
this) <<
"ADMSHBT_X: Parameter Rbxx value " <<
Rbxx <<
" out of range ] 0.0, (+inf) [";
3432 if ( (!((
Vgb >=0.0))) )
3434 UserError0(*
this) <<
"ADMSHBT_X: Parameter Vgb value " <<
Vgb <<
" out of range [ 0.0, (+inf) [";
3438 if ( (!((
Jsee >=0.0))) )
3440 UserError0(*
this) <<
"ADMSHBT_X: Parameter Jsee value " <<
Jsee <<
" out of range [ 0.0, (+inf) [";
3444 if ( (!((
nee >=0.0))) )
3446 UserError0(*
this) <<
"ADMSHBT_X: Parameter nee value " <<
nee <<
" out of range [ 0.0, (+inf) [";
3450 if ( (!((
Rbbxx >0.0))) )
3452 UserError0(*
this) <<
"ADMSHBT_X: Parameter Rbbxx value " <<
Rbbxx <<
" out of range ] 0.0, (+inf) [";
3456 if ( (!((
Vgbb >=0.0))) )
3458 UserError0(*
this) <<
"ADMSHBT_X: Parameter Vgbb value " <<
Vgbb <<
" out of range [ 0.0, (+inf) [";
3462 if ( (!((
Jsr >=0.0))) )
3464 UserError0(*
this) <<
"ADMSHBT_X: Parameter Jsr value " <<
Jsr <<
" out of range [ 0.0, (+inf) [";
3468 if ( (!((
nr >=0.0))) )
3470 UserError0(*
this) <<
"ADMSHBT_X: Parameter nr value " <<
nr <<
" out of range [ 0.0, (+inf) [";
3474 if ( (!((
Vgr >=0.0))) )
3476 UserError0(*
this) <<
"ADMSHBT_X: Parameter Vgr value " <<
Vgr <<
" out of range [ 0.0, (+inf) [";
3480 if ( (!((
XCjc >=0.0 &&
XCjc <1.0 ))) )
3482 UserError0(*
this) <<
"ADMSHBT_X: Parameter XCjc value " <<
XCjc <<
" out of range [ 0.0, 1.0 [";
3486 if ( (!((
Jsc >=0.0))) )
3488 UserError0(*
this) <<
"ADMSHBT_X: Parameter Jsc value " <<
Jsc <<
" out of range [ 0.0, (+inf) [";
3492 if ( (!((
nc >=0.0))) )
3494 UserError0(*
this) <<
"ADMSHBT_X: Parameter nc value " <<
nc <<
" out of range [ 0.0, (+inf) [";
3498 if ( (!((
Rcxx >0.0))) )
3500 UserError0(*
this) <<
"ADMSHBT_X: Parameter Rcxx value " <<
Rcxx <<
" out of range ] 0.0, (+inf) [";
3504 if ( (!((
Vgc >=0.0))) )
3506 UserError0(*
this) <<
"ADMSHBT_X: Parameter Vgc value " <<
Vgc <<
" out of range [ 0.0, (+inf) [";
3510 if ( (!((
Bf >=0.0))) )
3512 UserError0(*
this) <<
"ADMSHBT_X: Parameter Bf value " <<
Bf <<
" out of range [ 0.0, (+inf) [";
3516 if ( (!((
kBeta >=0.0))) )
3518 UserError0(*
this) <<
"ADMSHBT_X: Parameter kBeta value " <<
kBeta <<
" out of range [ 0.0, (+inf) [";
3522 if ( (!((
Br >=0.0))) )
3524 UserError0(*
this) <<
"ADMSHBT_X: Parameter Br value " <<
Br <<
" out of range [ 0.0, (+inf) [";
3528 if ( (!((
VAF >=0.0))) )
3530 UserError0(*
this) <<
"ADMSHBT_X: Parameter VAF value " <<
VAF <<
" out of range [ 0.0, (+inf) [";
3534 if ( (!((
VAR >=0.0))) )
3536 UserError0(*
this) <<
"ADMSHBT_X: Parameter VAR value " <<
VAR <<
" out of range [ 0.0, (+inf) [";
3540 if ( (!((
IKF >=0.0))) )
3542 UserError0(*
this) <<
"ADMSHBT_X: Parameter IKF value " <<
IKF <<
" out of range [ 0.0, (+inf) [";
3546 if ( (!((
IKR >=0.0))) )
3548 UserError0(*
this) <<
"ADMSHBT_X: Parameter IKR value " <<
IKR <<
" out of range [ 0.0, (+inf) [";
3552 if ( (!((
Mc >=0.0))) )
3554 UserError0(*
this) <<
"ADMSHBT_X: Parameter Mc value " <<
Mc <<
" out of range [ 0.0, (+inf) [";
3558 if ( (!((
BVceo >=0.0))) )
3560 UserError0(*
this) <<
"ADMSHBT_X: Parameter BVceo value " <<
BVceo <<
" out of range [ 0.0, (+inf) [";
3564 if ( (!((
kc >=0.0))) )
3566 UserError0(*
this) <<
"ADMSHBT_X: Parameter kc value " <<
kc <<
" out of range [ 0.0, (+inf) [";
3570 if ( (!((
BVebo >=0.0))) )
3572 UserError0(*
this) <<
"ADMSHBT_X: Parameter BVebo value " <<
BVebo <<
" out of range [ 0.0, (+inf) [";
3576 if ( (!((
Tr >=0.0))) )
3578 UserError0(*
this) <<
"ADMSHBT_X: Parameter Tr value " <<
Tr <<
" out of range [ 0.0, (+inf) [";
3582 if ( (!((
Trx >=0.0))) )
3584 UserError0(*
this) <<
"ADMSHBT_X: Parameter Trx value " <<
Trx <<
" out of range [ 0.0, (+inf) [";
3588 if ( (!((
Tf >=0.0))) )
3590 UserError0(*
this) <<
"ADMSHBT_X: Parameter Tf value " <<
Tf <<
" out of range [ 0.0, (+inf) [";
3594 if ( (!((
Tft >=0.0))) )
3596 UserError0(*
this) <<
"ADMSHBT_X: Parameter Tft value " <<
Tft <<
" out of range [ 0.0, (+inf) [";
3600 if ( (!((
Thcs >=0.0))) )
3602 UserError0(*
this) <<
"ADMSHBT_X: Parameter Thcs value " <<
Thcs <<
" out of range [ 0.0, (+inf) [";
3606 if ( (!((
Ahc >=0.0))) )
3608 UserError0(*
this) <<
"ADMSHBT_X: Parameter Ahc value " <<
Ahc <<
" out of range [ 0.0, (+inf) [";
3612 if ( (!((
Cje >=0.0))) )
3614 UserError0(*
this) <<
"ADMSHBT_X: Parameter Cje value " <<
Cje <<
" out of range [ 0.0, (+inf) [";
3618 if ( (!((
mje >=0.0 &&
mje <1 ))) )
3620 UserError0(*
this) <<
"ADMSHBT_X: Parameter mje value " <<
mje <<
" out of range [ 0.0, 1 [";
3624 if ( (!((
Vje >=0.0))) )
3626 UserError0(*
this) <<
"ADMSHBT_X: Parameter Vje value " <<
Vje <<
" out of range [ 0.0, (+inf) [";
3630 if ( (!((
Cjc >=0.0))) )
3632 UserError0(*
this) <<
"ADMSHBT_X: Parameter Cjc value " <<
Cjc <<
" out of range [ 0.0, (+inf) [";
3636 if ( (!((
mjc >=0.0))) )
3638 UserError0(*
this) <<
"ADMSHBT_X: Parameter mjc value " <<
mjc <<
" out of range [ 0.0, (+inf) [";
3642 if ( (!((
Vjc >=0.0))) )
3644 UserError0(*
this) <<
"ADMSHBT_X: Parameter Vjc value " <<
Vjc <<
" out of range [ 0.0, (+inf) [";
3650 if ( (!((
Cmin >=0.0))) )
3652 UserError0(*
this) <<
"ADMSHBT_X: Parameter Cmin value " <<
Cmin <<
" out of range [ 0.0, (+inf) [";
3656 if ( (!((
J0 >=0.0))) )
3658 UserError0(*
this) <<
"ADMSHBT_X: Parameter J0 value " <<
J0 <<
" out of range [ 0.0, (+inf) [";
3662 if ( (!((
XJ0 >=0.0 &&
XJ0 <=1.0 ))) )
3664 UserError0(*
this) <<
"ADMSHBT_X: Parameter XJ0 value " <<
XJ0 <<
" out of range [ 0.0, 1.0 ]";
3668 if ( (!((
Rci0 >0.0))) )
3670 UserError0(*
this) <<
"ADMSHBT_X: Parameter Rci0 value " <<
Rci0 <<
" out of range ] 0.0, (+inf) [";
3674 if ( (!((
Jk >=0.0))) )
3676 UserError0(*
this) <<
"ADMSHBT_X: Parameter Jk value " <<
Jk <<
" out of range [ 0.0, (+inf) [";
3680 if ( (!((
RJk >=0.0))) )
3682 UserError0(*
this) <<
"ADMSHBT_X: Parameter RJk value " <<
RJk <<
" out of range [ 0.0, (+inf) [";
3686 if ( (!((
Vces >=0.0))) )
3688 UserError0(*
this) <<
"ADMSHBT_X: Parameter Vces value " <<
Vces <<
" out of range [ 0.0, (+inf) [";
3692 if ( (!((
Rc >0.0))) )
3694 UserError0(*
this) <<
"ADMSHBT_X: Parameter Rc value " <<
Rc <<
" out of range ] 0.0, (+inf) [";
3698 if ( (!((
Re >0.0))) )
3700 UserError0(*
this) <<
"ADMSHBT_X: Parameter Re value " <<
Re <<
" out of range ] 0.0, (+inf) [";
3704 if ( (!((
Rb >0.0))) )
3706 UserError0(*
this) <<
"ADMSHBT_X: Parameter Rb value " <<
Rb <<
" out of range ] 0.0, (+inf) [";
3710 if ( (!((
Rb2 >0.0))) )
3712 UserError0(*
this) <<
"ADMSHBT_X: Parameter Rb2 value " <<
Rb2 <<
" out of range ] 0.0, (+inf) [";
3716 if ( (!((
Lc >=0.0))) )
3718 UserError0(*
this) <<
"ADMSHBT_X: Parameter Lc value " <<
Lc <<
" out of range [ 0.0, (+inf) [";
3722 if ( (!((
Le >=0.0))) )
3724 UserError0(*
this) <<
"ADMSHBT_X: Parameter Le value " <<
Le <<
" out of range [ 0.0, (+inf) [";
3728 if ( (!((
Lb >=0.0))) )
3730 UserError0(*
this) <<
"ADMSHBT_X: Parameter Lb value " <<
Lb <<
" out of range [ 0.0, (+inf) [";
3734 if ( (!((
Cq >=0.0))) )
3736 UserError0(*
this) <<
"ADMSHBT_X: Parameter Cq value " <<
Cq <<
" out of range [ 0.0, (+inf) [";
3740 if ( (!((
Cpb >=0.0))) )
3742 UserError0(*
this) <<
"ADMSHBT_X: Parameter Cpb value " <<
Cpb <<
" out of range [ 0.0, (+inf) [";
3746 if ( (!((
Cpc >=0.0))) )
3748 UserError0(*
this) <<
"ADMSHBT_X: Parameter Cpc value " <<
Cpc <<
" out of range [ 0.0, (+inf) [";
3752 if ( (!((
Tnom >=(-273.15)))) )
3754 UserError0(*
this) <<
"ADMSHBT_X: Parameter Tnom value " <<
Tnom <<
" out of range [ (-273.15), (+inf) [";
3760 UserError0(*
this) <<
"ADMSHBT_X: Parameter dtype value " <<
dtype <<
" out of range [ (-1), 1 ] or in excluded range [ 0, 0 ]";
3781 std::vector<Instance*>::iterator iter;
3785 for (iter=first; iter!=last; ++iter)
3787 (*iter)->processParams();
3805 :
DeviceModel(model_block, configuration.getModelParameters(), factory_block),
3890 if (!
given(
"XYCEADMSMODTEMP"))
3922 std::vector<Instance*>::iterator iterI;
3927 for (iterI = firstI; iterI != lastI; ++iterI)
3943 std::vector<Instance*>::const_iterator iter;
3949 os <<
" name model name Parameters" << std::endl;
3950 for (i=0, iter=first; iter!=last; ++iter, ++i)
3952 os <<
" " << i <<
": " << (*iter)->getName() <<
" ";
3956 os <<
"TEMP = " << (*iter)->Temp << std::endl;
3957 os <<
"N = " << (*iter)->N << std::endl;
3958 os <<
"L = " << (*iter)->L << std::endl;
3959 os <<
"W = " << (*iter)->W << std::endl;
3984 for (std::vector<Instance *>::const_iterator it = instanceContainer.begin(); it != instanceContainer.end(); ++it)
3996 .registerDevice(
"q", 23)
3997 .registerModelType(
"npn", 23)
3998 .registerModelType(
"pnp", 23);
4015 bool instancePar_given_Temp,
4017 bool instancePar_given_L,
4019 bool instancePar_given_W,
4022 bool instancePar_given_N,
4026 bool modelPar_given_Temp,
4028 bool modelPar_given_Rth,
4030 bool modelPar_given_Cth,
4032 bool modelPar_given_L,
4034 bool modelPar_given_W,
4036 bool modelPar_given_Jsf,
4038 bool modelPar_given_nf,
4040 bool modelPar_given_Vg,
4042 bool modelPar_given_Jse,
4044 bool modelPar_given_ne,
4046 bool modelPar_given_Rbxx,
4048 bool modelPar_given_Vgb,
4050 bool modelPar_given_Jsee,
4052 bool modelPar_given_nee,
4054 bool modelPar_given_Rbbxx,
4056 bool modelPar_given_Vgbb,
4058 bool modelPar_given_Jsr,
4060 bool modelPar_given_nr,
4062 bool modelPar_given_Vgr,
4064 bool modelPar_given_XCjc,
4066 bool modelPar_given_Jsc,
4068 bool modelPar_given_nc,
4070 bool modelPar_given_Rcxx,
4072 bool modelPar_given_Vgc,
4074 bool modelPar_given_Bf,
4076 bool modelPar_given_kBeta,
4078 bool modelPar_given_Br,
4080 bool modelPar_given_VAF,
4082 bool modelPar_given_VAR,
4084 bool modelPar_given_IKF,
4086 bool modelPar_given_IKR,
4088 bool modelPar_given_Mc,
4090 bool modelPar_given_BVceo,
4092 bool modelPar_given_kc,
4094 bool modelPar_given_BVebo,
4096 bool modelPar_given_Tr,
4098 bool modelPar_given_Trx,
4100 bool modelPar_given_Tf,
4102 bool modelPar_given_Tft,
4104 bool modelPar_given_Thcs,
4106 bool modelPar_given_Ahc,
4108 bool modelPar_given_Cje,
4110 bool modelPar_given_mje,
4112 bool modelPar_given_Vje,
4114 bool modelPar_given_Cjc,
4116 bool modelPar_given_mjc,
4118 bool modelPar_given_Vjc,
4120 bool modelPar_given_kjc,
4122 bool modelPar_given_Cmin,
4124 bool modelPar_given_J0,
4126 bool modelPar_given_XJ0,
4128 bool modelPar_given_Rci0,
4130 bool modelPar_given_Jk,
4132 bool modelPar_given_RJk,
4134 bool modelPar_given_Vces,
4136 bool modelPar_given_Rc,
4138 bool modelPar_given_Re,
4140 bool modelPar_given_Rb,
4142 bool modelPar_given_Rb2,
4144 bool modelPar_given_Lc,
4146 bool modelPar_given_Le,
4148 bool modelPar_given_Lb,
4150 bool modelPar_given_Cq,
4152 bool modelPar_given_Cpb,
4154 bool modelPar_given_Cpc,
4156 bool modelPar_given_Tnom,
4159 bool modelPar_given_Mode,
4161 bool modelPar_given_Noise,
4163 bool modelPar_given_Debug,
4164 int modelPar_DebugPlus,
4165 bool modelPar_given_DebugPlus,
4167 bool modelPar_given_N,
4169 double admsTemperature,
double adms_vt_nom)
4187 bool modelPar_given_Temp,
4189 bool modelPar_given_Rth,
4191 bool modelPar_given_Cth,
4193 bool modelPar_given_L,
4195 bool modelPar_given_W,
4197 bool modelPar_given_Jsf,
4199 bool modelPar_given_nf,
4201 bool modelPar_given_Vg,
4203 bool modelPar_given_Jse,
4205 bool modelPar_given_ne,
4207 bool modelPar_given_Rbxx,
4209 bool modelPar_given_Vgb,
4211 bool modelPar_given_Jsee,
4213 bool modelPar_given_nee,
4215 bool modelPar_given_Rbbxx,
4217 bool modelPar_given_Vgbb,
4219 bool modelPar_given_Jsr,
4221 bool modelPar_given_nr,
4223 bool modelPar_given_Vgr,
4225 bool modelPar_given_XCjc,
4227 bool modelPar_given_Jsc,
4229 bool modelPar_given_nc,
4231 bool modelPar_given_Rcxx,
4233 bool modelPar_given_Vgc,
4235 bool modelPar_given_Bf,
4237 bool modelPar_given_kBeta,
4239 bool modelPar_given_Br,
4241 bool modelPar_given_VAF,
4243 bool modelPar_given_VAR,
4245 bool modelPar_given_IKF,
4247 bool modelPar_given_IKR,
4249 bool modelPar_given_Mc,
4251 bool modelPar_given_BVceo,
4253 bool modelPar_given_kc,
4255 bool modelPar_given_BVebo,
4257 bool modelPar_given_Tr,
4259 bool modelPar_given_Trx,
4261 bool modelPar_given_Tf,
4263 bool modelPar_given_Tft,
4265 bool modelPar_given_Thcs,
4267 bool modelPar_given_Ahc,
4269 bool modelPar_given_Cje,
4271 bool modelPar_given_mje,
4273 bool modelPar_given_Vje,
4275 bool modelPar_given_Cjc,
4277 bool modelPar_given_mjc,
4279 bool modelPar_given_Vjc,
4281 bool modelPar_given_kjc,
4283 bool modelPar_given_Cmin,
4285 bool modelPar_given_J0,
4287 bool modelPar_given_XJ0,
4289 bool modelPar_given_Rci0,
4291 bool modelPar_given_Jk,
4293 bool modelPar_given_RJk,
4295 bool modelPar_given_Vces,
4297 bool modelPar_given_Rc,
4299 bool modelPar_given_Re,
4301 bool modelPar_given_Rb,
4303 bool modelPar_given_Rb2,
4305 bool modelPar_given_Lc,
4307 bool modelPar_given_Le,
4309 bool modelPar_given_Lb,
4311 bool modelPar_given_Cq,
4313 bool modelPar_given_Cpb,
4315 bool modelPar_given_Cpc,
4317 bool modelPar_given_Tnom,
4320 bool modelPar_given_Mode,
4322 bool modelPar_given_Noise,
4324 bool modelPar_given_Debug,
4325 int modelPar_DebugPlus,
4326 bool modelPar_given_DebugPlus,
4328 bool modelPar_given_N,
4330 double admsTemperature)
4348 std::vector <double> & probeVars,
4350 const int admsProbeID_V_t_ti,
4351 const int admsProbeID_V_b_c,
4352 const int admsProbeID_V_c_GND,
4353 const int admsProbeID_V_b_GND,
4354 const int admsProbeID_V_cx_bii,
4355 const int admsProbeID_V_exx_bii,
4356 const int admsProbeID_V_ex_bii,
4357 const int admsProbeID_V_bii_bi,
4358 const int admsProbeID_I_c_ci,
4359 const int admsProbeID_I_e_ei,
4360 const int admsProbeID_I_b_bi,
4361 const int admsProbeID_V_ti_GND,
4362 const int admsProbeID_V_ci_ei,
4363 const int admsProbeID_V_exx_ei,
4364 const int admsProbeID_V_cx_ci,
4365 const int admsProbeID_V_ex_ei,
4366 const int admsProbeID_V_bii_ei,
4367 const int admsProbeID_V_bii_ci,
4368 const int admsProbeID_V_bi_ci,
4370 const int admsNodeID_c,
4371 const int admsNodeID_b,
4372 const int admsNodeID_e,
4373 const int admsNodeID_t,
4374 const int admsNodeID_ei,
4375 const int admsNodeID_bi,
4376 const int admsNodeID_bii,
4377 const int admsNodeID_ci,
4378 const int admsNodeID_ti,
4379 const int admsNodeID_ex,
4380 const int admsNodeID_exx,
4381 const int admsNodeID_cx,
4382 const int admsBRA_ID_b_bi,
4383 const int admsBRA_ID_e_ei,
4384 const int admsBRA_ID_c_ci,
4388 bool instancePar_given_Temp,
4390 bool instancePar_given_L,
4392 bool instancePar_given_W,
4395 bool instancePar_given_N,
4399 bool modelPar_given_Temp,
4401 bool modelPar_given_Rth,
4403 bool modelPar_given_Cth,
4405 bool modelPar_given_L,
4407 bool modelPar_given_W,
4409 bool modelPar_given_Jsf,
4411 bool modelPar_given_nf,
4413 bool modelPar_given_Vg,
4415 bool modelPar_given_Jse,
4417 bool modelPar_given_ne,
4419 bool modelPar_given_Rbxx,
4421 bool modelPar_given_Vgb,
4423 bool modelPar_given_Jsee,
4425 bool modelPar_given_nee,
4427 bool modelPar_given_Rbbxx,
4429 bool modelPar_given_Vgbb,
4431 bool modelPar_given_Jsr,
4433 bool modelPar_given_nr,
4435 bool modelPar_given_Vgr,
4437 bool modelPar_given_XCjc,
4439 bool modelPar_given_Jsc,
4441 bool modelPar_given_nc,
4443 bool modelPar_given_Rcxx,
4445 bool modelPar_given_Vgc,
4447 bool modelPar_given_Bf,
4449 bool modelPar_given_kBeta,
4451 bool modelPar_given_Br,
4453 bool modelPar_given_VAF,
4455 bool modelPar_given_VAR,
4457 bool modelPar_given_IKF,
4459 bool modelPar_given_IKR,
4461 bool modelPar_given_Mc,
4463 bool modelPar_given_BVceo,
4465 bool modelPar_given_kc,
4467 bool modelPar_given_BVebo,
4469 bool modelPar_given_Tr,
4471 bool modelPar_given_Trx,
4473 bool modelPar_given_Tf,
4475 bool modelPar_given_Tft,
4477 bool modelPar_given_Thcs,
4479 bool modelPar_given_Ahc,
4481 bool modelPar_given_Cje,
4483 bool modelPar_given_mje,
4485 bool modelPar_given_Vje,
4487 bool modelPar_given_Cjc,
4489 bool modelPar_given_mjc,
4491 bool modelPar_given_Vjc,
4493 bool modelPar_given_kjc,
4495 bool modelPar_given_Cmin,
4497 bool modelPar_given_J0,
4499 bool modelPar_given_XJ0,
4501 bool modelPar_given_Rci0,
4503 bool modelPar_given_Jk,
4505 bool modelPar_given_RJk,
4507 bool modelPar_given_Vces,
4509 bool modelPar_given_Rc,
4511 bool modelPar_given_Re,
4513 bool modelPar_given_Rb,
4515 bool modelPar_given_Rb2,
4517 bool modelPar_given_Lc,
4519 bool modelPar_given_Le,
4521 bool modelPar_given_Lb,
4523 bool modelPar_given_Cq,
4525 bool modelPar_given_Cpb,
4527 bool modelPar_given_Cpc,
4529 bool modelPar_given_Tnom,
4532 bool modelPar_given_Mode,
4534 bool modelPar_given_Noise,
4536 bool modelPar_given_Debug,
4537 int modelPar_DebugPlus,
4538 bool modelPar_given_DebugPlus,
4540 bool modelPar_given_N,
4543 double admsTemperature,
double adms_vt_nom,
double gmin, std::vector <AdmsSensFadType> & staticContributions, std::vector <AdmsSensFadType> & dynamicContributions,
const Instance & theInstance)
4601 tVCrit = (adms_vt_nom*log((adms_vt_nom/(1.41421356237309504880*((((modelPar_Jsf*instancePar_L)*instancePar_W)*instancePar_N)*1e12)))));
4602 vbcx = probeVars[admsProbeID_V_bi_ci];
4604 vbci = probeVars[admsProbeID_V_bii_ci];
4606 vbei = probeVars[admsProbeID_V_bii_ei];
4608 vxe = (modelPar_dtype*(probeVars[admsProbeID_V_ex_ei]));
4609 vxc = (modelPar_dtype*(probeVars[admsProbeID_V_cx_ci]));
4610 vxxe = (modelPar_dtype*(probeVars[admsProbeID_V_exx_ei]));
4611 vcei = (modelPar_dtype*(probeVars[admsProbeID_V_ci_ei]));
4612 Texi = (probeVars[admsProbeID_V_ti_GND]);
4613 Tj = (Texi+instancePar_Temp);
4615 Tex = (Tj-modelPar_Tnom);
4616 Area = (((instancePar_L*instancePar_W)*1.0e12)*instancePar_N);
4617 FOUR_K = (4*1.3806226e-23);
4618 TWO_Q = (2*1.6021918e-19);
4619 Ic0a = AnalogFunctions::diode<AdmsSensFadType>(vbei,modelPar_Jsf,modelPar_Vg,modelPar_nf,Area,Tj,modelPar_Tnom);
4620 Ic1ra = AnalogFunctions::diode<AdmsSensFadType>(vbci,(modelPar_XCjc*modelPar_Jsr),modelPar_Vgr,modelPar_nr,Area,Tj,modelPar_Tnom);
4621 if (((modelPar_VAF>0.0)&&(modelPar_VAR>0.0)))
4623 q1 = ((1.0+((AnalogFunctions::charge<AdmsSensFadType>(vbei,1.0,modelPar_Vje,modelPar_mje,1.0)-AnalogFunctions::charge<AdmsSensFadType>(0.0,1.0,modelPar_Vje,modelPar_mje,1.0))/modelPar_VAR))+((AnalogFunctions::charge<AdmsSensFadType>(vbci,1.0,modelPar_Vjc,modelPar_mjc,1.0)-AnalogFunctions::charge<AdmsSensFadType>(0.0,1.0,modelPar_Vjc,modelPar_mjc,1.0))/modelPar_VAF));
4627 if (((modelPar_VAF>0.0)&&(modelPar_VAR==0.0)))
4629 q1 = (1.0+((AnalogFunctions::charge<AdmsSensFadType>(vbci,1.0,modelPar_Vjc,modelPar_mjc,1.0)-AnalogFunctions::charge<AdmsSensFadType>(0.0,1.0,modelPar_Vjc,modelPar_mjc,1.0))/modelPar_VAF));
4633 if (((modelPar_VAF==0.0)&&(modelPar_VAR>0.0)))
4635 q1 = (1.0+((AnalogFunctions::charge<AdmsSensFadType>(vbei,1.0,modelPar_Vje,modelPar_mje,1.0)-AnalogFunctions::charge<AdmsSensFadType>(0.0,1.0,modelPar_Vje,modelPar_mje,1.0))/modelPar_VAR));
4643 if (((modelPar_IKF>0.0)&&(modelPar_IKR>0.0)))
4645 q2 = ((Ic0a/(Area*modelPar_IKF))+(Ic1ra/(Area*modelPar_IKR)));
4649 if (((modelPar_IKF>0.0)&&(modelPar_IKR==0.0)))
4651 q2 = (Ic0a/(Area*modelPar_IKF));
4655 if (((modelPar_IKF==0.0)&&(modelPar_IKR>0.0)))
4657 q2 = (Ic1ra/(Area*modelPar_IKR));
4665 qb = ((q1+sqrt(((q1*q1)+(4.0*q2))))/2.0);
4669 Ib2 = (AnalogFunctions::diode<AdmsSensFadType>(vbci,(modelPar_XCjc*modelPar_Jsr),modelPar_Vgr,modelPar_nr,Area,Tj,modelPar_Tnom)/modelPar_Br);
4670 Ibx = (AnalogFunctions::diode<AdmsSensFadType>(vbcx,((1.0-modelPar_XCjc)*modelPar_Jsr),modelPar_Vgr,modelPar_nr,Area,Tj,modelPar_Tnom)/modelPar_Br);
4672 Vbclin = (modelPar_BVceo*pow((1.0-epsi),(1/modelPar_Mc)));
4673 mm = AnalogFunctions::MM<AdmsSensFadType>(vbci,modelPar_BVceo,modelPar_Mc,Vbclin,modelPar_Bf,modelPar_kc);
4676 if ((modelPar_kBeta>0.0))
4678 if (((modelPar_Bf-(modelPar_kBeta*Tex))>1e-6))
4680 EdBeta = (((1/(modelPar_Bf-(modelPar_kBeta*Tex)))-(modelPar_kc*(mm-1)))/((modelPar_kc*(mm-1))+1));
4684 EdBeta = ((1e6-(modelPar_kc*(mm-1)))/((modelPar_kc*(mm-1))+1));
4689 EdBeta = (((1/modelPar_Bf)-(modelPar_kc*(mm-1)))/((modelPar_kc*(mm-1))+1));
4694 if ((modelPar_kBeta>0.0))
4696 if (((modelPar_Bf-(modelPar_kBeta*Tex))>1e-6))
4698 EdBeta = (1/(modelPar_Bf-(modelPar_kBeta*Tex)));
4707 EdBeta = (1/modelPar_Bf);
4710 Ib0 = (Ic0a*EdBeta);
4711 if ((modelPar_BVebo>0))
4713 Ib1 = (Ib0-AnalogFunctions::diode<AdmsSensFadType>(((-modelPar_BVebo)-vbei),modelPar_Jsf,0.0,1.0,Area,0.0,0.0));
4719 if (((modelPar_Jse>0.0)&&(modelPar_ne>0)))
4721 Ibdx = AnalogFunctions::diode<AdmsSensFadType>(vxe,modelPar_Jse,modelPar_Vgb,modelPar_ne,Area,Tj,modelPar_Tnom);
4727 if (((modelPar_Jsee>0.0)&&(modelPar_nee>0)))
4729 Ibdxx = AnalogFunctions::diode<AdmsSensFadType>(vxxe,modelPar_Jsee,modelPar_Vgbb,modelPar_nee,Area,Tj,modelPar_Tnom);
4733 Ibdxx = (vxxe*1e-12);
4735 if (((modelPar_Jsc>0.0)&&(modelPar_nc>0)))
4737 Icdx = AnalogFunctions::diode<AdmsSensFadType>(vxc,modelPar_Jsc,modelPar_Vgc,modelPar_nc,Area,Tj,modelPar_Tnom);
4743 Ipdiss = ((((Ic1*vcei)+(Ib1*vbei))+(Ib2*vbci))+(Ibx*vbcx));
4748 I00 = (modelPar_J0*Area);
4749 if (((modelPar_XCjc<1.0)&&(modelPar_XCjc>0.0)))
4751 if (((modelPar_J0<=0.0)||(Ic0<0.0)))
4753 qb2med = ((modelPar_XCjc*AnalogFunctions::charge<AdmsSensFadType>(vbci,(modelPar_Cjc-modelPar_Cmin),modelPar_Vjc,modelPar_mjc,Area))+(((modelPar_XCjc*Area)*modelPar_Cmin)*vbci));
4758 qb2med = (((modelPar_XCjc*(1.0-tanh(xix)))*(AnalogFunctions::charge<AdmsSensFadType>(vbci,(modelPar_Cjc-modelPar_Cmin),modelPar_Vjc,modelPar_mjc,Area)+((((1.0-modelPar_XJ0)*Area)*modelPar_Cmin)*vbci)))+((((modelPar_XJ0*modelPar_XCjc)*Area)*modelPar_Cmin)*vbci));
4763 if (((modelPar_J0<0.0)||(Ic0<0.0)))
4765 qb2med = (AnalogFunctions::charge<AdmsSensFadType>(vbci,(modelPar_Cjc-modelPar_Cmin),modelPar_Vjc,modelPar_mjc,Area)+((Area*modelPar_Cmin)*vbci));
4770 qb2med = (((1.0-tanh(xix))*(AnalogFunctions::charge<AdmsSensFadType>(vbci,(modelPar_Cjc-modelPar_Cmin),modelPar_Vjc,modelPar_mjc,Area)+((((1.0-modelPar_XJ0)*Area)*modelPar_Cmin)*vbci)))+(((modelPar_XJ0*Area)*modelPar_Cmin)*vbci));
4773 if (((modelPar_XCjc<1.0)&&(modelPar_XCjc>0.0)))
4775 qb1 = (((1.0-modelPar_XCjc)*AnalogFunctions::charge<AdmsSensFadType>(vbcx,(modelPar_Cjc-modelPar_Cmin),modelPar_Vjc,modelPar_mjc,Area))+((((1.0-modelPar_XCjc)*Area)*modelPar_Cmin)*vbcx));
4781 qbtr = (modelPar_Tr*Ic1r);
4782 qbtra = (modelPar_Trx*Ibx);
4783 qb2 = (qb2med+qbtr);
4784 if (((modelPar_Jk>0.0)&&(modelPar_Rci0>0.0)))
4786 if ((modelPar_RJk>0.0))
4788 Vlim = ((modelPar_Jk*modelPar_Rci0)/(1.0-(modelPar_Rci0/modelPar_RJk)));
4789 InvVpt = ((1.0-(modelPar_Rci0/modelPar_RJk))/(modelPar_Jk*modelPar_RJk));
4793 Vlim = ((modelPar_Jk*modelPar_Rci0)/1.016);
4797 if (((((modelPar_Thcs>0.0)&&(modelPar_Ahc>0.0))&&(modelPar_Jk>0.0))&&(Ic0>0.0)))
4799 RCIO = (modelPar_Rci0/Area);
4800 AHC = (Area*modelPar_Ahc);
4801 if (((modelPar_Rci0<modelPar_RJk)||(modelPar_RJk<=0.0)))
4803 Ih = (1.0-(AnalogFunctions::ICK<AdmsSensFadType>(vcei,RCIO,Vlim,InvVpt,modelPar_Vces)/Ic0));
4807 Ih = (1.0-(AnalogFunctions::Vceff<AdmsSensFadType>(vcei,modelPar_Vces)/(RCIO*Ic0)));
4809 Wh = ((Ih+sqrt(((Ih*Ih)+AHC)))/(1.0+sqrt((1.0+AHC))));
4810 xtff = ((modelPar_Thcs*Ic0)*(Wh*Wh));
4816 qbtf = ((modelPar_Tf+(modelPar_Tft*Tex))*Ic0);
4817 qbe = ((xtff+qbtf)+AnalogFunctions::charge<AdmsSensFadType>(vbei,modelPar_Cje,modelPar_Vje,modelPar_mje,Area));
4819 staticContributions[admsNodeID_bi] += (modelPar_dtype*Ibx);
4820 staticContributions[admsNodeID_ci] -= (modelPar_dtype*Ibx);
4822 dynamicContributions[admsNodeID_bi] += (modelPar_dtype*((qb1+qbtra)));
4823 dynamicContributions[admsNodeID_ci] -= (modelPar_dtype*((qb1+qbtra)));
4825 staticContributions[admsNodeID_bii] += (modelPar_dtype*Ib2);
4826 staticContributions[admsNodeID_ci] -= (modelPar_dtype*Ib2);
4828 dynamicContributions[admsNodeID_bii] += (modelPar_dtype*(qb2));
4829 dynamicContributions[admsNodeID_ci] -= (modelPar_dtype*(qb2));
4831 staticContributions[admsNodeID_bii] += (modelPar_dtype*Ib1);
4832 staticContributions[admsNodeID_ei] -= (modelPar_dtype*Ib1);
4834 dynamicContributions[admsNodeID_bii] += (modelPar_dtype*(qbe));
4835 dynamicContributions[admsNodeID_ei] -= (modelPar_dtype*(qbe));
4837 staticContributions[admsNodeID_ci] += (modelPar_dtype*Ic1);
4838 staticContributions[admsNodeID_ei] -= (modelPar_dtype*Ic1);
4840 staticContributions[admsNodeID_ex] += (modelPar_dtype*Ibdx);
4841 staticContributions[admsNodeID_ei] -= (modelPar_dtype*Ibdx);
4843 staticContributions[admsNodeID_exx] += (modelPar_dtype*Ibdxx);
4844 staticContributions[admsNodeID_ei] -= (modelPar_dtype*Ibdxx);
4846 staticContributions[admsNodeID_cx] += (modelPar_dtype*Icdx);
4847 staticContributions[admsNodeID_ci] -= (modelPar_dtype*Icdx);
4849 staticContributions[admsBRA_ID_b_bi] += ((probeVars[admsProbeID_I_b_bi])*(modelPar_Rb/instancePar_N));
4851 dynamicContributions[admsBRA_ID_b_bi] += (((probeVars[admsProbeID_I_b_bi])*modelPar_Lb));
4853 staticContributions[admsBRA_ID_e_ei] += ((probeVars[admsProbeID_I_e_ei])*(modelPar_Re/instancePar_N));
4855 dynamicContributions[admsBRA_ID_e_ei] += (((probeVars[admsProbeID_I_e_ei])*modelPar_Le));
4857 staticContributions[admsBRA_ID_c_ci] += ((probeVars[admsProbeID_I_c_ci])*(modelPar_Rc/instancePar_N));
4859 dynamicContributions[admsBRA_ID_c_ci] += (((probeVars[admsProbeID_I_c_ci])*modelPar_Lc));
4861 staticContributions[admsNodeID_bii] += ((probeVars[admsProbeID_V_bii_bi])/(modelPar_Rb2/instancePar_N));
4862 staticContributions[admsNodeID_bi] -= ((probeVars[admsProbeID_V_bii_bi])/(modelPar_Rb2/instancePar_N));
4863 if (((modelPar_Jse>0.0)&&(modelPar_ne>0)))
4866 staticContributions[admsNodeID_ex] += ((probeVars[admsProbeID_V_ex_bii])/(modelPar_Rbxx/instancePar_N));
4867 staticContributions[admsNodeID_bii] -= ((probeVars[admsProbeID_V_ex_bii])/(modelPar_Rbxx/instancePar_N));
4872 staticContributions[admsNodeID_ex] += ((probeVars[admsProbeID_V_ex_bii])*1e-12);
4873 staticContributions[admsNodeID_bii] -= ((probeVars[admsProbeID_V_ex_bii])*1e-12);
4875 if (((modelPar_Jsee>0.0)&&(modelPar_nee>0)))
4878 staticContributions[admsNodeID_exx] += ((probeVars[admsProbeID_V_exx_bii])/(modelPar_Rbbxx/instancePar_N));
4879 staticContributions[admsNodeID_bii] -= ((probeVars[admsProbeID_V_exx_bii])/(modelPar_Rbbxx/instancePar_N));
4884 staticContributions[admsNodeID_exx] += ((probeVars[admsProbeID_V_exx_bii])*1e-12);
4885 staticContributions[admsNodeID_bii] -= ((probeVars[admsProbeID_V_exx_bii])*1e-12);
4887 if (((modelPar_Jsc>0.0)&&(modelPar_nc>0)))
4890 staticContributions[admsNodeID_cx] += ((probeVars[admsProbeID_V_cx_bii])/(modelPar_Rcxx/instancePar_N));
4891 staticContributions[admsNodeID_bii] -= ((probeVars[admsProbeID_V_cx_bii])/(modelPar_Rcxx/instancePar_N));
4896 staticContributions[admsNodeID_cx] += ((probeVars[admsProbeID_V_cx_bii])*1e-12);
4897 staticContributions[admsNodeID_bii] -= ((probeVars[admsProbeID_V_cx_bii])*1e-12);
4900 dynamicContributions[admsNodeID_b] += ((modelPar_Cpb*(probeVars[admsProbeID_V_b_GND])));
4902 dynamicContributions[admsNodeID_c] += ((modelPar_Cpc*(probeVars[admsProbeID_V_c_GND])));
4904 dynamicContributions[admsNodeID_b] += ((modelPar_Cq*(probeVars[admsProbeID_V_b_c])));
4905 dynamicContributions[admsNodeID_c] -= ((modelPar_Cq*(probeVars[admsProbeID_V_b_c])));
4907 staticContributions[admsNodeID_ti] += (-Ipdiss);
4908 if ((modelPar_Rth>0))
4911 staticContributions[admsNodeID_t] += ((probeVars[admsProbeID_V_t_ti])/modelPar_Rth);
4912 staticContributions[admsNodeID_ti] -= ((probeVars[admsProbeID_V_t_ti])/modelPar_Rth);
4914 dynamicContributions[admsNodeID_t] += (modelPar_Cth*((probeVars[admsProbeID_V_t_ti])));
4915 dynamicContributions[admsNodeID_ti] -= (modelPar_Cth*((probeVars[admsProbeID_V_t_ti])));
4920 staticContributions[admsNodeID_t] += ((probeVars[admsProbeID_V_t_ti])*1e3);
4921 staticContributions[admsNodeID_ti] -= ((probeVars[admsProbeID_V_t_ti])*1e3);
4949 void InstanceSensitivity::operator()
4952 const std::string &name,
4953 std::vector<double> & dfdp,
4954 std::vector<double> & dqdp,
4955 std::vector<double> & dbdp,
4956 std::vector<int> & Findices,
4957 std::vector<int> & Qindices,
4958 std::vector<int> & Bindices
4967 Findices.resize(12+3);
4968 Qindices.resize(12+3);
4970 std::vector <double> probeVars(19);
4971 std::vector <AdmsSensFadType> staticContributions(12+3);
4972 std::vector <AdmsSensFadType> dynamicContributions(12+3);
4976 for (
int i=0; i < 12+3 ; ++i)
4978 staticContributions[i]=0;
4979 dynamicContributions[i]=0;
4985 bool modelPar_given_Temp=mod.
given(
"Temp");
4987 bool modelPar_given_Rth=mod.
given(
"Rth");
4989 bool modelPar_given_Cth=mod.
given(
"Cth");
4991 bool modelPar_given_L=mod.
given(
"L");
4993 bool modelPar_given_W=mod.
given(
"W");
4995 bool modelPar_given_Jsf=mod.
given(
"Jsf");
4997 bool modelPar_given_nf=mod.
given(
"nf");
4999 bool modelPar_given_Vg=mod.
given(
"Vg");
5001 bool modelPar_given_Jse=mod.
given(
"Jse");
5003 bool modelPar_given_ne=mod.
given(
"ne");
5005 bool modelPar_given_Rbxx=mod.
given(
"Rbxx");
5007 bool modelPar_given_Vgb=mod.
given(
"Vgb");
5009 bool modelPar_given_Jsee=mod.
given(
"Jsee");
5011 bool modelPar_given_nee=mod.
given(
"nee");
5013 bool modelPar_given_Rbbxx=mod.
given(
"Rbbxx");
5015 bool modelPar_given_Vgbb=mod.
given(
"Vgbb");
5017 bool modelPar_given_Jsr=mod.
given(
"Jsr");
5019 bool modelPar_given_nr=mod.
given(
"nr");
5021 bool modelPar_given_Vgr=mod.
given(
"Vgr");
5023 bool modelPar_given_XCjc=mod.
given(
"XCjc");
5025 bool modelPar_given_Jsc=mod.
given(
"Jsc");
5027 bool modelPar_given_nc=mod.
given(
"nc");
5029 bool modelPar_given_Rcxx=mod.
given(
"Rcxx");
5031 bool modelPar_given_Vgc=mod.
given(
"Vgc");
5033 bool modelPar_given_Bf=mod.
given(
"Bf");
5035 bool modelPar_given_kBeta=mod.
given(
"kBeta");
5037 bool modelPar_given_Br=mod.
given(
"Br");
5039 bool modelPar_given_VAF=mod.
given(
"VAF");
5041 bool modelPar_given_VAR=mod.
given(
"VAR");
5043 bool modelPar_given_IKF=mod.
given(
"IKF");
5045 bool modelPar_given_IKR=mod.
given(
"IKR");
5047 bool modelPar_given_Mc=mod.
given(
"Mc");
5049 bool modelPar_given_BVceo=mod.
given(
"BVceo");
5051 bool modelPar_given_kc=mod.
given(
"kc");
5053 bool modelPar_given_BVebo=mod.
given(
"BVebo");
5055 bool modelPar_given_Tr=mod.
given(
"Tr");
5057 bool modelPar_given_Trx=mod.
given(
"Trx");
5059 bool modelPar_given_Tf=mod.
given(
"Tf");
5061 bool modelPar_given_Tft=mod.
given(
"Tft");
5063 bool modelPar_given_Thcs=mod.
given(
"Thcs");
5065 bool modelPar_given_Ahc=mod.
given(
"Ahc");
5067 bool modelPar_given_Cje=mod.
given(
"Cje");
5069 bool modelPar_given_mje=mod.
given(
"mje");
5071 bool modelPar_given_Vje=mod.
given(
"Vje");
5073 bool modelPar_given_Cjc=mod.
given(
"Cjc");
5075 bool modelPar_given_mjc=mod.
given(
"mjc");
5077 bool modelPar_given_Vjc=mod.
given(
"Vjc");
5079 bool modelPar_given_kjc=mod.
given(
"kjc");
5081 bool modelPar_given_Cmin=mod.
given(
"Cmin");
5083 bool modelPar_given_J0=mod.
given(
"J0");
5085 bool modelPar_given_XJ0=mod.
given(
"XJ0");
5087 bool modelPar_given_Rci0=mod.
given(
"Rci0");
5089 bool modelPar_given_Jk=mod.
given(
"Jk");
5091 bool modelPar_given_RJk=mod.
given(
"RJk");
5093 bool modelPar_given_Vces=mod.
given(
"Vces");
5095 bool modelPar_given_Rc=mod.
given(
"Rc");
5097 bool modelPar_given_Re=mod.
given(
"Re");
5099 bool modelPar_given_Rb=mod.
given(
"Rb");
5101 bool modelPar_given_Rb2=mod.
given(
"Rb2");
5103 bool modelPar_given_Lc=mod.
given(
"Lc");
5105 bool modelPar_given_Le=mod.
given(
"Le");
5107 bool modelPar_given_Lb=mod.
given(
"Lb");
5109 bool modelPar_given_Cq=mod.
given(
"Cq");
5111 bool modelPar_given_Cpb=mod.
given(
"Cpb");
5113 bool modelPar_given_Cpc=mod.
given(
"Cpc");
5115 bool modelPar_given_Tnom=mod.
given(
"Tnom");
5122 int modelPar_Mode=mod.
Mode;
5123 bool modelPar_given_Mode=mod.
given(
"Mode");
5124 int modelPar_Noise=mod.
Noise;
5125 bool modelPar_given_Noise=mod.
given(
"Noise");
5126 int modelPar_Debug=mod.
Debug;
5127 bool modelPar_given_Debug=mod.
given(
"Debug");
5129 bool modelPar_given_DebugPlus=mod.
given(
"DebugPlus");
5130 int modelPar_N=mod.
N;
5131 bool modelPar_given_N=mod.
given(
"N");
5132 int modelPar_dtype=mod.
dtype;
5140 unordered_map <std::string,AdmsSensFadType*,HashNoCase,EqualNoCase> inParamMap;
5144 bool instancePar_given_Temp=in.
given(
"Temp");
5145 inParamMap[
"Temp"] = &instancePar_Temp;
5147 bool instancePar_given_L=in.
given(
"L");
5148 inParamMap[
"L"] = &instancePar_L;
5150 bool instancePar_given_W=in.
given(
"W");
5151 inParamMap[
"W"] = &instancePar_W;
5159 int instancePar_N=in.
N;
5160 bool instancePar_given_N=in.
given(
"N");
5167 inParamMap[name]->diff(0,1);
5258 instancePar_given_Temp,
5260 instancePar_given_L,
5262 instancePar_given_W,
5265 instancePar_given_N,
5269 modelPar_given_Temp,
5289 modelPar_given_Rbxx,
5293 modelPar_given_Jsee,
5297 modelPar_given_Rbbxx,
5299 modelPar_given_Vgbb,
5307 modelPar_given_XCjc,
5313 modelPar_given_Rcxx,
5319 modelPar_given_kBeta,
5333 modelPar_given_BVceo,
5337 modelPar_given_BVebo,
5347 modelPar_given_Thcs,
5365 modelPar_given_Cmin,
5371 modelPar_given_Rci0,
5377 modelPar_given_Vces,
5399 modelPar_given_Tnom,
5402 modelPar_given_Mode,
5404 modelPar_given_Noise,
5406 modelPar_given_Debug,
5408 modelPar_given_DebugPlus,
5415 staticContributions,
5416 dynamicContributions,
5508 void ModelSensitivity::operator()
5511 const std::string &name,
5512 std::vector<double> & dfdp,
5513 std::vector<double> & dqdp,
5514 std::vector<double> & dbdp,
5515 std::vector<int> & Findices,
5516 std::vector<int> & Qindices,
5517 std::vector<int> & Bindices
5521 const Model & mod = *(
dynamic_cast<const Model *
> (e1));
5524 dfdp.resize((12+3)*sizeInstance);
5525 dqdp.resize((12+3)*sizeInstance);
5526 Findices.resize((12+3)*sizeInstance);
5527 Qindices.resize((12+3)*sizeInstance);
5529 std::vector <double> probeVars(19);
5530 std::vector <AdmsSensFadType> staticContributions(12+3);
5531 std::vector <AdmsSensFadType> dynamicContributions(12+3);
5538 unordered_map <std::string,AdmsSensFadType*,HashNoCase,EqualNoCase> modParamMap;
5542 bool modelPar_given_Temp=mod.
given(
"Temp");
5543 modParamMap[
"Temp"] = &modelPar_Temp;
5545 bool modelPar_given_Rth=mod.
given(
"Rth");
5546 modParamMap[
"Rth"] = &modelPar_Rth;
5548 bool modelPar_given_Cth=mod.
given(
"Cth");
5549 modParamMap[
"Cth"] = &modelPar_Cth;
5551 bool modelPar_given_L=mod.
given(
"L");
5552 modParamMap[
"L"] = &modelPar_L;
5554 bool modelPar_given_W=mod.
given(
"W");
5555 modParamMap[
"W"] = &modelPar_W;
5557 bool modelPar_given_Jsf=mod.
given(
"Jsf");
5558 modParamMap[
"Jsf"] = &modelPar_Jsf;
5560 bool modelPar_given_nf=mod.
given(
"nf");
5561 modParamMap[
"nf"] = &modelPar_nf;
5563 bool modelPar_given_Vg=mod.
given(
"Vg");
5564 modParamMap[
"Vg"] = &modelPar_Vg;
5566 bool modelPar_given_Jse=mod.
given(
"Jse");
5567 modParamMap[
"Jse"] = &modelPar_Jse;
5569 bool modelPar_given_ne=mod.
given(
"ne");
5570 modParamMap[
"ne"] = &modelPar_ne;
5572 bool modelPar_given_Rbxx=mod.
given(
"Rbxx");
5573 modParamMap[
"Rbxx"] = &modelPar_Rbxx;
5575 bool modelPar_given_Vgb=mod.
given(
"Vgb");
5576 modParamMap[
"Vgb"] = &modelPar_Vgb;
5578 bool modelPar_given_Jsee=mod.
given(
"Jsee");
5579 modParamMap[
"Jsee"] = &modelPar_Jsee;
5581 bool modelPar_given_nee=mod.
given(
"nee");
5582 modParamMap[
"nee"] = &modelPar_nee;
5584 bool modelPar_given_Rbbxx=mod.
given(
"Rbbxx");
5585 modParamMap[
"Rbbxx"] = &modelPar_Rbbxx;
5587 bool modelPar_given_Vgbb=mod.
given(
"Vgbb");
5588 modParamMap[
"Vgbb"] = &modelPar_Vgbb;
5590 bool modelPar_given_Jsr=mod.
given(
"Jsr");
5591 modParamMap[
"Jsr"] = &modelPar_Jsr;
5593 bool modelPar_given_nr=mod.
given(
"nr");
5594 modParamMap[
"nr"] = &modelPar_nr;
5596 bool modelPar_given_Vgr=mod.
given(
"Vgr");
5597 modParamMap[
"Vgr"] = &modelPar_Vgr;
5599 bool modelPar_given_XCjc=mod.
given(
"XCjc");
5600 modParamMap[
"XCjc"] = &modelPar_XCjc;
5602 bool modelPar_given_Jsc=mod.
given(
"Jsc");
5603 modParamMap[
"Jsc"] = &modelPar_Jsc;
5605 bool modelPar_given_nc=mod.
given(
"nc");
5606 modParamMap[
"nc"] = &modelPar_nc;
5608 bool modelPar_given_Rcxx=mod.
given(
"Rcxx");
5609 modParamMap[
"Rcxx"] = &modelPar_Rcxx;
5611 bool modelPar_given_Vgc=mod.
given(
"Vgc");
5612 modParamMap[
"Vgc"] = &modelPar_Vgc;
5614 bool modelPar_given_Bf=mod.
given(
"Bf");
5615 modParamMap[
"Bf"] = &modelPar_Bf;
5617 bool modelPar_given_kBeta=mod.
given(
"kBeta");
5618 modParamMap[
"kBeta"] = &modelPar_kBeta;
5620 bool modelPar_given_Br=mod.
given(
"Br");
5621 modParamMap[
"Br"] = &modelPar_Br;
5623 bool modelPar_given_VAF=mod.
given(
"VAF");
5624 modParamMap[
"VAF"] = &modelPar_VAF;
5626 bool modelPar_given_VAR=mod.
given(
"VAR");
5627 modParamMap[
"VAR"] = &modelPar_VAR;
5629 bool modelPar_given_IKF=mod.
given(
"IKF");
5630 modParamMap[
"IKF"] = &modelPar_IKF;
5632 bool modelPar_given_IKR=mod.
given(
"IKR");
5633 modParamMap[
"IKR"] = &modelPar_IKR;
5635 bool modelPar_given_Mc=mod.
given(
"Mc");
5636 modParamMap[
"Mc"] = &modelPar_Mc;
5638 bool modelPar_given_BVceo=mod.
given(
"BVceo");
5639 modParamMap[
"BVceo"] = &modelPar_BVceo;
5641 bool modelPar_given_kc=mod.
given(
"kc");
5642 modParamMap[
"kc"] = &modelPar_kc;
5644 bool modelPar_given_BVebo=mod.
given(
"BVebo");
5645 modParamMap[
"BVebo"] = &modelPar_BVebo;
5647 bool modelPar_given_Tr=mod.
given(
"Tr");
5648 modParamMap[
"Tr"] = &modelPar_Tr;
5650 bool modelPar_given_Trx=mod.
given(
"Trx");
5651 modParamMap[
"Trx"] = &modelPar_Trx;
5653 bool modelPar_given_Tf=mod.
given(
"Tf");
5654 modParamMap[
"Tf"] = &modelPar_Tf;
5656 bool modelPar_given_Tft=mod.
given(
"Tft");
5657 modParamMap[
"Tft"] = &modelPar_Tft;
5659 bool modelPar_given_Thcs=mod.
given(
"Thcs");
5660 modParamMap[
"Thcs"] = &modelPar_Thcs;
5662 bool modelPar_given_Ahc=mod.
given(
"Ahc");
5663 modParamMap[
"Ahc"] = &modelPar_Ahc;
5665 bool modelPar_given_Cje=mod.
given(
"Cje");
5666 modParamMap[
"Cje"] = &modelPar_Cje;
5668 bool modelPar_given_mje=mod.
given(
"mje");
5669 modParamMap[
"mje"] = &modelPar_mje;
5671 bool modelPar_given_Vje=mod.
given(
"Vje");
5672 modParamMap[
"Vje"] = &modelPar_Vje;
5674 bool modelPar_given_Cjc=mod.
given(
"Cjc");
5675 modParamMap[
"Cjc"] = &modelPar_Cjc;
5677 bool modelPar_given_mjc=mod.
given(
"mjc");
5678 modParamMap[
"mjc"] = &modelPar_mjc;
5680 bool modelPar_given_Vjc=mod.
given(
"Vjc");
5681 modParamMap[
"Vjc"] = &modelPar_Vjc;
5683 bool modelPar_given_kjc=mod.
given(
"kjc");
5684 modParamMap[
"kjc"] = &modelPar_kjc;
5686 bool modelPar_given_Cmin=mod.
given(
"Cmin");
5687 modParamMap[
"Cmin"] = &modelPar_Cmin;
5689 bool modelPar_given_J0=mod.
given(
"J0");
5690 modParamMap[
"J0"] = &modelPar_J0;
5692 bool modelPar_given_XJ0=mod.
given(
"XJ0");
5693 modParamMap[
"XJ0"] = &modelPar_XJ0;
5695 bool modelPar_given_Rci0=mod.
given(
"Rci0");
5696 modParamMap[
"Rci0"] = &modelPar_Rci0;
5698 bool modelPar_given_Jk=mod.
given(
"Jk");
5699 modParamMap[
"Jk"] = &modelPar_Jk;
5701 bool modelPar_given_RJk=mod.
given(
"RJk");
5702 modParamMap[
"RJk"] = &modelPar_RJk;
5704 bool modelPar_given_Vces=mod.
given(
"Vces");
5705 modParamMap[
"Vces"] = &modelPar_Vces;
5707 bool modelPar_given_Rc=mod.
given(
"Rc");
5708 modParamMap[
"Rc"] = &modelPar_Rc;
5710 bool modelPar_given_Re=mod.
given(
"Re");
5711 modParamMap[
"Re"] = &modelPar_Re;
5713 bool modelPar_given_Rb=mod.
given(
"Rb");
5714 modParamMap[
"Rb"] = &modelPar_Rb;
5716 bool modelPar_given_Rb2=mod.
given(
"Rb2");
5717 modParamMap[
"Rb2"] = &modelPar_Rb2;
5719 bool modelPar_given_Lc=mod.
given(
"Lc");
5720 modParamMap[
"Lc"] = &modelPar_Lc;
5722 bool modelPar_given_Le=mod.
given(
"Le");
5723 modParamMap[
"Le"] = &modelPar_Le;
5725 bool modelPar_given_Lb=mod.
given(
"Lb");
5726 modParamMap[
"Lb"] = &modelPar_Lb;
5728 bool modelPar_given_Cq=mod.
given(
"Cq");
5729 modParamMap[
"Cq"] = &modelPar_Cq;
5731 bool modelPar_given_Cpb=mod.
given(
"Cpb");
5732 modParamMap[
"Cpb"] = &modelPar_Cpb;
5734 bool modelPar_given_Cpc=mod.
given(
"Cpc");
5735 modParamMap[
"Cpc"] = &modelPar_Cpc;
5737 bool modelPar_given_Tnom=mod.
given(
"Tnom");
5738 modParamMap[
"Tnom"] = &modelPar_Tnom;
5745 int modelPar_Mode=mod.
Mode;
5746 bool modelPar_given_Mode=mod.
given(
"Mode");
5747 int modelPar_Noise=mod.
Noise;
5748 bool modelPar_given_Noise=mod.
given(
"Noise");
5749 int modelPar_Debug=mod.
Debug;
5750 bool modelPar_given_Debug=mod.
given(
"Debug");
5752 bool modelPar_given_DebugPlus=mod.
given(
"DebugPlus");
5753 int modelPar_N=mod.
N;
5754 bool modelPar_given_N=mod.
given(
"N");
5755 int modelPar_dtype=mod.
dtype;
5762 modParamMap[name]->diff(0,1);
5779 for (
int i=0; i < 12+3 ; ++i)
5781 staticContributions[i]=0;
5782 dynamicContributions[i]=0;
5790 bool instancePar_given_Temp=in.
given(
"Temp");
5792 bool instancePar_given_L=in.
given(
"L");
5794 bool instancePar_given_W=in.
given(
"W");
5801 int instancePar_N=in.
N;
5802 bool instancePar_given_N=in.
given(
"N");
5812 if (!(in.
given(
"Temp")))
5814 instancePar_Temp = modelPar_Temp;
5816 if (!(in.
given(
"N")))
5818 instancePar_N = modelPar_N;
5820 if (!(in.
given(
"L")))
5822 instancePar_L = modelPar_L;
5824 if (!(in.
given(
"W")))
5826 instancePar_W = modelPar_W;
5912 instancePar_given_Temp,
5914 instancePar_given_L,
5916 instancePar_given_W,
5919 instancePar_given_N,
5923 modelPar_given_Temp,
5943 modelPar_given_Rbxx,
5947 modelPar_given_Jsee,
5951 modelPar_given_Rbbxx,
5953 modelPar_given_Vgbb,
5961 modelPar_given_XCjc,
5967 modelPar_given_Rcxx,
5973 modelPar_given_kBeta,
5987 modelPar_given_BVceo,
5991 modelPar_given_BVebo,
6001 modelPar_given_Thcs,
6019 modelPar_given_Cmin,
6025 modelPar_given_Rci0,
6031 modelPar_given_Vces,
6053 modelPar_given_Tnom,
6056 modelPar_given_Mode,
6058 modelPar_given_Noise,
6060 modelPar_given_Debug,
6062 modelPar_given_DebugPlus,
6069 staticContributions,
6070 dynamicContributions,
const InstanceName & getName() const
double * q_ci_Equ_bi_Node_Ptr
std::vector< AdmsFadType > probeVars
double * q_ex_Equ_bii_Node_Ptr
double * f_cx_Equ_bii_Node_Ptr
double * q_ti_Equ_ei_Node_Ptr
static const int admsNodeID_bii
bool updateDependentParameters()
double * q_bi_Equ_bii_Node_Ptr
double * q_t_Equ_ti_Node_Ptr
void registerLIDs(const LocalIdVector &intLIDVecRef, const LocalIdVector &extLIDVecRef)
static const int admsNodeID_ei
bool updatePrimaryState()
const SolverState & solverState_
Descriptor & addPar(const char *parName, T default_value, T U::*varPtr)
Adds the parameter description to the parameter map.
static const int admsNodeID_ex
double * f_bi_Equ_bi_Node_Ptr
double * f_c_Equ_b_Node_Ptr
double * q_BRA_e_ei_Equ_BRA_e_ei_Var_Ptr
bool updateSecondaryState()
std::vector< double > Jdxp_static
double * q_cx_Equ_bii_Node_Ptr
double * f_ci_Equ_BRA_c_ci_Var_Ptr
double * dFdxdVpVectorRawPtr
Linear::Vector * nextSolVectorPtr
double * q_cx_Equ_ti_Node_Ptr
double * q_exx_Equ_ei_Node_Ptr
double pnjlim(double vnew, double vold, double vt, double vcrit, int *icheck)
double * f_BRA_b_bi_Equ_b_Node_Ptr
double * f_bi_Equ_BRA_b_bi_Var_Ptr
bool given(const std::string ¶meter_name) const
Linear::Vector * daeQVectorPtr
double * f_cx_Equ_ci_Node_Ptr
static const int admsNodeID_ci
static const int admsProbeID_I_c_ci
double * q_bii_Equ_bii_Node_Ptr
Pure virtual class to augment a linear system.
double * q_c_Equ_c_Node_Ptr
double * q_cx_Equ_cx_Node_Ptr
std::vector< AdmsFadType > dynamicContributions
void addInternalNode(Util::SymbolTable &symbol_table, int index, const InstanceName &instance_name, const std::string &lead_name)
double * f_cx_Equ_ti_Node_Ptr
double * f_t_Equ_ti_Node_Ptr
static const int admsProbeID_V_bii_bi
double * q_BRA_b_bi_Equ_BRA_b_bi_Var_Ptr
double * f_ei_Equ_exx_Node_Ptr
virtual void forEachInstance(DeviceInstanceOp &op) const
Apply a device instance "op" to all instances associated with this model.
double * f_bii_Equ_exx_Node_Ptr
static const int admsProbeID_V_ci_ei
double * f_c_Equ_c_Node_Ptr
double * q_ti_Equ_ti_Node_Ptr
static const int admsProbeID_V_bii_ei
Base class for all parameters.
double * f_b_Equ_BRA_b_bi_Var_Ptr
double * f_ti_Equ_bi_Node_Ptr
double * f_b_Equ_b_Node_Ptr
static std::vector< std::vector< int > > jacStamp
virtual void registerJacLIDs(const JacobianStamp &jacLIDVec)
static const int admsProbeID_V_b_GND
double * q_exx_Equ_bii_Node_Ptr
std::vector< AdmsFadType > staticContributions
static const int admsProbeID_V_ex_ei
double * f_e_Equ_BRA_e_ei_Var_Ptr
double * q_ei_Equ_ei_Node_Ptr
double * f_b_Equ_c_Node_Ptr
bool updateIntermediateVars()
double * f_ei_Equ_ei_Node_Ptr
static const int admsProbeID_V_t_ti
double * q_ci_Equ_bii_Node_Ptr
bool updateTemperature(const double &temp=-999.0)
static InstanceSensitivity instSens
double * q_ci_Equ_ti_Node_Ptr
double * f_BRA_e_ei_Equ_e_Node_Ptr
double * f_exx_Equ_bii_Node_Ptr
double * f_ex_Equ_ei_Node_Ptr
double * q_bi_Equ_ti_Node_Ptr
double * f_exx_Equ_ei_Node_Ptr
double * f_bii_Equ_ti_Node_Ptr
double * q_cx_Equ_ci_Node_Ptr
std::vector< Param > params
Parameters from the line.
double * q_ei_Equ_ci_Node_Ptr
void registerJacLIDs(const JacobianStamp &jacLIDVec)
static const int admsProbeID_V_bii_ci
static const int admsNodeID_bi
void setParams(const std::vector< Param > ¶ms)
const std::string & getName() const
double * q_ci_Equ_cx_Node_Ptr
Sacado::Fad::SFad< double, 1 > AdmsSensFadType
double * q_bii_Equ_cx_Node_Ptr
void evaluateModelEquations(std::vector< double > &probeVars, const int admsProbeID_V_t_ti, const int admsProbeID_V_b_c, const int admsProbeID_V_c_GND, const int admsProbeID_V_b_GND, const int admsProbeID_V_cx_bii, const int admsProbeID_V_exx_bii, const int admsProbeID_V_ex_bii, const int admsProbeID_V_bii_bi, const int admsProbeID_I_c_ci, const int admsProbeID_I_e_ei, const int admsProbeID_I_b_bi, const int admsProbeID_V_ti_GND, const int admsProbeID_V_ci_ei, const int admsProbeID_V_exx_ei, const int admsProbeID_V_cx_ci, const int admsProbeID_V_ex_ei, const int admsProbeID_V_bii_ei, const int admsProbeID_V_bii_ci, const int admsProbeID_V_bi_ci, const int admsNodeID_c, const int admsNodeID_b, const int admsNodeID_e, const int admsNodeID_t, const int admsNodeID_ei, const int admsNodeID_bi, const int admsNodeID_bii, const int admsNodeID_ci, const int admsNodeID_ti, const int admsNodeID_ex, const int admsNodeID_exx, const int admsNodeID_cx, const int admsBRA_ID_b_bi, const int admsBRA_ID_e_ei, const int admsBRA_ID_c_ci, AdmsSensFadType &instancePar_Temp, bool instancePar_given_Temp, AdmsSensFadType &instancePar_L, bool instancePar_given_L, AdmsSensFadType &instancePar_W, bool instancePar_given_W, int instancePar_N, bool instancePar_given_N, AdmsSensFadType &modelPar_Temp, bool modelPar_given_Temp, AdmsSensFadType &modelPar_Rth, bool modelPar_given_Rth, AdmsSensFadType &modelPar_Cth, bool modelPar_given_Cth, AdmsSensFadType &modelPar_L, bool modelPar_given_L, AdmsSensFadType &modelPar_W, bool modelPar_given_W, AdmsSensFadType &modelPar_Jsf, bool modelPar_given_Jsf, AdmsSensFadType &modelPar_nf, bool modelPar_given_nf, AdmsSensFadType &modelPar_Vg, bool modelPar_given_Vg, AdmsSensFadType &modelPar_Jse, bool modelPar_given_Jse, AdmsSensFadType &modelPar_ne, bool modelPar_given_ne, AdmsSensFadType &modelPar_Rbxx, bool modelPar_given_Rbxx, AdmsSensFadType &modelPar_Vgb, bool modelPar_given_Vgb, AdmsSensFadType &modelPar_Jsee, bool modelPar_given_Jsee, AdmsSensFadType &modelPar_nee, bool modelPar_given_nee, AdmsSensFadType &modelPar_Rbbxx, bool modelPar_given_Rbbxx, AdmsSensFadType &modelPar_Vgbb, bool modelPar_given_Vgbb, AdmsSensFadType &modelPar_Jsr, bool modelPar_given_Jsr, AdmsSensFadType &modelPar_nr, bool modelPar_given_nr, AdmsSensFadType &modelPar_Vgr, bool modelPar_given_Vgr, AdmsSensFadType &modelPar_XCjc, bool modelPar_given_XCjc, AdmsSensFadType &modelPar_Jsc, bool modelPar_given_Jsc, AdmsSensFadType &modelPar_nc, bool modelPar_given_nc, AdmsSensFadType &modelPar_Rcxx, bool modelPar_given_Rcxx, AdmsSensFadType &modelPar_Vgc, bool modelPar_given_Vgc, AdmsSensFadType &modelPar_Bf, bool modelPar_given_Bf, AdmsSensFadType &modelPar_kBeta, bool modelPar_given_kBeta, AdmsSensFadType &modelPar_Br, bool modelPar_given_Br, AdmsSensFadType &modelPar_VAF, bool modelPar_given_VAF, AdmsSensFadType &modelPar_VAR, bool modelPar_given_VAR, AdmsSensFadType &modelPar_IKF, bool modelPar_given_IKF, AdmsSensFadType &modelPar_IKR, bool modelPar_given_IKR, AdmsSensFadType &modelPar_Mc, bool modelPar_given_Mc, AdmsSensFadType &modelPar_BVceo, bool modelPar_given_BVceo, AdmsSensFadType &modelPar_kc, bool modelPar_given_kc, AdmsSensFadType &modelPar_BVebo, bool modelPar_given_BVebo, AdmsSensFadType &modelPar_Tr, bool modelPar_given_Tr, AdmsSensFadType &modelPar_Trx, bool modelPar_given_Trx, AdmsSensFadType &modelPar_Tf, bool modelPar_given_Tf, AdmsSensFadType &modelPar_Tft, bool modelPar_given_Tft, AdmsSensFadType &modelPar_Thcs, bool modelPar_given_Thcs, AdmsSensFadType &modelPar_Ahc, bool modelPar_given_Ahc, AdmsSensFadType &modelPar_Cje, bool modelPar_given_Cje, AdmsSensFadType &modelPar_mje, bool modelPar_given_mje, AdmsSensFadType &modelPar_Vje, bool modelPar_given_Vje, AdmsSensFadType &modelPar_Cjc, bool modelPar_given_Cjc, AdmsSensFadType &modelPar_mjc, bool modelPar_given_mjc, AdmsSensFadType &modelPar_Vjc, bool modelPar_given_Vjc, AdmsSensFadType &modelPar_kjc, bool modelPar_given_kjc, AdmsSensFadType &modelPar_Cmin, bool modelPar_given_Cmin, AdmsSensFadType &modelPar_J0, bool modelPar_given_J0, AdmsSensFadType &modelPar_XJ0, bool modelPar_given_XJ0, AdmsSensFadType &modelPar_Rci0, bool modelPar_given_Rci0, AdmsSensFadType &modelPar_Jk, bool modelPar_given_Jk, AdmsSensFadType &modelPar_RJk, bool modelPar_given_RJk, AdmsSensFadType &modelPar_Vces, bool modelPar_given_Vces, AdmsSensFadType &modelPar_Rc, bool modelPar_given_Rc, AdmsSensFadType &modelPar_Re, bool modelPar_given_Re, AdmsSensFadType &modelPar_Rb, bool modelPar_given_Rb, AdmsSensFadType &modelPar_Rb2, bool modelPar_given_Rb2, AdmsSensFadType &modelPar_Lc, bool modelPar_given_Lc, AdmsSensFadType &modelPar_Le, bool modelPar_given_Le, AdmsSensFadType &modelPar_Lb, bool modelPar_given_Lb, AdmsSensFadType &modelPar_Cq, bool modelPar_given_Cq, AdmsSensFadType &modelPar_Cpb, bool modelPar_given_Cpb, AdmsSensFadType &modelPar_Cpc, bool modelPar_given_Cpc, AdmsSensFadType &modelPar_Tnom, bool modelPar_given_Tnom, int modelPar_Mode, bool modelPar_given_Mode, int modelPar_Noise, bool modelPar_given_Noise, int modelPar_Debug, bool modelPar_given_Debug, int modelPar_DebugPlus, bool modelPar_given_DebugPlus, int modelPar_N, bool modelPar_given_N, int modelPar_dtype, double admsTemperature, double adms_vt_nom, double gmin, std::vector< AdmsSensFadType > &staticContributions, std::vector< AdmsSensFadType > &dynamicContributions, const Instance &theInstance)
double * f_ti_Equ_t_Node_Ptr
The FactoryBlock contains parameters needed by the device, instance and model creation functions...
double * q_ex_Equ_ei_Node_Ptr
static const int admsProbeID_V_cx_ci
static const int admsProbeID_I_e_ei
static const int admsProbeID_V_exx_ei
static const int admsProbeID_V_cx_bii
double * q_e_Equ_BRA_e_ei_Var_Ptr
void loadNodeSymbols(Util::SymbolTable &symbol_table) const
Populates and returns the store name map.
double * q_bii_Equ_exx_Node_Ptr
const DeviceOptions & getDeviceOptions() const
double * q_bi_Equ_BRA_b_bi_Var_Ptr
double * f_ci_Equ_ci_Node_Ptr
Parameter is not to be documented.
double * f_bii_Equ_ex_Node_Ptr
double * q_c_Equ_b_Node_Ptr
double * q_ti_Equ_t_Node_Ptr
double * f_ei_Equ_ex_Node_Ptr
double * f_BRA_b_bi_Equ_BRA_b_bi_Var_Ptr
double * q_bi_Equ_ci_Node_Ptr
double * q_ci_Equ_ei_Node_Ptr
double * f_ci_Equ_ei_Node_Ptr
double * f_ex_Equ_ex_Node_Ptr
const DeviceOptions & deviceOptions_
double * f_bi_Equ_ti_Node_Ptr
std::vector< std::vector< int > > JacobianStamp
double * f_ci_Equ_ti_Node_Ptr
double * q_BRA_e_ei_Equ_ei_Node_Ptr
static std::vector< std::vector< int > > jacMap2
static const int admsNodeID_e
static const int admsProbeID_V_c_GND
std::vector< Instance * > instanceContainer
static ModelSensitivity modSens
bool processParams()
processParams
double * q_bi_Equ_bi_Node_Ptr
bool processInstanceParams()
processInstanceParams
Linear::Vector * nextStaVectorPtr
static const int admsBRA_ID_c_ci
static const int admsNodeID_c
double * q_ei_Equ_ex_Node_Ptr
virtual std::ostream & printOutInstances(std::ostream &os) const
static const int admsNodeID_t
static Config< T > & addConfiguration()
Adds the device to the Xyce device configuration.
Sacado::Fad::SFad< double, 19 > AdmsFadType
double * q_BRA_e_ei_Equ_e_Node_Ptr
double * f_ti_Equ_ci_Node_Ptr
Linear::Matrix * dFdxMatrixPtr
static const int admsNodeID_b
double * q_ti_Equ_ci_Node_Ptr
double * q_exx_Equ_ti_Node_Ptr
The Device class is an interface for device implementations.
double * f_BRA_c_ci_Equ_c_Node_Ptr
double * q_exx_Equ_exx_Node_Ptr
double * f_BRA_e_ei_Equ_ei_Node_Ptr
int li_state_admsProbeID_V_bii_ei
void evaluateInitialModel(AdmsSensFadType &modelPar_Temp, bool modelPar_given_Temp, AdmsSensFadType &modelPar_Rth, bool modelPar_given_Rth, AdmsSensFadType &modelPar_Cth, bool modelPar_given_Cth, AdmsSensFadType &modelPar_L, bool modelPar_given_L, AdmsSensFadType &modelPar_W, bool modelPar_given_W, AdmsSensFadType &modelPar_Jsf, bool modelPar_given_Jsf, AdmsSensFadType &modelPar_nf, bool modelPar_given_nf, AdmsSensFadType &modelPar_Vg, bool modelPar_given_Vg, AdmsSensFadType &modelPar_Jse, bool modelPar_given_Jse, AdmsSensFadType &modelPar_ne, bool modelPar_given_ne, AdmsSensFadType &modelPar_Rbxx, bool modelPar_given_Rbxx, AdmsSensFadType &modelPar_Vgb, bool modelPar_given_Vgb, AdmsSensFadType &modelPar_Jsee, bool modelPar_given_Jsee, AdmsSensFadType &modelPar_nee, bool modelPar_given_nee, AdmsSensFadType &modelPar_Rbbxx, bool modelPar_given_Rbbxx, AdmsSensFadType &modelPar_Vgbb, bool modelPar_given_Vgbb, AdmsSensFadType &modelPar_Jsr, bool modelPar_given_Jsr, AdmsSensFadType &modelPar_nr, bool modelPar_given_nr, AdmsSensFadType &modelPar_Vgr, bool modelPar_given_Vgr, AdmsSensFadType &modelPar_XCjc, bool modelPar_given_XCjc, AdmsSensFadType &modelPar_Jsc, bool modelPar_given_Jsc, AdmsSensFadType &modelPar_nc, bool modelPar_given_nc, AdmsSensFadType &modelPar_Rcxx, bool modelPar_given_Rcxx, AdmsSensFadType &modelPar_Vgc, bool modelPar_given_Vgc, AdmsSensFadType &modelPar_Bf, bool modelPar_given_Bf, AdmsSensFadType &modelPar_kBeta, bool modelPar_given_kBeta, AdmsSensFadType &modelPar_Br, bool modelPar_given_Br, AdmsSensFadType &modelPar_VAF, bool modelPar_given_VAF, AdmsSensFadType &modelPar_VAR, bool modelPar_given_VAR, AdmsSensFadType &modelPar_IKF, bool modelPar_given_IKF, AdmsSensFadType &modelPar_IKR, bool modelPar_given_IKR, AdmsSensFadType &modelPar_Mc, bool modelPar_given_Mc, AdmsSensFadType &modelPar_BVceo, bool modelPar_given_BVceo, AdmsSensFadType &modelPar_kc, bool modelPar_given_kc, AdmsSensFadType &modelPar_BVebo, bool modelPar_given_BVebo, AdmsSensFadType &modelPar_Tr, bool modelPar_given_Tr, AdmsSensFadType &modelPar_Trx, bool modelPar_given_Trx, AdmsSensFadType &modelPar_Tf, bool modelPar_given_Tf, AdmsSensFadType &modelPar_Tft, bool modelPar_given_Tft, AdmsSensFadType &modelPar_Thcs, bool modelPar_given_Thcs, AdmsSensFadType &modelPar_Ahc, bool modelPar_given_Ahc, AdmsSensFadType &modelPar_Cje, bool modelPar_given_Cje, AdmsSensFadType &modelPar_mje, bool modelPar_given_mje, AdmsSensFadType &modelPar_Vje, bool modelPar_given_Vje, AdmsSensFadType &modelPar_Cjc, bool modelPar_given_Cjc, AdmsSensFadType &modelPar_mjc, bool modelPar_given_mjc, AdmsSensFadType &modelPar_Vjc, bool modelPar_given_Vjc, AdmsSensFadType &modelPar_kjc, bool modelPar_given_kjc, AdmsSensFadType &modelPar_Cmin, bool modelPar_given_Cmin, AdmsSensFadType &modelPar_J0, bool modelPar_given_J0, AdmsSensFadType &modelPar_XJ0, bool modelPar_given_XJ0, AdmsSensFadType &modelPar_Rci0, bool modelPar_given_Rci0, AdmsSensFadType &modelPar_Jk, bool modelPar_given_Jk, AdmsSensFadType &modelPar_RJk, bool modelPar_given_RJk, AdmsSensFadType &modelPar_Vces, bool modelPar_given_Vces, AdmsSensFadType &modelPar_Rc, bool modelPar_given_Rc, AdmsSensFadType &modelPar_Re, bool modelPar_given_Re, AdmsSensFadType &modelPar_Rb, bool modelPar_given_Rb, AdmsSensFadType &modelPar_Rb2, bool modelPar_given_Rb2, AdmsSensFadType &modelPar_Lc, bool modelPar_given_Lc, AdmsSensFadType &modelPar_Le, bool modelPar_given_Le, AdmsSensFadType &modelPar_Lb, bool modelPar_given_Lb, AdmsSensFadType &modelPar_Cq, bool modelPar_given_Cq, AdmsSensFadType &modelPar_Cpb, bool modelPar_given_Cpb, AdmsSensFadType &modelPar_Cpc, bool modelPar_given_Cpc, AdmsSensFadType &modelPar_Tnom, bool modelPar_given_Tnom, int modelPar_Mode, bool modelPar_given_Mode, int modelPar_Noise, bool modelPar_given_Noise, int modelPar_Debug, bool modelPar_given_Debug, int modelPar_DebugPlus, bool modelPar_given_DebugPlus, int modelPar_N, bool modelPar_given_N, int modelPar_dtype, double admsTemperature)
double * f_ex_Equ_bii_Node_Ptr
double * f_ti_Equ_bii_Node_Ptr
static const int admsProbeID_I_b_bi
double * f_BRA_c_ci_Equ_ci_Node_Ptr
static const int admsProbeID_V_b_c
double * q_ex_Equ_ti_Node_Ptr
double * f_t_Equ_t_Node_Ptr
static void loadInstanceParameters(ParametricData< Instance > &instance_parameters)
static const int admsBRA_ID_b_bi
double * dQdxdVpVectorRawPtr
Class Configuration contains device configuration data.
static const int admsNodeID_cx
double * q_bii_Equ_bi_Node_Ptr
double * q_bii_Equ_ti_Node_Ptr
double * f_bii_Equ_bii_Node_Ptr
int li_state_admsProbeID_V_bii_ci
double * f_ei_Equ_BRA_e_ei_Var_Ptr
double * q_bii_Equ_ci_Node_Ptr
double * f_ci_Equ_bi_Node_Ptr
double * f_c_Equ_BRA_c_ci_Var_Ptr
double * q_b_Equ_c_Node_Ptr
double * f_bii_Equ_cx_Node_Ptr
static const int admsNodeID_exx
const SolverState & getSolverState() const
const JacobianStamp & jacobianStamp() const
double * f_exx_Equ_ti_Node_Ptr
double * q_b_Equ_b_Node_Ptr
double * q_b_Equ_BRA_b_bi_Var_Ptr
double * q_ti_Equ_bi_Node_Ptr
static const int admsProbeID_V_bi_ci
double * q_BRA_c_ci_Equ_BRA_c_ci_Var_Ptr
static Device * factory(const Configuration &configuration, const FactoryBlock &factory_block)
Model(const Configuration &configuration, const ModelBlock &model_block, const FactoryBlock &factory_block)
static const int admsProbeID_V_ex_bii
double * f_cx_Equ_cx_Node_Ptr
double * f_ei_Equ_bii_Node_Ptr
double * q_ei_Equ_ti_Node_Ptr
double * f_ti_Equ_ti_Node_Ptr
Linear::Vector * currStaVectorPtr
double * nextStaVectorRawPtr
double * q_BRA_b_bi_Equ_bi_Node_Ptr
Linear::Vector * daeFVectorPtr
static const int admsNodeID_ti
double * f_ex_Equ_ti_Node_Ptr
static const int admsProbeID_V_exx_bii
double * f_BRA_b_bi_Equ_bi_Node_Ptr
double * f_bii_Equ_bi_Node_Ptr
const std::string & getType() const
double * q_BRA_b_bi_Equ_b_Node_Ptr
std::vector< double > Jdxp_dynamic
static void loadModelParameters(ParametricData< Model > &model_parameters)
double * q_t_Equ_t_Node_Ptr
double * q_ei_Equ_exx_Node_Ptr
static const int admsBRA_ID_e_ei
double * q_BRA_c_ci_Equ_c_Node_Ptr
std::vector< double > probeDiffs
double * f_ei_Equ_ci_Node_Ptr
double * q_ei_Equ_BRA_e_ei_Var_Ptr
static T adms_vt(const T temp)
double * q_bii_Equ_ex_Node_Ptr
double * f_ti_Equ_ei_Node_Ptr
const ExternData & extData
double * f_bi_Equ_bii_Node_Ptr
double * f_exx_Equ_exx_Node_Ptr
ModelBlock represents a .MODEL line from the netlist.
double * f_ci_Equ_cx_Node_Ptr
static std::vector< int > jacMap
Manages parameter binding for class C.
double * q_ci_Equ_BRA_c_ci_Var_Ptr
double * q_BRA_c_ci_Equ_ci_Node_Ptr
double * f_ci_Equ_bii_Node_Ptr
static const int admsProbeID_V_ti_GND
InstanceBlock represent a device instance line from the netlist.
Instance(const Configuration &configuration, const InstanceBlock &instance_block, Model &model, const FactoryBlock &factory_block)
std::vector< Param > params
int li_state_admsProbeID_V_bi_ci
double * f_bii_Equ_ei_Node_Ptr
Linear::Matrix * dQdxMatrixPtr
double * f_BRA_e_ei_Equ_BRA_e_ei_Var_Ptr
double * f_BRA_c_ci_Equ_BRA_c_ci_Var_Ptr
double * q_c_Equ_BRA_c_ci_Var_Ptr
double * q_ei_Equ_bii_Node_Ptr
double * f_bi_Equ_ci_Node_Ptr
void registerStateLIDs(const LocalIdVector &staLIDVecRef)
double * q_bii_Equ_ei_Node_Ptr
Linear::Vector * flagSolVectorPtr
double * q_ci_Equ_ci_Node_Ptr
double * q_ex_Equ_ex_Node_Ptr
void setModParams(const std::vector< Param > ¶ms)
double * f_bii_Equ_ci_Node_Ptr
void evaluateInitialInstance(AdmsSensFadType &instancePar_Temp, bool instancePar_given_Temp, AdmsSensFadType &instancePar_L, bool instancePar_given_L, AdmsSensFadType &instancePar_W, bool instancePar_given_W, int instancePar_N, bool instancePar_given_N, AdmsSensFadType &modelPar_Temp, bool modelPar_given_Temp, AdmsSensFadType &modelPar_Rth, bool modelPar_given_Rth, AdmsSensFadType &modelPar_Cth, bool modelPar_given_Cth, AdmsSensFadType &modelPar_L, bool modelPar_given_L, AdmsSensFadType &modelPar_W, bool modelPar_given_W, AdmsSensFadType &modelPar_Jsf, bool modelPar_given_Jsf, AdmsSensFadType &modelPar_nf, bool modelPar_given_nf, AdmsSensFadType &modelPar_Vg, bool modelPar_given_Vg, AdmsSensFadType &modelPar_Jse, bool modelPar_given_Jse, AdmsSensFadType &modelPar_ne, bool modelPar_given_ne, AdmsSensFadType &modelPar_Rbxx, bool modelPar_given_Rbxx, AdmsSensFadType &modelPar_Vgb, bool modelPar_given_Vgb, AdmsSensFadType &modelPar_Jsee, bool modelPar_given_Jsee, AdmsSensFadType &modelPar_nee, bool modelPar_given_nee, AdmsSensFadType &modelPar_Rbbxx, bool modelPar_given_Rbbxx, AdmsSensFadType &modelPar_Vgbb, bool modelPar_given_Vgbb, AdmsSensFadType &modelPar_Jsr, bool modelPar_given_Jsr, AdmsSensFadType &modelPar_nr, bool modelPar_given_nr, AdmsSensFadType &modelPar_Vgr, bool modelPar_given_Vgr, AdmsSensFadType &modelPar_XCjc, bool modelPar_given_XCjc, AdmsSensFadType &modelPar_Jsc, bool modelPar_given_Jsc, AdmsSensFadType &modelPar_nc, bool modelPar_given_nc, AdmsSensFadType &modelPar_Rcxx, bool modelPar_given_Rcxx, AdmsSensFadType &modelPar_Vgc, bool modelPar_given_Vgc, AdmsSensFadType &modelPar_Bf, bool modelPar_given_Bf, AdmsSensFadType &modelPar_kBeta, bool modelPar_given_kBeta, AdmsSensFadType &modelPar_Br, bool modelPar_given_Br, AdmsSensFadType &modelPar_VAF, bool modelPar_given_VAF, AdmsSensFadType &modelPar_VAR, bool modelPar_given_VAR, AdmsSensFadType &modelPar_IKF, bool modelPar_given_IKF, AdmsSensFadType &modelPar_IKR, bool modelPar_given_IKR, AdmsSensFadType &modelPar_Mc, bool modelPar_given_Mc, AdmsSensFadType &modelPar_BVceo, bool modelPar_given_BVceo, AdmsSensFadType &modelPar_kc, bool modelPar_given_kc, AdmsSensFadType &modelPar_BVebo, bool modelPar_given_BVebo, AdmsSensFadType &modelPar_Tr, bool modelPar_given_Tr, AdmsSensFadType &modelPar_Trx, bool modelPar_given_Trx, AdmsSensFadType &modelPar_Tf, bool modelPar_given_Tf, AdmsSensFadType &modelPar_Tft, bool modelPar_given_Tft, AdmsSensFadType &modelPar_Thcs, bool modelPar_given_Thcs, AdmsSensFadType &modelPar_Ahc, bool modelPar_given_Ahc, AdmsSensFadType &modelPar_Cje, bool modelPar_given_Cje, AdmsSensFadType &modelPar_mje, bool modelPar_given_mje, AdmsSensFadType &modelPar_Vje, bool modelPar_given_Vje, AdmsSensFadType &modelPar_Cjc, bool modelPar_given_Cjc, AdmsSensFadType &modelPar_mjc, bool modelPar_given_mjc, AdmsSensFadType &modelPar_Vjc, bool modelPar_given_Vjc, AdmsSensFadType &modelPar_kjc, bool modelPar_given_kjc, AdmsSensFadType &modelPar_Cmin, bool modelPar_given_Cmin, AdmsSensFadType &modelPar_J0, bool modelPar_given_J0, AdmsSensFadType &modelPar_XJ0, bool modelPar_given_XJ0, AdmsSensFadType &modelPar_Rci0, bool modelPar_given_Rci0, AdmsSensFadType &modelPar_Jk, bool modelPar_given_Jk, AdmsSensFadType &modelPar_RJk, bool modelPar_given_RJk, AdmsSensFadType &modelPar_Vces, bool modelPar_given_Vces, AdmsSensFadType &modelPar_Rc, bool modelPar_given_Rc, AdmsSensFadType &modelPar_Re, bool modelPar_given_Re, AdmsSensFadType &modelPar_Rb, bool modelPar_given_Rb, AdmsSensFadType &modelPar_Rb2, bool modelPar_given_Rb2, AdmsSensFadType &modelPar_Lc, bool modelPar_given_Lc, AdmsSensFadType &modelPar_Le, bool modelPar_given_Le, AdmsSensFadType &modelPar_Lb, bool modelPar_given_Lb, AdmsSensFadType &modelPar_Cq, bool modelPar_given_Cq, AdmsSensFadType &modelPar_Cpb, bool modelPar_given_Cpb, AdmsSensFadType &modelPar_Cpc, bool modelPar_given_Cpc, AdmsSensFadType &modelPar_Tnom, bool modelPar_given_Tnom, int modelPar_Mode, bool modelPar_given_Mode, int modelPar_Noise, bool modelPar_given_Noise, int modelPar_Debug, bool modelPar_given_Debug, int modelPar_DebugPlus, bool modelPar_given_DebugPlus, int modelPar_N, bool modelPar_given_N, int modelPar_dtype, double admsTemperature)
double * q_ti_Equ_bii_Node_Ptr
double * f_ei_Equ_ti_Node_Ptr