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
77 namespace ADMSbjt504tva {
90 .setExpressionAccess(
NO_DOC)
93 .setDescription(
"Internal-use parameter for setting device instance temperature");
95 .setDescription(
"Multiplication factor")
96 #ifdef Xyce_ADMS_SENSITIVITIES
97 .setAnalyticSensitivityAvailable(
true)
98 .setSensitivityFunctor(&instSens)
99 #endif // Xyce_ADMS_SENSITIVITIES
114 .setExpressionAccess(
NO_DOC)
117 .setDescription(
"Internal-use parameter for setting device model temperature");
119 .setDescription(
"Model level");
122 .setDescription(
"Reference temperature")
123 #ifdef Xyce_ADMS_SENSITIVITIES
124 .setAnalyticSensitivityAvailable(
true)
125 .setSensitivityFunctor(&modSens)
126 #endif // Xyce_ADMS_SENSITIVITIES
130 .setDescription(
"Difference between the local and global ambient temperatures")
131 #ifdef Xyce_ADMS_SENSITIVITIES
132 .setAnalyticSensitivityAvailable(
true)
133 .setSensitivityFunctor(&modSens)
134 #endif // Xyce_ADMS_SENSITIVITIES
137 .setDescription(
"Flag for extended modeling of the reverse current gain");
139 .setDescription(
"Flag for the distributed high-frequency effects in transient");
141 .setDescription(
"Flag for extended modeling of avalanche currents");
143 .setDescription(
"Flag for extended modelling of substrate currents");
146 .setDescription(
"Collector-emitter saturation current")
147 #ifdef Xyce_ADMS_SENSITIVITIES
148 .setAnalyticSensitivityAvailable(
true)
149 .setSensitivityFunctor(&modSens)
150 #endif // Xyce_ADMS_SENSITIVITIES
154 .setDescription(
"Collector-emitter high injection knee current")
155 #ifdef Xyce_ADMS_SENSITIVITIES
156 .setAnalyticSensitivityAvailable(
true)
157 .setSensitivityFunctor(&modSens)
158 #endif // Xyce_ADMS_SENSITIVITIES
162 .setDescription(
"Reverse Early voltage")
163 #ifdef Xyce_ADMS_SENSITIVITIES
164 .setAnalyticSensitivityAvailable(
true)
165 .setSensitivityFunctor(&modSens)
166 #endif // Xyce_ADMS_SENSITIVITIES
170 .setDescription(
"Forward Early voltage")
171 #ifdef Xyce_ADMS_SENSITIVITIES
172 .setAnalyticSensitivityAvailable(
true)
173 .setSensitivityFunctor(&modSens)
174 #endif // Xyce_ADMS_SENSITIVITIES
177 .setDescription(
"Ideal forward current gain")
178 #ifdef Xyce_ADMS_SENSITIVITIES
179 .setAnalyticSensitivityAvailable(
true)
180 .setSensitivityFunctor(&modSens)
181 #endif // Xyce_ADMS_SENSITIVITIES
185 .setDescription(
"Saturation current of the non-ideal forward base current")
186 #ifdef Xyce_ADMS_SENSITIVITIES
187 .setAnalyticSensitivityAvailable(
true)
188 .setSensitivityFunctor(&modSens)
189 #endif // Xyce_ADMS_SENSITIVITIES
192 .setDescription(
"Non-ideality factor of the non-ideal forward base current")
193 #ifdef Xyce_ADMS_SENSITIVITIES
194 .setAnalyticSensitivityAvailable(
true)
195 .setSensitivityFunctor(&modSens)
196 #endif // Xyce_ADMS_SENSITIVITIES
199 .setDescription(
"Part of ideal base current that belongs to the sidewall")
200 #ifdef Xyce_ADMS_SENSITIVITIES
201 .setAnalyticSensitivityAvailable(
true)
202 .setSensitivityFunctor(&modSens)
203 #endif // Xyce_ADMS_SENSITIVITIES
207 .setDescription(
"Pre-factor of emitter-base Zener tunneling current")
208 #ifdef Xyce_ADMS_SENSITIVITIES
209 .setAnalyticSensitivityAvailable(
true)
210 .setSensitivityFunctor(&modSens)
211 #endif // Xyce_ADMS_SENSITIVITIES
214 .setDescription(
"Coefficient of emitter-base Zener tunneling current")
215 #ifdef Xyce_ADMS_SENSITIVITIES
216 .setAnalyticSensitivityAvailable(
true)
217 .setSensitivityFunctor(&modSens)
218 #endif // Xyce_ADMS_SENSITIVITIES
221 .setDescription(
"Ideal reverse current gain")
222 #ifdef Xyce_ADMS_SENSITIVITIES
223 .setAnalyticSensitivityAvailable(
true)
224 .setSensitivityFunctor(&modSens)
225 #endif // Xyce_ADMS_SENSITIVITIES
229 .setDescription(
"Saturation current of the non-ideal reverse base current")
230 #ifdef Xyce_ADMS_SENSITIVITIES
231 .setAnalyticSensitivityAvailable(
true)
232 .setSensitivityFunctor(&modSens)
233 #endif // Xyce_ADMS_SENSITIVITIES
237 .setDescription(
"Cross-over voltage of the non-ideal reverse base current")
238 #ifdef Xyce_ADMS_SENSITIVITIES
239 .setAnalyticSensitivityAvailable(
true)
240 .setSensitivityFunctor(&modSens)
241 #endif // Xyce_ADMS_SENSITIVITIES
244 .setDescription(
"Part of currents and charges that belong to extrinsic region")
245 #ifdef Xyce_ADMS_SENSITIVITIES
246 .setAnalyticSensitivityAvailable(
true)
247 .setSensitivityFunctor(&modSens)
248 #endif // Xyce_ADMS_SENSITIVITIES
252 .setDescription(
"Epilayer thickness used in weak-avalanche model")
253 #ifdef Xyce_ADMS_SENSITIVITIES
254 .setAnalyticSensitivityAvailable(
true)
255 .setSensitivityFunctor(&modSens)
256 #endif // Xyce_ADMS_SENSITIVITIES
260 .setDescription(
"Voltage determining curvature of avalanche current")
261 #ifdef Xyce_ADMS_SENSITIVITIES
262 .setAnalyticSensitivityAvailable(
true)
263 .setSensitivityFunctor(&modSens)
264 #endif // Xyce_ADMS_SENSITIVITIES
267 .setDescription(
"Current spreading factor of avalanche model when EXAVL=1")
268 #ifdef Xyce_ADMS_SENSITIVITIES
269 .setAnalyticSensitivityAvailable(
true)
270 .setSensitivityFunctor(&modSens)
271 #endif // Xyce_ADMS_SENSITIVITIES
275 .setDescription(
"Emitter resistance")
276 #ifdef Xyce_ADMS_SENSITIVITIES
277 .setAnalyticSensitivityAvailable(
true)
278 .setSensitivityFunctor(&modSens)
279 #endif // Xyce_ADMS_SENSITIVITIES
283 .setDescription(
"Constant part of the base resistance")
284 #ifdef Xyce_ADMS_SENSITIVITIES
285 .setAnalyticSensitivityAvailable(
true)
286 .setSensitivityFunctor(&modSens)
287 #endif // Xyce_ADMS_SENSITIVITIES
291 .setDescription(
"Zero-bias value of the variable part of the base resistance")
292 #ifdef Xyce_ADMS_SENSITIVITIES
293 .setAnalyticSensitivityAvailable(
true)
294 .setSensitivityFunctor(&modSens)
295 #endif // Xyce_ADMS_SENSITIVITIES
299 .setDescription(
"Constant part of the collector resistance")
300 #ifdef Xyce_ADMS_SENSITIVITIES
301 .setAnalyticSensitivityAvailable(
true)
302 .setSensitivityFunctor(&modSens)
303 #endif // Xyce_ADMS_SENSITIVITIES
307 .setDescription(
"Resistance of the un-modulated epilayer")
308 #ifdef Xyce_ADMS_SENSITIVITIES
309 .setAnalyticSensitivityAvailable(
true)
310 .setSensitivityFunctor(&modSens)
311 #endif // Xyce_ADMS_SENSITIVITIES
315 .setDescription(
"Space charge resistance of the epilayer")
316 #ifdef Xyce_ADMS_SENSITIVITIES
317 .setAnalyticSensitivityAvailable(
true)
318 .setSensitivityFunctor(&modSens)
319 #endif // Xyce_ADMS_SENSITIVITIES
323 .setDescription(
"Critical current for velocity saturation in the epilayer")
324 #ifdef Xyce_ADMS_SENSITIVITIES
325 .setAnalyticSensitivityAvailable(
true)
326 .setSensitivityFunctor(&modSens)
327 #endif // Xyce_ADMS_SENSITIVITIES
330 .setDescription(
"Smoothness parameter for the onset of quasi-saturation")
331 #ifdef Xyce_ADMS_SENSITIVITIES
332 .setAnalyticSensitivityAvailable(
true)
333 .setSensitivityFunctor(&modSens)
334 #endif // Xyce_ADMS_SENSITIVITIES
338 .setDescription(
"Zero-bias emitter-base depletion capacitance")
339 #ifdef Xyce_ADMS_SENSITIVITIES
340 .setAnalyticSensitivityAvailable(
true)
341 .setSensitivityFunctor(&modSens)
342 #endif // Xyce_ADMS_SENSITIVITIES
346 .setDescription(
"Emitter-base diffusion voltage")
347 #ifdef Xyce_ADMS_SENSITIVITIES
348 .setAnalyticSensitivityAvailable(
true)
349 .setSensitivityFunctor(&modSens)
350 #endif // Xyce_ADMS_SENSITIVITIES
353 .setDescription(
"Emitter-base grading coefficient")
354 #ifdef Xyce_ADMS_SENSITIVITIES
355 .setAnalyticSensitivityAvailable(
true)
356 .setSensitivityFunctor(&modSens)
357 #endif // Xyce_ADMS_SENSITIVITIES
360 .setDescription(
"Sidewall fraction of the emitter-base depletion capacitance")
361 #ifdef Xyce_ADMS_SENSITIVITIES
362 .setAnalyticSensitivityAvailable(
true)
363 .setSensitivityFunctor(&modSens)
364 #endif // Xyce_ADMS_SENSITIVITIES
367 .setDescription(
"Emitter-base overlap capacitance")
368 #ifdef Xyce_ADMS_SENSITIVITIES
369 .setAnalyticSensitivityAvailable(
true)
370 .setSensitivityFunctor(&modSens)
371 #endif // Xyce_ADMS_SENSITIVITIES
375 .setDescription(
"Zero-bias collector-base depletion capacitance")
376 #ifdef Xyce_ADMS_SENSITIVITIES
377 .setAnalyticSensitivityAvailable(
true)
378 .setSensitivityFunctor(&modSens)
379 #endif // Xyce_ADMS_SENSITIVITIES
383 .setDescription(
"Collector-base diffusion voltage")
384 #ifdef Xyce_ADMS_SENSITIVITIES
385 .setAnalyticSensitivityAvailable(
true)
386 .setSensitivityFunctor(&modSens)
387 #endif // Xyce_ADMS_SENSITIVITIES
390 .setDescription(
"Collector-base grading coefficient")
391 #ifdef Xyce_ADMS_SENSITIVITIES
392 .setAnalyticSensitivityAvailable(
true)
393 .setSensitivityFunctor(&modSens)
394 #endif // Xyce_ADMS_SENSITIVITIES
397 .setDescription(
"Constant part of Cjc")
398 #ifdef Xyce_ADMS_SENSITIVITIES
399 .setAnalyticSensitivityAvailable(
true)
400 .setSensitivityFunctor(&modSens)
401 #endif // Xyce_ADMS_SENSITIVITIES
404 .setDescription(
"Coefficient for current modulation of CB depletion capacitance")
405 #ifdef Xyce_ADMS_SENSITIVITIES
406 .setAnalyticSensitivityAvailable(
true)
407 .setSensitivityFunctor(&modSens)
408 #endif // Xyce_ADMS_SENSITIVITIES
411 .setDescription(
"Fraction of CB depletion capacitance under the emitter")
412 #ifdef Xyce_ADMS_SENSITIVITIES
413 .setAnalyticSensitivityAvailable(
true)
414 .setSensitivityFunctor(&modSens)
415 #endif // Xyce_ADMS_SENSITIVITIES
419 .setDescription(
"Resistance Collector Buried Layer eXtrinsic")
420 #ifdef Xyce_ADMS_SENSITIVITIES
421 .setAnalyticSensitivityAvailable(
true)
422 .setSensitivityFunctor(&modSens)
423 #endif // Xyce_ADMS_SENSITIVITIES
427 .setDescription(
"Resistance Collector Buried Layer Intrinsic")
428 #ifdef Xyce_ADMS_SENSITIVITIES
429 .setAnalyticSensitivityAvailable(
true)
430 .setSensitivityFunctor(&modSens)
431 #endif // Xyce_ADMS_SENSITIVITIES
434 .setDescription(
"Collector-base overlap capacitance")
435 #ifdef Xyce_ADMS_SENSITIVITIES
436 .setAnalyticSensitivityAvailable(
true)
437 .setSensitivityFunctor(&modSens)
438 #endif // Xyce_ADMS_SENSITIVITIES
441 .setDescription(
"Non-ideality factor of the emitter stored charge")
442 #ifdef Xyce_ADMS_SENSITIVITIES
443 .setAnalyticSensitivityAvailable(
true)
444 .setSensitivityFunctor(&modSens)
445 #endif // Xyce_ADMS_SENSITIVITIES
449 .setDescription(
"Minimum transit time of stored emitter charge")
450 #ifdef Xyce_ADMS_SENSITIVITIES
451 .setAnalyticSensitivityAvailable(
true)
452 .setSensitivityFunctor(&modSens)
453 #endif // Xyce_ADMS_SENSITIVITIES
457 .setDescription(
"Transit time of stored base sharge")
458 #ifdef Xyce_ADMS_SENSITIVITIES
459 .setAnalyticSensitivityAvailable(
true)
460 .setSensitivityFunctor(&modSens)
461 #endif // Xyce_ADMS_SENSITIVITIES
465 .setDescription(
"Transit time of stored epilayer charge")
466 #ifdef Xyce_ADMS_SENSITIVITIES
467 .setAnalyticSensitivityAvailable(
true)
468 .setSensitivityFunctor(&modSens)
469 #endif // Xyce_ADMS_SENSITIVITIES
473 .setDescription(
"Transit time of reverse extrinsic stored base charge")
474 #ifdef Xyce_ADMS_SENSITIVITIES
475 .setAnalyticSensitivityAvailable(
true)
476 .setSensitivityFunctor(&modSens)
477 #endif // Xyce_ADMS_SENSITIVITIES
481 .setDescription(
"Bandgap difference over the base")
482 #ifdef Xyce_ADMS_SENSITIVITIES
483 .setAnalyticSensitivityAvailable(
true)
484 .setSensitivityFunctor(&modSens)
485 #endif // Xyce_ADMS_SENSITIVITIES
488 .setDescription(
"Pre-factor of the recombination part of Ib1")
489 #ifdef Xyce_ADMS_SENSITIVITIES
490 .setAnalyticSensitivityAvailable(
true)
491 .setSensitivityFunctor(&modSens)
492 #endif // Xyce_ADMS_SENSITIVITIES
495 .setDescription(
"Temperature coefficient of the zero-bias base charge")
496 #ifdef Xyce_ADMS_SENSITIVITIES
497 .setAnalyticSensitivityAvailable(
true)
498 .setSensitivityFunctor(&modSens)
499 #endif // Xyce_ADMS_SENSITIVITIES
502 .setDescription(
"Temperature coefficient of the resistivity of the emitter")
503 #ifdef Xyce_ADMS_SENSITIVITIES
504 .setAnalyticSensitivityAvailable(
true)
505 .setSensitivityFunctor(&modSens)
506 #endif // Xyce_ADMS_SENSITIVITIES
509 .setDescription(
"Temperature coefficient of the resistivity of the base")
510 #ifdef Xyce_ADMS_SENSITIVITIES
511 .setAnalyticSensitivityAvailable(
true)
512 .setSensitivityFunctor(&modSens)
513 #endif // Xyce_ADMS_SENSITIVITIES
516 .setDescription(
"Temperature coefficient of the resistivity of the epilayer")
517 #ifdef Xyce_ADMS_SENSITIVITIES
518 .setAnalyticSensitivityAvailable(
true)
519 .setSensitivityFunctor(&modSens)
520 #endif // Xyce_ADMS_SENSITIVITIES
523 .setDescription(
"Temperature coefficient of the resistivity of the extrinsic base")
524 #ifdef Xyce_ADMS_SENSITIVITIES
525 .setAnalyticSensitivityAvailable(
true)
526 .setSensitivityFunctor(&modSens)
527 #endif // Xyce_ADMS_SENSITIVITIES
530 .setDescription(
"Temperature coefficient of the resistivity of the collector contact")
531 #ifdef Xyce_ADMS_SENSITIVITIES
532 .setAnalyticSensitivityAvailable(
true)
533 .setSensitivityFunctor(&modSens)
534 #endif // Xyce_ADMS_SENSITIVITIES
537 .setDescription(
"Temperature coefficient of the resistivity of the collector buried layer")
538 #ifdef Xyce_ADMS_SENSITIVITIES
539 .setAnalyticSensitivityAvailable(
true)
540 .setSensitivityFunctor(&modSens)
541 #endif // Xyce_ADMS_SENSITIVITIES
545 .setDescription(
"Band-gap voltage difference of the forward current gain")
546 #ifdef Xyce_ADMS_SENSITIVITIES
547 .setAnalyticSensitivityAvailable(
true)
548 .setSensitivityFunctor(&modSens)
549 #endif // Xyce_ADMS_SENSITIVITIES
553 .setDescription(
"Band-gap voltage difference of the reverse current gain")
554 #ifdef Xyce_ADMS_SENSITIVITIES
555 .setAnalyticSensitivityAvailable(
true)
556 .setSensitivityFunctor(&modSens)
557 #endif // Xyce_ADMS_SENSITIVITIES
561 .setDescription(
"Band-gap voltage of the base")
562 #ifdef Xyce_ADMS_SENSITIVITIES
563 .setAnalyticSensitivityAvailable(
true)
564 .setSensitivityFunctor(&modSens)
565 #endif // Xyce_ADMS_SENSITIVITIES
569 .setDescription(
"Band-gap voltage of the collector")
570 #ifdef Xyce_ADMS_SENSITIVITIES
571 .setAnalyticSensitivityAvailable(
true)
572 .setSensitivityFunctor(&modSens)
573 #endif // Xyce_ADMS_SENSITIVITIES
577 .setDescription(
"Band-gap voltage recombination emitter-base junction")
578 #ifdef Xyce_ADMS_SENSITIVITIES
579 .setAnalyticSensitivityAvailable(
true)
580 .setSensitivityFunctor(&modSens)
581 #endif // Xyce_ADMS_SENSITIVITIES
585 .setDescription(
"Band-gap voltage at Tref of Zener effect emitter-base junction")
586 #ifdef Xyce_ADMS_SENSITIVITIES
587 .setAnalyticSensitivityAvailable(
true)
588 .setSensitivityFunctor(&modSens)
589 #endif // Xyce_ADMS_SENSITIVITIES
593 .setDescription(
"Temperature coefficient band-gap voltage for Zener effect emitter-base junction")
594 #ifdef Xyce_ADMS_SENSITIVITIES
595 .setAnalyticSensitivityAvailable(
true)
596 .setSensitivityFunctor(&modSens)
597 #endif // Xyce_ADMS_SENSITIVITIES
601 .setDescription(
"Temperature coefficient band-gap voltage for Zener effect emitter-base junction")
602 #ifdef Xyce_ADMS_SENSITIVITIES
603 .setAnalyticSensitivityAvailable(
true)
604 .setSensitivityFunctor(&modSens)
605 #endif // Xyce_ADMS_SENSITIVITIES
609 .setDescription(
"Band-gap voltage difference of emitter stored charge")
610 #ifdef Xyce_ADMS_SENSITIVITIES
611 .setAnalyticSensitivityAvailable(
true)
612 .setSensitivityFunctor(&modSens)
613 #endif // Xyce_ADMS_SENSITIVITIES
616 .setDescription(
"Fine tuning of temperature dependence of C-E saturation current")
617 #ifdef Xyce_ADMS_SENSITIVITIES
618 .setAnalyticSensitivityAvailable(
true)
619 .setSensitivityFunctor(&modSens)
620 #endif // Xyce_ADMS_SENSITIVITIES
623 .setDescription(
"Exponent of the Flicker-noise")
624 #ifdef Xyce_ADMS_SENSITIVITIES
625 .setAnalyticSensitivityAvailable(
true)
626 .setSensitivityFunctor(&modSens)
627 #endif // Xyce_ADMS_SENSITIVITIES
630 .setDescription(
"Flicker-noise coefficient of the ideal base current")
631 #ifdef Xyce_ADMS_SENSITIVITIES
632 .setAnalyticSensitivityAvailable(
true)
633 .setSensitivityFunctor(&modSens)
634 #endif // Xyce_ADMS_SENSITIVITIES
637 .setDescription(
"Flicker-noise coefficient of the non-ideal base current")
638 #ifdef Xyce_ADMS_SENSITIVITIES
639 .setAnalyticSensitivityAvailable(
true)
640 .setSensitivityFunctor(&modSens)
641 #endif // Xyce_ADMS_SENSITIVITIES
644 .setDescription(
"Switch for white noise contribution due to avalanche");
647 .setDescription(
"Base-substrate saturation current")
648 #ifdef Xyce_ADMS_SENSITIVITIES
649 .setAnalyticSensitivityAvailable(
true)
650 .setSensitivityFunctor(&modSens)
651 #endif // Xyce_ADMS_SENSITIVITIES
655 .setDescription(
"Collector-substrate ideal saturation current")
656 #ifdef Xyce_ADMS_SENSITIVITIES
657 .setAnalyticSensitivityAvailable(
true)
658 .setSensitivityFunctor(&modSens)
659 #endif // Xyce_ADMS_SENSITIVITIES
663 .setDescription(
"Base-substrate high injection knee current")
664 #ifdef Xyce_ADMS_SENSITIVITIES
665 .setAnalyticSensitivityAvailable(
true)
666 .setSensitivityFunctor(&modSens)
667 #endif // Xyce_ADMS_SENSITIVITIES
671 .setDescription(
"Zero-bias collector-substrate depletion capacitance")
672 #ifdef Xyce_ADMS_SENSITIVITIES
673 .setAnalyticSensitivityAvailable(
true)
674 .setSensitivityFunctor(&modSens)
675 #endif // Xyce_ADMS_SENSITIVITIES
679 .setDescription(
"Collector-substrate diffusion voltage")
680 #ifdef Xyce_ADMS_SENSITIVITIES
681 .setAnalyticSensitivityAvailable(
true)
682 .setSensitivityFunctor(&modSens)
683 #endif // Xyce_ADMS_SENSITIVITIES
686 .setDescription(
"Collector-substrate grading coefficient")
687 #ifdef Xyce_ADMS_SENSITIVITIES
688 .setAnalyticSensitivityAvailable(
true)
689 .setSensitivityFunctor(&modSens)
690 #endif // Xyce_ADMS_SENSITIVITIES
694 .setDescription(
"band-gap voltage of the substrate")
695 #ifdef Xyce_ADMS_SENSITIVITIES
696 .setAnalyticSensitivityAvailable(
true)
697 .setSensitivityFunctor(&modSens)
698 #endif // Xyce_ADMS_SENSITIVITIES
701 .setDescription(
"Substrate temperature coefficient")
702 #ifdef Xyce_ADMS_SENSITIVITIES
703 .setAnalyticSensitivityAvailable(
true)
704 .setSensitivityFunctor(&modSens)
705 #endif // Xyce_ADMS_SENSITIVITIES
708 .setDescription(
"Temperature coefficient for mobility of minorities in the substrate")
709 #ifdef Xyce_ADMS_SENSITIVITIES
710 .setAnalyticSensitivityAvailable(
true)
711 .setSensitivityFunctor(&modSens)
712 #endif // Xyce_ADMS_SENSITIVITIES
715 .setDescription(
"Thermal resistance")
716 #ifdef Xyce_ADMS_SENSITIVITIES
717 .setAnalyticSensitivityAvailable(
true)
718 .setSensitivityFunctor(&modSens)
719 #endif // Xyce_ADMS_SENSITIVITIES
722 .setDescription(
"Thermal capacitance")
723 #ifdef Xyce_ADMS_SENSITIVITIES
724 .setAnalyticSensitivityAvailable(
true)
725 .setSensitivityFunctor(&modSens)
726 #endif // Xyce_ADMS_SENSITIVITIES
729 .setDescription(
"Temperature coefficient of the thermal resistance")
730 #ifdef Xyce_ADMS_SENSITIVITIES
731 .setAnalyticSensitivityAvailable(
true)
732 .setSensitivityFunctor(&modSens)
733 #endif // Xyce_ADMS_SENSITIVITIES
736 .setDescription(
"Multiplication factor")
737 #ifdef Xyce_ADMS_SENSITIVITIES
738 .setAnalyticSensitivityAvailable(
true)
739 .setSensitivityFunctor(&modSens)
740 #endif // Xyce_ADMS_SENSITIVITIES
743 .setDescription(
"Flag for NPN (1) or PNP (-1) transistor type");
745 .setDescription(
"Minimum conductance")
746 #ifdef Xyce_ADMS_SENSITIVITIES
747 .setAnalyticSensitivityAvailable(
true)
748 .setSensitivityFunctor(&modSens)
749 #endif // Xyce_ADMS_SENSITIVITIES
768 if (!(
given(
"MULT")))
783 if ( (!((
MULT >0.0))) )
785 UserError0(*
this) <<
"ADMSbjt504tva: Parameter MULT value " <<
MULT <<
" out of range ] 0.0, (+inf) [";
816 :
DeviceInstance(instance_block, configuration.getInstanceParameters(), factory_block),
855 f_c1_Equ_c1_Node_Ptr(0),
856 f_c1_Equ_c2_Node_Ptr(0),
857 f_c2_Equ_c1_Node_Ptr(0),
858 f_c2_Equ_c2_Node_Ptr(0),
859 f_c1_Equ_b2_Node_Ptr(0),
860 f_c2_Equ_b2_Node_Ptr(0),
861 f_c1_Equ_dt_Node_Ptr(0),
862 f_c2_Equ_dt_Node_Ptr(0),
863 f_e1_Equ_c1_Node_Ptr(0),
864 f_e1_Equ_c2_Node_Ptr(0),
865 f_e1_Equ_b2_Node_Ptr(0),
866 f_c2_Equ_e1_Node_Ptr(0),
867 f_e1_Equ_e1_Node_Ptr(0),
868 f_e1_Equ_dt_Node_Ptr(0),
869 f_b1_Equ_b1_Node_Ptr(0),
870 f_b1_Equ_e1_Node_Ptr(0),
871 f_e1_Equ_b1_Node_Ptr(0),
872 f_b1_Equ_dt_Node_Ptr(0),
873 f_b2_Equ_b2_Node_Ptr(0),
874 f_b2_Equ_e1_Node_Ptr(0),
875 f_b2_Equ_dt_Node_Ptr(0),
876 f_b2_Equ_c1_Node_Ptr(0),
877 f_b2_Equ_c2_Node_Ptr(0),
878 f_b1_Equ_s_Node_Ptr(0),
879 f_b1_Equ_c1_Node_Ptr(0),
880 f_s_Equ_s_Node_Ptr(0),
881 f_s_Equ_c1_Node_Ptr(0),
882 f_b1_Equ_c4_Node_Ptr(0),
883 f_s_Equ_c4_Node_Ptr(0),
884 f_b1_Equ_c2_Node_Ptr(0),
885 f_s_Equ_c2_Node_Ptr(0),
886 f_b1_Equ_b2_Node_Ptr(0),
887 f_s_Equ_b2_Node_Ptr(0),
888 f_s_Equ_b1_Node_Ptr(0),
889 f_s_Equ_dt_Node_Ptr(0),
890 f_b_Equ_s_Node_Ptr(0),
891 f_b_Equ_c1_Node_Ptr(0),
892 f_b_Equ_c2_Node_Ptr(0),
893 f_b_Equ_b2_Node_Ptr(0),
894 f_b_Equ_e1_Node_Ptr(0),
895 f_s_Equ_e1_Node_Ptr(0),
896 f_b_Equ_c3_Node_Ptr(0),
897 f_b_Equ_c4_Node_Ptr(0),
898 f_s_Equ_c3_Node_Ptr(0),
899 f_b_Equ_b1_Node_Ptr(0),
900 f_b_Equ_b_Node_Ptr(0),
901 f_s_Equ_b_Node_Ptr(0),
902 f_b_Equ_c_Node_Ptr(0),
903 f_s_Equ_c_Node_Ptr(0),
904 f_b_Equ_dt_Node_Ptr(0),
905 f_c1_Equ_s_Node_Ptr(0),
906 f_b1_Equ_c3_Node_Ptr(0),
907 f_b2_Equ_c3_Node_Ptr(0),
908 f_b2_Equ_c4_Node_Ptr(0),
909 f_b1_Equ_b_Node_Ptr(0),
910 f_b2_Equ_b_Node_Ptr(0),
911 f_b2_Equ_b1_Node_Ptr(0),
912 f_b1_Equ_c_Node_Ptr(0),
913 f_b2_Equ_c_Node_Ptr(0),
914 f_c2_Equ_c3_Node_Ptr(0),
915 f_c2_Equ_c4_Node_Ptr(0),
916 f_c2_Equ_b1_Node_Ptr(0),
917 f_c2_Equ_b_Node_Ptr(0),
918 f_c2_Equ_c_Node_Ptr(0),
919 f_e_Equ_dt_Node_Ptr(0),
920 f_e_Equ_e_Node_Ptr(0),
921 f_e_Equ_e1_Node_Ptr(0),
922 f_e1_Equ_e_Node_Ptr(0),
923 f_dt_Equ_dt_Node_Ptr(0),
924 f_dt_Equ_s_Node_Ptr(0),
925 f_dt_Equ_c1_Node_Ptr(0),
926 f_dt_Equ_b1_Node_Ptr(0),
927 f_dt_Equ_e1_Node_Ptr(0),
928 f_dt_Equ_e_Node_Ptr(0),
929 f_dt_Equ_c3_Node_Ptr(0),
930 f_dt_Equ_c4_Node_Ptr(0),
931 f_dt_Equ_b2_Node_Ptr(0),
932 f_dt_Equ_b_Node_Ptr(0),
933 f_dt_Equ_c_Node_Ptr(0),
934 f_dt_Equ_c2_Node_Ptr(0),
935 f_noi_Equ_noi_Node_Ptr(0),
936 f_noi_Equ_e1_Node_Ptr(0),
937 f_e1_Equ_noi_Node_Ptr(0),
938 f_b2_Equ_noi_Node_Ptr(0),
939 f_c2_Equ_noi_Node_Ptr(0),
940 f_e1_Equ_c3_Node_Ptr(0),
941 f_e1_Equ_c4_Node_Ptr(0),
942 f_e1_Equ_b_Node_Ptr(0),
943 f_e1_Equ_c_Node_Ptr(0),
944 f_b_Equ_e_Node_Ptr(0),
945 f_e_Equ_b_Node_Ptr(0),
946 f_c_Equ_b_Node_Ptr(0),
947 f_c_Equ_c_Node_Ptr(0),
948 f_c3_Equ_s_Node_Ptr(0),
949 f_c3_Equ_c1_Node_Ptr(0),
950 f_c3_Equ_c2_Node_Ptr(0),
951 f_c3_Equ_b2_Node_Ptr(0),
952 f_c3_Equ_e1_Node_Ptr(0),
953 f_c3_Equ_c3_Node_Ptr(0),
954 f_c3_Equ_c4_Node_Ptr(0),
955 f_c3_Equ_b1_Node_Ptr(0),
956 f_c3_Equ_b_Node_Ptr(0),
957 f_c3_Equ_c_Node_Ptr(0),
958 f_c3_Equ_dt_Node_Ptr(0),
959 f_c_Equ_dt_Node_Ptr(0),
960 f_c_Equ_c3_Node_Ptr(0),
961 f_c_Equ_c4_Node_Ptr(0),
962 f_c_Equ_c1_Node_Ptr(0),
963 f_c_Equ_c2_Node_Ptr(0),
964 f_c_Equ_b2_Node_Ptr(0),
965 f_c_Equ_b1_Node_Ptr(0),
966 f_c4_Equ_dt_Node_Ptr(0),
967 f_c4_Equ_c4_Node_Ptr(0),
968 f_c4_Equ_c1_Node_Ptr(0),
969 f_c1_Equ_c4_Node_Ptr(0),
970 f_c4_Equ_b2_Node_Ptr(0),
971 f_c4_Equ_e1_Node_Ptr(0),
972 f_c4_Equ_c2_Node_Ptr(0),
973 f_c4_Equ_b1_Node_Ptr(0),
974 f_c4_Equ_c3_Node_Ptr(0),
975 f_c1_Equ_e1_Node_Ptr(0),
976 f_c1_Equ_b1_Node_Ptr(0),
977 f_c1_Equ_c3_Node_Ptr(0),
978 f_c4_Equ_s_Node_Ptr(0),
979 f_c4_Equ_b_Node_Ptr(0),
980 f_c4_Equ_c_Node_Ptr(0),
981 f_c1_Equ_b_Node_Ptr(0),
982 f_c1_Equ_c_Node_Ptr(0),
983 f_noi_Equ_b2_Node_Ptr(0),
984 f_noi_Equ_c1_Node_Ptr(0),
985 f_noi_Equ_c2_Node_Ptr(0),
986 f_noi_Equ_dt_Node_Ptr(0),
987 q_c1_Equ_c1_Node_Ptr(0),
988 q_c1_Equ_c2_Node_Ptr(0),
989 q_c2_Equ_c1_Node_Ptr(0),
990 q_c2_Equ_c2_Node_Ptr(0),
991 q_c1_Equ_b2_Node_Ptr(0),
992 q_c2_Equ_b2_Node_Ptr(0),
993 q_c1_Equ_dt_Node_Ptr(0),
994 q_c2_Equ_dt_Node_Ptr(0),
995 q_e1_Equ_c1_Node_Ptr(0),
996 q_e1_Equ_c2_Node_Ptr(0),
997 q_e1_Equ_b2_Node_Ptr(0),
998 q_c2_Equ_e1_Node_Ptr(0),
999 q_e1_Equ_e1_Node_Ptr(0),
1000 q_e1_Equ_dt_Node_Ptr(0),
1001 q_b1_Equ_b1_Node_Ptr(0),
1002 q_b1_Equ_e1_Node_Ptr(0),
1003 q_e1_Equ_b1_Node_Ptr(0),
1004 q_b1_Equ_dt_Node_Ptr(0),
1005 q_b2_Equ_b2_Node_Ptr(0),
1006 q_b2_Equ_e1_Node_Ptr(0),
1007 q_b2_Equ_dt_Node_Ptr(0),
1008 q_b2_Equ_c1_Node_Ptr(0),
1009 q_b2_Equ_c2_Node_Ptr(0),
1010 q_b1_Equ_s_Node_Ptr(0),
1011 q_b1_Equ_c1_Node_Ptr(0),
1012 q_s_Equ_s_Node_Ptr(0),
1013 q_s_Equ_c1_Node_Ptr(0),
1014 q_b1_Equ_c4_Node_Ptr(0),
1015 q_s_Equ_c4_Node_Ptr(0),
1016 q_b1_Equ_c2_Node_Ptr(0),
1017 q_s_Equ_c2_Node_Ptr(0),
1018 q_b1_Equ_b2_Node_Ptr(0),
1019 q_s_Equ_b2_Node_Ptr(0),
1020 q_s_Equ_b1_Node_Ptr(0),
1021 q_s_Equ_dt_Node_Ptr(0),
1022 q_b_Equ_s_Node_Ptr(0),
1023 q_b_Equ_c1_Node_Ptr(0),
1024 q_b_Equ_c2_Node_Ptr(0),
1025 q_b_Equ_b2_Node_Ptr(0),
1026 q_b_Equ_e1_Node_Ptr(0),
1027 q_s_Equ_e1_Node_Ptr(0),
1028 q_b_Equ_c3_Node_Ptr(0),
1029 q_b_Equ_c4_Node_Ptr(0),
1030 q_s_Equ_c3_Node_Ptr(0),
1031 q_b_Equ_b1_Node_Ptr(0),
1032 q_b_Equ_b_Node_Ptr(0),
1033 q_s_Equ_b_Node_Ptr(0),
1034 q_b_Equ_c_Node_Ptr(0),
1035 q_s_Equ_c_Node_Ptr(0),
1036 q_b_Equ_dt_Node_Ptr(0),
1037 q_c1_Equ_s_Node_Ptr(0),
1038 q_b1_Equ_c3_Node_Ptr(0),
1039 q_b2_Equ_c3_Node_Ptr(0),
1040 q_b2_Equ_c4_Node_Ptr(0),
1041 q_b1_Equ_b_Node_Ptr(0),
1042 q_b2_Equ_b_Node_Ptr(0),
1043 q_b2_Equ_b1_Node_Ptr(0),
1044 q_b1_Equ_c_Node_Ptr(0),
1045 q_b2_Equ_c_Node_Ptr(0),
1046 q_c2_Equ_c3_Node_Ptr(0),
1047 q_c2_Equ_c4_Node_Ptr(0),
1048 q_c2_Equ_b1_Node_Ptr(0),
1049 q_c2_Equ_b_Node_Ptr(0),
1050 q_c2_Equ_c_Node_Ptr(0),
1051 q_e_Equ_dt_Node_Ptr(0),
1052 q_e_Equ_e_Node_Ptr(0),
1053 q_e_Equ_e1_Node_Ptr(0),
1054 q_e1_Equ_e_Node_Ptr(0),
1055 q_dt_Equ_dt_Node_Ptr(0),
1056 q_dt_Equ_s_Node_Ptr(0),
1057 q_dt_Equ_c1_Node_Ptr(0),
1058 q_dt_Equ_b1_Node_Ptr(0),
1059 q_dt_Equ_e1_Node_Ptr(0),
1060 q_dt_Equ_e_Node_Ptr(0),
1061 q_dt_Equ_c3_Node_Ptr(0),
1062 q_dt_Equ_c4_Node_Ptr(0),
1063 q_dt_Equ_b2_Node_Ptr(0),
1064 q_dt_Equ_b_Node_Ptr(0),
1065 q_dt_Equ_c_Node_Ptr(0),
1066 q_dt_Equ_c2_Node_Ptr(0),
1067 q_noi_Equ_noi_Node_Ptr(0),
1068 q_noi_Equ_e1_Node_Ptr(0),
1069 q_e1_Equ_noi_Node_Ptr(0),
1070 q_b2_Equ_noi_Node_Ptr(0),
1071 q_c2_Equ_noi_Node_Ptr(0),
1072 q_e1_Equ_c3_Node_Ptr(0),
1073 q_e1_Equ_c4_Node_Ptr(0),
1074 q_e1_Equ_b_Node_Ptr(0),
1075 q_e1_Equ_c_Node_Ptr(0),
1076 q_b_Equ_e_Node_Ptr(0),
1077 q_e_Equ_b_Node_Ptr(0),
1078 q_c_Equ_b_Node_Ptr(0),
1079 q_c_Equ_c_Node_Ptr(0),
1080 q_c3_Equ_s_Node_Ptr(0),
1081 q_c3_Equ_c1_Node_Ptr(0),
1082 q_c3_Equ_c2_Node_Ptr(0),
1083 q_c3_Equ_b2_Node_Ptr(0),
1084 q_c3_Equ_e1_Node_Ptr(0),
1085 q_c3_Equ_c3_Node_Ptr(0),
1086 q_c3_Equ_c4_Node_Ptr(0),
1087 q_c3_Equ_b1_Node_Ptr(0),
1088 q_c3_Equ_b_Node_Ptr(0),
1089 q_c3_Equ_c_Node_Ptr(0),
1090 q_c3_Equ_dt_Node_Ptr(0),
1091 q_c_Equ_dt_Node_Ptr(0),
1092 q_c_Equ_c3_Node_Ptr(0),
1093 q_c_Equ_c4_Node_Ptr(0),
1094 q_c_Equ_c1_Node_Ptr(0),
1095 q_c_Equ_c2_Node_Ptr(0),
1096 q_c_Equ_b2_Node_Ptr(0),
1097 q_c_Equ_b1_Node_Ptr(0),
1098 q_c4_Equ_dt_Node_Ptr(0),
1099 q_c4_Equ_c4_Node_Ptr(0),
1100 q_c4_Equ_c1_Node_Ptr(0),
1101 q_c1_Equ_c4_Node_Ptr(0),
1102 q_c4_Equ_b2_Node_Ptr(0),
1103 q_c4_Equ_e1_Node_Ptr(0),
1104 q_c4_Equ_c2_Node_Ptr(0),
1105 q_c4_Equ_b1_Node_Ptr(0),
1106 q_c4_Equ_c3_Node_Ptr(0),
1107 q_c1_Equ_e1_Node_Ptr(0),
1108 q_c1_Equ_b1_Node_Ptr(0),
1109 q_c1_Equ_c3_Node_Ptr(0),
1110 q_c4_Equ_s_Node_Ptr(0),
1111 q_c4_Equ_b_Node_Ptr(0),
1112 q_c4_Equ_c_Node_Ptr(0),
1113 q_c1_Equ_b_Node_Ptr(0),
1114 q_c1_Equ_c_Node_Ptr(0),
1115 q_noi_Equ_b2_Node_Ptr(0),
1116 q_noi_Equ_c1_Node_Ptr(0),
1117 q_noi_Equ_c2_Node_Ptr(0),
1118 q_noi_Equ_dt_Node_Ptr(0),
1119 admsTemperature(getDeviceOptions().temp.getImmutableValue<double>())
1292 for (
int i=0;i<mapSize;++i)
1297 for (
int j=0;j<rowSize;++j)
1310 if (!
given(
"XYCEADMSINSTTEMP"))
1364 std::vector< std::vector<int> > tempStamp;
1365 std::vector<int> tempMap;
1366 std::vector< std::vector<int> > tempMap2;
1368 int OriginalSize =
jacMap.size();
1378 tempStamp.clear(); tempMap.clear(); tempMap2.clear();
1380 tempStamp, tempMap, tempMap2,
1389 tempStamp.clear(); tempMap.clear(); tempMap2.clear();
1391 tempStamp, tempMap, tempMap2,
1426 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS))
1428 Xyce::dout() << std::endl << section_divider << std::endl
1429 <<
"In ADMSbjt504tva::Instance::register LIDs\n\n"
1430 <<
"name = " <<
getName() << std::endl
1431 <<
"number of internal variables: " <<
numIntVars << std::endl
1432 <<
"number of external variables: " <<
numExtVars << std::endl;
1442 li_c = extLIDVecRef[i++];
1443 li_b = extLIDVecRef[i++];
1444 li_e = extLIDVecRef[i++];
1445 li_s = extLIDVecRef[i++];
1446 li_dt = extLIDVecRef[i++];
1450 li_e1 = intLIDVecRef[i++];
1451 li_b1 = intLIDVecRef[i++];
1452 li_b2 = intLIDVecRef[i++];
1453 li_c3 = intLIDVecRef[i++];
1455 li_c4 = intLIDVecRef[i++];
1458 li_c2 = intLIDVecRef[i++];
1460 li_c1 = intLIDVecRef[i++];
1463 li_noi = intLIDVecRef[i++];
1466 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS))
1468 Xyce::dout() <<
"\nSolution and RHS variables:\n";
1469 Xyce::dout() <<
"\nli_c = " <<
li_c << std::endl;
1470 Xyce::dout() <<
"\nli_b = " <<
li_b << std::endl;
1471 Xyce::dout() <<
"\nli_e = " <<
li_e << std::endl;
1472 Xyce::dout() <<
"\nli_s = " <<
li_s << std::endl;
1473 Xyce::dout() <<
"\nli_dt = " <<
li_dt << std::endl;
1474 Xyce::dout() <<
"\nli_e1 = " <<
li_e1 << std::endl;
1475 Xyce::dout() <<
"\nli_b1 = " <<
li_b1 << std::endl;
1476 Xyce::dout() <<
"\nli_b2 = " <<
li_b2 << std::endl;
1477 Xyce::dout() <<
"\nli_c3 = " <<
li_c3 << std::endl;
1478 Xyce::dout() <<
"\nli_c4 = " <<
li_c4 << std::endl;
1479 Xyce::dout() <<
"\nli_c2 = " <<
li_c2 << std::endl;
1480 Xyce::dout() <<
"\nli_c1 = " <<
li_c1 << std::endl;
1481 Xyce::dout() <<
"\nli_noi = " <<
li_noi << std::endl;
1483 Xyce::dout() <<
"\nEnd of ADMSbjt504tva::Instance::register LIDs\n";
1484 Xyce::dout() << section_divider << std::endl;
1526 int numSta = staLIDVecRef.size();
1564 std::vector<int> & map=
jacMap;
1565 std::vector< std::vector<int> > & map2=
jacMap2;
1962 bool bsuccess =
true;
1992 bool bsuccess =
true;
2014 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2016 Xyce::dout() << std::endl << subsection_divider << std::endl;
2017 Xyce::dout() <<
" In ADMSbjt504tva::Instance::updateIntermediateVars\n\n";
2018 Xyce::dout() <<
" name = " <<
getName() << std::endl;
2032 double exponentFBC1fB2;
2285 double inv_VGZEB_Tr;
2300 double Vb1b2_orig,Vb1b2_limited,Vb1b2_old;
2301 double Vb1e1_orig,Vb1e1_limited,Vb1e1_old;
2302 double Vb2c2_orig,Vb2c2_limited,Vb2c2_old;
2303 double Vb2c1_orig,Vb2c1_limited,Vb2c1_old;
2319 for (
int i=0; i < 13+0 ; ++i)
2327 for (
int i=0; i < 16 ; ++i)
2412 Vb1b2_old = Vb1b2_limited;
2413 Vb1e1_old = Vb1e1_limited;
2414 Vb2c2_old = Vb2c2_limited;
2415 Vb2c1_old = Vb2c1_limited;
2441 invMULT = (1.0/
MULT);
2445 pow2_2mPE = pow(2.0,(2.0-(
model_.
PE)));
2446 pow2_PEm2 = (1.0/pow2_2mPE);
2455 VGZEBOK = (0.05+(0.1*log((1.0+exp(dxa)))));
2464 inv_VGZEB_Tr = (1.0/VGZEB_Tr);
2469 Tki = (-log((1.0-Tki)));
2477 Vdt = (200.0+log((1.0+(Tki-200.0))));
2483 Vt = (8.61708691805812512584e-5*
Tk);
2484 Vtr = (8.61708691805812512584e-5*Trk);
2487 VdtINV = (VtINV-VtrINV);
2496 VGZEB_T = (0.05+(0.1*log((1.0+exp(dxa)))));
2509 dxa = ((0.05-UdeT)/Vt);
2512 VDE_T = (UdeT+(Vt*log((1.0+exp(dxa)))));
2516 VDE_T = (0.05+(Vt*log((1.0+exp((-dxa))))));
2525 dxa = ((0.05-UdcT)/Vt);
2528 VDC_T = (UdcT+(Vt*log((1.0+exp(dxa)))));
2532 VDC_T = (0.05+(Vt*log((1.0+exp((-dxa))))));
2541 dxa = ((0.05-UdsT)/Vt);
2544 VDS_T = (UdsT+(Vt*log((1.0+exp(dxa)))));
2548 VDS_T = (0.05+(Vt*log((1.0+exp((-dxa))))));
2552 inv_VDE_T = (1.0/VDE_T);
2557 CJCscaleINV = (1.0/CJCscale);
2573 tempx = pow((VGZEB_T*inv_VGZEB_Tr),(-0.5));
2574 y = (1.0/CJE_T_div_CJE);
2575 nZEB_T = (((((((((
model_.
NZEB)*VGZEB_T)*VGZEB_T)*tempx)*y)*(
model_.
VDE))*inv_VDE_T)*inv_VGZEB_Tr)*inv_VGZEB_Tr);
2576 IZEB_T = ((((((((
model_.
IZEB)*tempx)*VDE_T)*VDE_T)*inv_VDE)*inv_VDE)*CJE_T_div_CJE)*exp(((
model_.
NZEB)-nZEB_T)));
2578 VEF_T = (((
model_.
VEF)*tempx)*CJCscaleINV);
2597 BnT = (Bn*((1.0+(7.2e-4*Tk300))-((1.6e-6*Tk300)*Tk300)));
2605 IS_TM = (IS_T*
MULT);
2606 IK_TM = (IK_T*
MULT);
2607 IBF_TM = (IBF_T*
MULT);
2608 IBR_TM = (IBR_T*
MULT);
2609 IZEB_TM = (IZEB_T*
MULT);
2611 ISS_TM = (ISS_T*
MULT);
2612 ICSS_TM = (ICSS_T*
MULT);
2613 IKS_TM = (IKS_T*
MULT);
2614 CJE_TM = (CJE_T*
MULT);
2615 CJC_TM = (CJC_T*
MULT);
2616 CJS_TM = (CJS_T*
MULT);
2617 RE_TM = (RE_T*invMULT);
2618 RBC_TM = (RBC_T*invMULT);
2619 RBV_TM = (RBV_T*invMULT);
2620 RCCxx_TM = (RCCxx_T*invMULT);
2621 RCCex_TM = (RCCex_T*invMULT);
2622 RCCin_TM = (RCCin_T*invMULT);
2623 RCV_TM = (RCV_T*invMULT);
2648 RTH_Tamb_M = (RTH_Tamb*invMULT);
2657 if (Vb2c1_limited != Vb2c1_orig)
2678 if (Vb2c2_limited != Vb2c2_orig)
2700 if (Vb1e1_limited != Vb1e1_orig)
2721 if (Vb1b2_limited != Vb1b2_orig)
2767 Vb1c4 = (((Vb1b2+Vb2c2)-Vc1c2)-Vc4c1);
2768 Vcc3 = ((((-Vbc)+Vbb1)+Vb1c4)-Vc3c4);
2770 Vsc4 = (Vsc1-Vc4c1);
2771 Vsc3 = (Vsc4-Vc3c4);
2772 if (((Vb2c2*VtINV)<400.0))
2774 eVb2c2 = exp((Vb2c2*VtINV));
2779 eVb2c2 = (expl*(1.0+((Vb2c2*VtINV)-400.0)));
2781 if (((Vb2e1*VtINV)<400.0))
2783 eVb2e1 = exp((Vb2e1*VtINV));
2788 eVb2e1 = (expl*(1.0+((Vb2e1*VtINV)-400.0)));
2790 if (((Vb1e1*VtINV)<400.0))
2792 eVb1e1 = exp((Vb1e1*VtINV));
2797 eVb1e1 = (expl*(1.0+((Vb1e1*VtINV)-400.0)));
2799 if (((Vb1c4*VtINV)<400.0))
2801 eVb1c4 = exp((Vb1c4*VtINV));
2806 eVb1c4 = (expl*(1.0+((Vb1c4*VtINV)-400.0)));
2808 if (((Vb1b2*VtINV)<400.0))
2810 eVb1b2 = exp((Vb1b2*VtINV));
2815 eVb1b2 = (expl*(1.0+((Vb1b2*VtINV)-400.0)));
2817 if (((Vbc3*VtINV)<400.0))
2819 eVbc3 = exp((Vbc3*VtINV));
2824 eVbc3 = (expl*(1.0+((Vbc3*VtINV)-400.0)));
2826 if (((Vsc1*VtINV)<400.0))
2828 eVsc1 = exp((Vsc1*VtINV));
2833 eVsc1 = (expl*(1.0+((Vsc1*VtINV)-400.0)));
2835 if (((Vsc3*VtINV)<400.0))
2837 eVsc3 = exp((Vsc3*VtINV));
2842 eVsc3 = (expl*(1.0+((Vsc3*VtINV)-400.0)));
2844 if (((Vsc4*VtINV)<400.0))
2846 eVsc4 = exp((Vsc4*VtINV));
2851 eVsc4 = (expl*(1.0+((Vsc4*VtINV)-400.0)));
2853 if ((((Vbc3-VDC_T)*VtINV)<400.0))
2855 eVbc3VDC = exp(((Vbc3-VDC_T)*VtINV));
2860 eVbc3VDC = (expl*(1.0+(((Vbc3-VDC_T)*VtINV)-400.0)));
2862 if ((((Vb1c4-VDC_T)*VtINV)<400.0))
2864 eVb1c4VDC = exp(((Vb1c4-VDC_T)*VtINV));
2869 eVb1c4VDC = (expl*(1.0+(((Vb1c4-VDC_T)*VtINV)-400.0)));
2871 if ((((Vb2c2-VDC_T)*VtINV)<400.0))
2873 eVb2c2VDC = exp(((Vb2c2-VDC_T)*VtINV));
2878 eVb2c2VDC = (expl*(1.0+(((Vb2c2-VDC_T)*VtINV)-400.0)));
2880 if ((((Vb2c1-VDC_T)*VtINV)<400.0))
2882 eVb2c1VDC = exp(((Vb2c1-VDC_T)*VtINV));
2887 eVb2c1VDC = (expl*(1.0+(((Vb2c1-VDC_T)*VtINV)-400.0)));
2889 K0 = sqrt((1.0+(4.0*eVb2c2VDC)));
2890 Kw = sqrt((1.0+(4.0*eVb2c1VDC)));
2891 pW = ((2.0*eVb2c1VDC)/(1.0+Kw));
2896 Ec = (Vt*((K0-Kw)-log(((K0+1.0)/(Kw+1.0)))));
2897 Ic1c2 = ((Ec+Vc1c2)/RCV_TM);
2906 tmpV = (100.0+log((1.0+(Vb2c1-100.0))));
2909 Vqs_th = ((VDC_T+((2.0*
Vt)*log(((((0.5*Ic1c2)*RCV_TM)*VtINV)+1.0))))-tmpV);
2910 eps_VDC = (0.2*VDC_T);
2911 eps2 = (eps_VDC*eps_VDC);
2912 x2 = (Vqs_th*Vqs_th);
2915 Vqs = ((0.5*eps2)/(sqrt((x2+eps2))-Vqs_th));
2919 Vqs = (0.5*(sqrt((x2+eps2))+Vqs_th));
2922 Iqs = ((Vqs*(Vqs+(IHC_M*SCRCV_M)))/(SCRCV_M*(Vqs+(IHC_M*RCV_TM))));
2923 Ic1c2_Iqs = (Ic1c2/Iqs);
2929 if ((Ic1c2_Iqs<1.0))
2931 alpha1 = (1.0+((
model_.
AXI)*log((1.0+exp(dxa)))));
2935 alpha1 = (Ic1c2_Iqs+((
model_.
AXI)*log((1.0+exp((-dxa))))));
2940 vyi = (Vqs/(IHC_M*SCRCV_M));
2941 yi = ((1.0+sqrt((1.0+(((4.0*alpha)*vyi)*(1.0+vyi)))))/((2.0*alpha)*(1.0+vyi)));
2942 xi_w = (1.0-(yi/(1.0+(pW*yi))));
2943 gp0 = ((((0.5*Ic1c2)*RCV_TM)*xi_w)*VtINV);
2944 gp0_help = ((2.0*gp0)+(pW*((pW+gp0)+1.0)));
2945 gp02 = (0.5*(gp0-1.0));
2946 sqr_arg = ((gp02*gp02)+gp0_help);
2949 p0star = (gp02+sqrt(sqr_arg));
2953 p0star = (gp0_help/(sqrt(sqr_arg)-gp02));
2955 if ((p0star<1.0e-40))
2959 eVb2c2star = ((p0star*(p0star+1.0))*exp((VDC_T*VtINV)));
2960 B1 = ((0.5*SCRCV_M)*(Ic1c2-IHC_M));
2961 B2 = (((SCRCV_M*RCV_TM)*IHC_M)*Ic1c2);
2962 Vxi0 = (B1+sqrt(((B1*B1)+B2)));
2963 Vch = (VDC_T*(0.1+((2.0*Ic1c2)/(Ic1c2+Iqs))));
2964 Icap = ((IHC_M*Ic1c2)/(IHC_M+Ic1c2));
2965 Icap_IHC = (IHC_M/(IHC_M+Ic1c2));
2970 p0star = ((2.0*eVb2c2VDC)/(1.0+K0));
2971 eVb2c2star = eVb2c2;
2972 if (((fabs(Vc1c2)<(1.0e-5*
Vt))||(fabs(Ec)<((1.0e-40*
Vt)*(K0+Kw)))))
2974 pav = (0.5*(p0star+pW));
2975 xi_w = (pav/(pav+1.0));
2979 xi_w = (Ec/((Ec+Vb2c2)-Vb2c1));
2984 Icap_IHC = (1.0-(Icap/IHC_M));
2986 Vfe = (VDE_T*(1.0-pow(3.0,((-1.0)/(
model_.
PE)))));
2987 a_VDE = (0.1*VDE_T);
2992 dxa = ((Vb2e1-Vfe)/a_VDE);
2995 Vje = (Vb2e1-(a_VDE*log((1.0+exp(dxa)))));
2999 Vje = (Vfe-(a_VDE*log((1.0+exp((-dxa))))));
3003 E0BE = pow((1.0-(Vje*inv_VDE_T)),(1.0-(
model_.
PE)));
3004 Vte = (((VDE_T/(1.0-(
model_.
PE)))*(1.0-E0BE))+(3.0*(Vb2e1-Vje)));
3005 Vjunc = (Vb2c1+Vxi0);
3006 bjc = ((2.0-XP_T)/(1.0-XP_T));
3007 Vfc = (VDC_T*(1.0-pow(bjc,((-1.0)/(
model_.
PC)))));
3012 dxa = ((Vjunc-Vfc)/Vch);
3015 Vjc = (Vjunc-(Vch*log((1.0+exp(dxa)))));
3019 Vjc = (Vfc-(Vch*log((1.0+exp((-dxa))))));
3024 Vcv = (((VDC_T/(1.0-(
model_.
PC)))*(1.0-(fI*pow((1.0-(Vjc/VDC_T)),(1.0-(
model_.
PC))))))+((fI*bjc)*(Vjunc-Vjc)));
3025 Vtc = (((1.0-XP_T)*Vcv)+(XP_T*Vb2c1));
3026 If0 = ((4.0*IS_TM)/IK_TM);
3028 n0 = (f1/(1.0+sqrt((1.0+f1))));
3029 f2 = (If0*eVb2c2star);
3030 nB = (f2/(1.0+sqrt((1.0+f2))));
3033 q0I = ((1.0+(Vte/VER_T))+(Vtc/VEF_T));
3037 termE = ((((Vte/VER_T)+1.0)*DEG_T)*VtINV);
3038 termC = ((((-Vtc)/VEF_T)*DEG_T)*VtINV);
3039 q0I = ((exp(termE)-exp(termC))/(exp((DEG_T*VtINV))-1.0));
3045 q1I = ((0.5*eps2)/(sqrt((x2+eps2))-q0I));
3049 q1I = (0.5*(sqrt((x2+eps2))+q0I));
3052 qBI = (q1I*(1.0+(0.5*(n0+nB))));
3053 Ir = (IS_TM*eVb2c2star);
3054 If = (IS_TM*eVb2e1);
3056 Ibf0 = (IS_TM/BF_T);
3066 if ((((Vb2e1*VtINV)/(
model_.
MLF))<400.0))
3068 tmpExp = exp(((Vb2e1*VtINV)/(
model_.
MLF)));
3073 tmpExp = (expl*(1.0+(((Vb2e1*VtINV)/(
model_.
MLF))-400.0)));
3076 if ((((0.5*Vb1c4)*VtINV)<400.0))
3078 tmpExp = exp(((0.5*Vb1c4)*VtINV));
3083 tmpExp = (expl*(1.0+(((0.5*Vb1c4)*VtINV)-400.0)));
3088 if (((nZEB_T*(1-(pow2_2mPE/(2.0*E0BE))))<400.0))
3090 eZEB = exp((nZEB_T*(1-(pow2_2mPE/(2.0*E0BE)))));
3095 eZEB = (expl*(1.0+((nZEB_T*(1-(pow2_2mPE/(2.0*E0BE))))-400.0)));
3097 x = (Vb2e1*inv_VDE_T);
3099 if (((((Vb2e1*pow2_2mPE)*nZEB_T)/(VGZEB_T*dE0BE))<400.0))
3101 edZEB = exp((((Vb2e1*pow2_2mPE)*nZEB_T)/(VGZEB_T*dE0BE)));
3106 edZEB = (expl*(1.0+((((Vb2e1*pow2_2mPE)*nZEB_T)/(VGZEB_T*dE0BE))-400.0)));
3108 DZEB = ((-Vb2e1)-(((VGZEB_T*dE0BE)*(1-edZEB))/(pow2_2mPE*nZEB_T)));
3109 Izteb = ((((((2.0*IZEB_TM)*DZEB)*E0BE)*eZEB)*inv_VDE_T)*pow2_PEm2);
3117 g2 = (4.0*eVb1c4VDC);
3118 nBex = ((g1-If0)/(1.0+sqrt((1.0+g1))));
3119 pWex = (g2/(1.0+sqrt((1.0+g2))));
3120 Iex = ((IK_TM*nBex)/(2.0*BRI_T));
3123 Isub = (((2.0*ISS_TM)*(eVb1c4-eVsc4))/(1.0+sqrt((1.0+((4.0*(IS_TM/IKS_TM))*eVb1c4)))));
3127 Isub = (((2.0*ISS_TM)*(eVb1c4-1.0))/(1.0+sqrt((1.0+((4.0*(IS_TM/IKS_TM))*eVb1c4)))));
3131 Isf = (ISS_TM*(eVsc1-1.0));
3135 Isf = (ICSS_TM*(eVsc1-1.0));
3144 XnBex = ((Xg1-If0)/(1.0+sqrt((1.0+Xg1))));
3145 XIMex = (((((
model_.
XEXT)*0.5)*IK_TM)*XnBex)/BRI_T);
3148 XIMsub = (((((
model_.
XEXT)*2.0)*ISS_TM)*(eVbc3-eVsc3))/(1.0+sqrt((1.0+(((4.0*IS_T)/IKS_T)*eVbc3)))));
3152 XIMsub = (((((
model_.
XEXT)*2.0)*ISS_TM)*(eVbc3-1.0))/(1.0+sqrt((1.0+(((4.0*IS_T)/IKS_T)*eVbc3)))));
3156 Vex_bias = (((
model_.
XEXT)*((IS_TM/BRI_T)+ISS_TM))*RCCxx_TM);
3157 Vex = (Vt*(2.0-log((Vex_bias*VtINV))));
3163 VBex = ((0.5*eps2)/(sqrt((x2+eps2))-vdif));
3167 VBex = (0.5*(sqrt((x2+eps2))+vdif));
3170 Fex = (VBex/((Vex_bias+((XIMex+XIMsub)*RCCxx_TM))+VBex));
3180 XIsub = (Fex*XIMsub);
3187 q0Q = ((1.0+(Vte/VER_T))+(Vtc/VEF_T));
3192 q1Q = ((0.5*eps2)/(sqrt((x2+eps2))-q0Q));
3196 q1Q = (0.5*(sqrt((x2+eps2))+q0Q));
3199 qBQ = (q1Q*(1.0+(0.5*(n0+nB))));
3200 Rb2 = ((3.0*RBV_TM)/qBQ);
3204 if (((Ic1c2>0.0)&&(Vb2c1<VDC_T)))
3207 sqr_arg = ((VDC_T-Vb2c1)/Icap_IHC);
3208 xd = sqrt(((2.0*sqr_arg)/dEdx0));
3215 xi_w1 = (1.0-(0.5*xi_w));
3218 Wd = ((xd*Weff)/sqrt(((xd*xd)+(Weff*Weff))));
3219 Eav = ((VDC_T-Vb2c1)/Wd);
3220 E0 = (Eav+(((0.5*Wd)*dEdx0)*Icap_IHC));
3227 SHw = (1.0+((2.0*(
model_.
SFH))*(1.0+(2.0*xi_w))));
3229 Ew = (Eav-(((0.5*Wd)*dEdx0)*(Efi-(Ic1c2/(IHC_M*SHw)))));
3230 sqr_arg = (((Ew-E0)*(Ew-E0))+((((0.1*Eav)*Eav)*Icap)/IHC_M));
3231 Em = (0.5*((Ew+E0)+sqrt(sqr_arg)));
3233 EmEav_Em = ((Em-Eav)/Em);
3234 if ((fabs(EmEav_Em)>1.0e-7))
3236 lambda = ((0.5*Wd)/EmEav_Em);
3237 Gem = ((((An/BnT)*Em)*lambda)*(exp(((-BnT)/Em))-exp((((-BnT)/Em)*(1.0+(Weff/lambda))))));
3241 Gem = ((An*Weff)*exp(((-BnT)/Em)));
3244 Iavl = ((Ic1c2*
Gem)/((
Gem+(
Gem/Gmax))+1.0));
3246 if ((eVb2c2star>0.0))
3248 Vb2c2star = (Vt*log(eVb2c2star));
3254 power = ((((((((((((((((In*(Vb2e1-Vb2c2star))+(Ic1c2*(Vb2c2star-Vb2c1)))-(Iavl*Vb2c2star))+((Vee1*Vee1)/
RE_TM))+((Vcc3*Vcc3)*
GCCxx_TM))+((Vc3c4*Vc3c4)*
GCCex_TM))+((Vc4c1*Vc4c1)*
GCCin_TM))+((Vbb1*Vbb1)/
RBC_TM))+(Ib1b2*Vb1b2))+(((
Ib1+
Ib2)-
Izteb)*Vb2e1))+(
Ib1_s*Vb1e1))+((
Iex+
Ib3)*Vb1c4))+(
XIex*Vbc3))+(
Isub*(Vb1c4-Vsc4)))+(
XIsub*(Vbc3-Vsc3)))+(Isf*Vsc1));
3260 dxa = ((Vb1e1-Vfe)/a_VDE);
3263 Vje_s = (Vb1e1-(a_VDE*log((1.0+exp(dxa)))));
3267 Vje_s = (Vfe-(a_VDE*log((1.0+exp((-dxa))))));
3271 Qte_s = (((
model_.
XCJE)*CJE_TM)*(((VDE_T/(1.0-(
model_.
PE)))*(1.0-pow((1.0-(Vje_s*inv_VDE_T)),(1.0-(
model_.
PE)))))+(3.0*(Vb1e1-Vje_s))));
3273 Qb0 = (TAUB_T*IK_TM);
3274 Qbe_qs = (((0.5*Qb0)*n0)*q1Q);
3275 Qbc_qs = (((0.5*Qb0)*nB)*q1Q);
3276 a_VDC = (0.1*VDC_T);
3281 dxa = ((Vb1c4-Vfc)/a_VDC);
3284 Vjcex = (Vb1c4-(a_VDC*log((1.0+exp(dxa)))));
3288 Vjcex = (Vfc-(a_VDC*log((1.0+exp((-dxa))))));
3292 Vtexv = (((VDC_T/(1.0-(
model_.
PC)))*(1.0-pow((1.0-(Vjcex/VDC_T)),(1.0-(
model_.
PC)))))+(bjc*(Vb1c4-Vjcex)));
3298 dxa = ((Vbc3-Vfc)/a_VDC);
3301 XVjcex = (Vbc3-(a_VDC*log((1.0+exp(dxa)))));
3305 XVjcex = (Vfc-(a_VDC*log((1.0+exp((-dxa))))));
3309 XVtexv = (((VDC_T/(1.0-(
model_.
PC)))*(1.0-pow((1.0-(XVjcex/VDC_T)),(1.0-(
model_.
PC)))))+(bjc*(Vbc3-XVjcex)));
3311 a_VDS = (0.1*VDS_T);
3312 Vfs = (VDS_T*(1.0-pow(2.0,((-1.0)/(
model_.
PS)))));
3317 dxa = ((Vsc1-Vfs)/a_VDS);
3320 Vjs = (Vsc1-(a_VDS*log((1.0+exp(dxa)))));
3324 Vjs = (Vfs-(a_VDS*log((1.0+exp((-dxa))))));
3328 Qts = (CJS_TM*(((VDS_T/(1.0-(
model_.
PS)))*(1.0-pow((1.0-(Vjs/VDS_T)),(1.0-(
model_.
PS)))))+(2.0*(Vsc1-Vjs))));
3329 Qe0 = ((TAUE_T*IK_TM)*pow((IS_TM/IK_TM),(1.0/(
model_.
MTAU))));
3337 tmpExp = (expl*(1.0+((Vb2e1/((
model_.
MTAU)*Vt))-400.0)));
3339 Qe = (Qe0*(tmpExp-1.0));
3340 Qepi0 = (((4.0*TEPI_T)*Vt)/RCV_TM);
3341 Qepi = (((0.5*Qepi0)*xi_w)*((p0star+pW)+2.0));
3342 Qex = (((TAUR_T*0.5)*((Qb0*nBex)+(Qepi0*pWex)))/(TAUB_T+TEPI_T));
3347 Xg2 = (4.0*eVbc3VDC);
3348 XpWex = (Xg2/(1.0+sqrt((1.0+Xg2))));
3349 XQex = (((((0.5*Fex)*(
model_.
XEXT))*TAUR_T)*((Qb0*XnBex)+(Qepi0*XpWex)))/(TAUB_T+TEPI_T));
3354 dVteVje = (pow((1.0-(Vje*inv_VDE_T)),(-(
model_.
PE)))-3.0);
3355 Vb2e1Vfe = ((Vb2e1-Vfe)/a_VDE);
3358 dVjeVb2e1 = (1.0/(1.0+exp(Vb2e1Vfe)));
3362 dVjeVb2e1 = (exp((-Vb2e1Vfe))/(1.0+exp((-Vb2e1Vfe))));
3364 dVteVb2e1 = ((dVteVje*dVjeVb2e1)+3.0);
3365 dQteVb2e1 = (((1.0-(
model_.
XCJE))*CJE_TM)*dVteVb2e1);
3366 dn0Vb2e1 = (((If0*eVb2e1)*VtINV)*(0.5/sqrt((1.0+f1))));
3367 dQbeVb2e1 = (((0.5*Qb0)*q1Q)*dn0Vb2e1);
3369 Qb1b2 = ((0.2*Vb1b2)*((dQteVb2e1+dQbeVb2e1)+dQeVb2e1));
3370 Qbc = ((Qbe_qs*0.33333333333333333333)+Qbc_qs);
3371 Qbe = ((2.0*Qbe_qs)*0.33333333333333333333);
3474 contribTemp= ((-1.0)*power);
3486 contribTemp= cor_exp_1;
3497 contribTemp= cor_exp_2;
3507 contribTemp= (((
model_.
TYPE)*((Qte+Qbe)+Qe)));
3527 contribTemp= (((
model_.
TYPE)*((Qtc+Qbc)+Qepi)));
3770 Xyce::dout() <<
" probeVars[admsProbeID_V_noi_e1] = "
3772 Xyce::dout() <<
" probeVars[admsProbeID_V_c3_c1] = "
3774 Xyce::dout() <<
" probeVars[admsProbeID_V_c3_c4] = "
3776 Xyce::dout() <<
" probeVars[admsProbeID_V_c4_c1] = "
3778 Xyce::dout() <<
" probeVars[admsProbeID_V_b_c] = "
3780 Xyce::dout() <<
" probeVars[admsProbeID_V_b_e] = "
3782 Xyce::dout() <<
" probeVars[admsProbeID_V_b_b1] = "
3784 Xyce::dout() <<
" probeVars[admsProbeID_V_e_e1] = "
3786 Xyce::dout() <<
" probeVars[admsProbeID_V_c1_c2] = "
3788 Xyce::dout() <<
" probeVars[admsProbeID_V_s_c1] = "
3790 Xyce::dout() <<
" probeVars[admsProbeID_V_b1_b2] = "
3792 Xyce::dout() <<
" probeVars[admsProbeID_V_b1_e1] = "
3794 Xyce::dout() <<
" probeVars[admsProbeID_V_b2_e1] = "
3796 Xyce::dout() <<
" probeVars[admsProbeID_V_b2_c2] = "
3798 Xyce::dout() <<
" probeVars[admsProbeID_V_b2_c1] = "
3800 Xyce::dout() <<
" probeVars[admsProbeID_V_dt_GND] = "
3802 Xyce::dout() <<
" staticContributions[admsNodeID_c] = "
3820 Xyce::dout() <<
" dynamicContributions[admsNodeID_c] = "
3838 Xyce::dout() <<
" Jdxp_static[admsNodeID_c] = "
3840 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_c] = "
3842 Xyce::dout() <<
" staticContributions[admsNodeID_b] = "
3860 Xyce::dout() <<
" dynamicContributions[admsNodeID_b] = "
3878 Xyce::dout() <<
" Jdxp_static[admsNodeID_b] = "
3880 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_b] = "
3882 Xyce::dout() <<
" staticContributions[admsNodeID_e] = "
3900 Xyce::dout() <<
" dynamicContributions[admsNodeID_e] = "
3918 Xyce::dout() <<
" Jdxp_static[admsNodeID_e] = "
3920 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_e] = "
3922 Xyce::dout() <<
" staticContributions[admsNodeID_s] = "
3940 Xyce::dout() <<
" dynamicContributions[admsNodeID_s] = "
3958 Xyce::dout() <<
" Jdxp_static[admsNodeID_s] = "
3960 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_s] = "
3962 Xyce::dout() <<
" staticContributions[admsNodeID_dt] = "
3980 Xyce::dout() <<
" dynamicContributions[admsNodeID_dt] = "
3998 Xyce::dout() <<
" Jdxp_static[admsNodeID_dt] = "
4000 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_dt] = "
4002 Xyce::dout() <<
" staticContributions[admsNodeID_e1] = "
4020 Xyce::dout() <<
" dynamicContributions[admsNodeID_e1] = "
4038 Xyce::dout() <<
" Jdxp_static[admsNodeID_e1] = "
4040 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_e1] = "
4042 Xyce::dout() <<
" staticContributions[admsNodeID_b1] = "
4060 Xyce::dout() <<
" dynamicContributions[admsNodeID_b1] = "
4078 Xyce::dout() <<
" Jdxp_static[admsNodeID_b1] = "
4080 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_b1] = "
4082 Xyce::dout() <<
" staticContributions[admsNodeID_b2] = "
4100 Xyce::dout() <<
" dynamicContributions[admsNodeID_b2] = "
4118 Xyce::dout() <<
" Jdxp_static[admsNodeID_b2] = "
4120 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_b2] = "
4122 Xyce::dout() <<
" staticContributions[admsNodeID_c3] = "
4140 Xyce::dout() <<
" dynamicContributions[admsNodeID_c3] = "
4158 Xyce::dout() <<
" Jdxp_static[admsNodeID_c3] = "
4160 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_c3] = "
4162 Xyce::dout() <<
" staticContributions[admsNodeID_c4] = "
4180 Xyce::dout() <<
" dynamicContributions[admsNodeID_c4] = "
4198 Xyce::dout() <<
" Jdxp_static[admsNodeID_c4] = "
4200 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_c4] = "
4202 Xyce::dout() <<
" staticContributions[admsNodeID_c2] = "
4220 Xyce::dout() <<
" dynamicContributions[admsNodeID_c2] = "
4238 Xyce::dout() <<
" Jdxp_static[admsNodeID_c2] = "
4240 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_c2] = "
4242 Xyce::dout() <<
" staticContributions[admsNodeID_c1] = "
4260 Xyce::dout() <<
" dynamicContributions[admsNodeID_c1] = "
4278 Xyce::dout() <<
" Jdxp_static[admsNodeID_c1] = "
4280 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_c1] = "
4282 Xyce::dout() <<
" staticContributions[admsNodeID_noi] = "
4300 Xyce::dout() <<
" dynamicContributions[admsNodeID_noi] = "
4318 Xyce::dout() <<
" Jdxp_static[admsNodeID_noi] = "
4320 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_noi] = "
4324 Xyce::dout() <<
"This step was limited by this device." << std::endl;
4340 bool bsuccess =
true;
4343 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4345 Xyce::dout() << subsection_divider << std::endl;
4346 Xyce::dout() <<
"ADMSbjt504tva::Instance::loadDAEdFdx (" <<
getName() <<
"):" << std::endl;
4351 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4358 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4365 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4372 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4379 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4386 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4393 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4400 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4407 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4414 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4421 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4428 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4435 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4442 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4449 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4456 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4463 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4470 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4477 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4484 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4491 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4498 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4505 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4512 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4519 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4526 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4533 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4540 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4547 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4554 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4561 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4568 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4575 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4582 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4589 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4596 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4603 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4610 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4617 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4624 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4631 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4638 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4645 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4652 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4659 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4666 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4673 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4680 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4687 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4694 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4701 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4708 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4715 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4722 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4729 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4736 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4743 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4750 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4757 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4764 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4771 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4778 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4785 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4792 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4799 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4806 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4813 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4820 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4827 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4834 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4841 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4848 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4855 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4862 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4869 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4876 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4883 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4890 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4897 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4904 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4911 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4918 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4925 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4932 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4939 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4946 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4953 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4960 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4967 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4974 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4981 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4988 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4995 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5002 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5009 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5016 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5023 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5030 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5037 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5044 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5051 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5058 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5065 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5072 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5079 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5086 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5093 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5100 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5107 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5114 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5121 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5128 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5135 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5142 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5149 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5156 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5163 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5170 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5177 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5184 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5191 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5198 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5205 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5212 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5219 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5226 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5246 bool bsuccess =
true;
5249 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5251 Xyce::dout() << subsection_divider << std::endl;
5252 Xyce::dout() <<
"ADMSbjt504tva::Instance::loadDAEdQdx (" <<
getName() <<
"):" << std::endl;
5257 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5264 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5271 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5278 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5285 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5292 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5299 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5306 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5313 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5320 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5327 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5334 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5341 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5348 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5355 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5362 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5369 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5376 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5383 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5390 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5397 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5404 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5411 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5418 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5425 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5432 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5439 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5446 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5453 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5460 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5467 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5474 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5481 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5488 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5495 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5502 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5509 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5516 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5523 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5530 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5537 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5544 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5551 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5558 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5565 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5572 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5579 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5586 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5593 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5600 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5607 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5614 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5621 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5628 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5635 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5642 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5649 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5656 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5663 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5670 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5677 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5684 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5691 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5698 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5705 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5712 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5719 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5726 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5733 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5740 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5747 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5754 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5761 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5768 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5775 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5782 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5789 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5796 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5803 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5810 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5817 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5824 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5831 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5838 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5845 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5852 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5859 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5866 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5873 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5880 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5887 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5894 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5901 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5947 UserError0(*
this) <<
"ADMSbjt504tva: Parameter LEVEL value " <<
LEVEL <<
" out of range [ 504, 505 [";
5951 if ( (!((
TREF >=(-273.0)))) )
5953 UserError0(*
this) <<
"ADMSbjt504tva: Parameter TREF value " <<
TREF <<
" out of range [ (-273.0), (+inf) [";
5959 UserError0(*
this) <<
"ADMSbjt504tva: Parameter EXMOD value " <<
EXMOD <<
" out of range [ 0, 2 ]";
5965 UserError0(*
this) <<
"ADMSbjt504tva: Parameter EXPHI value " <<
EXPHI <<
" out of range [ 0, 1 ]";
5971 UserError0(*
this) <<
"ADMSbjt504tva: Parameter EXAVL value " <<
EXAVL <<
" out of range [ 0, 1 ]";
5977 UserError0(*
this) <<
"ADMSbjt504tva: Parameter EXSUB value " <<
EXSUB <<
" out of range [ 0, 1 ]";
5981 if ( (!((
IS >0.0))) )
5983 UserError0(*
this) <<
"ADMSbjt504tva: Parameter IS value " <<
IS <<
" out of range ] 0.0, (+inf) [";
5987 if ( (!((
IK >=1.0*1.0e-12))) )
5989 UserError0(*
this) <<
"ADMSbjt504tva: Parameter IK value " <<
IK <<
" out of range [ 1.0*1.0e-12, (+inf) [";
5993 if ( (!((
VER >=0.01))) )
5995 UserError0(*
this) <<
"ADMSbjt504tva: Parameter VER value " <<
VER <<
" out of range [ 0.01, (+inf) [";
5999 if ( (!((
VEF >=0.01))) )
6001 UserError0(*
this) <<
"ADMSbjt504tva: Parameter VEF value " <<
VEF <<
" out of range [ 0.01, (+inf) [";
6005 if ( (!((
BF >=0.1*1.0e-3))) )
6007 UserError0(*
this) <<
"ADMSbjt504tva: Parameter BF value " <<
BF <<
" out of range [ 0.1*1.0e-3, (+inf) [";
6011 if ( (!((
IBF >=0.0))) )
6013 UserError0(*
this) <<
"ADMSbjt504tva: Parameter IBF value " <<
IBF <<
" out of range [ 0.0, (+inf) [";
6017 if ( (!((
MLF >=0.1))) )
6019 UserError0(*
this) <<
"ADMSbjt504tva: Parameter MLF value " <<
MLF <<
" out of range [ 0.1, (+inf) [";
6023 if ( (!((
XIBI >=0.0 &&
XIBI <=1.0 ))) )
6025 UserError0(*
this) <<
"ADMSbjt504tva: Parameter XIBI value " <<
XIBI <<
" out of range [ 0.0, 1.0 ]";
6029 if ( (!((
IZEB >=0.0))) )
6031 UserError0(*
this) <<
"ADMSbjt504tva: Parameter IZEB value " <<
IZEB <<
" out of range [ 0.0, (+inf) [";
6035 if ( (!((
NZEB >=0.0))) )
6037 UserError0(*
this) <<
"ADMSbjt504tva: Parameter NZEB value " <<
NZEB <<
" out of range [ 0.0, (+inf) [";
6041 if ( (!((
BRI >=1.0e-4))) )
6043 UserError0(*
this) <<
"ADMSbjt504tva: Parameter BRI value " <<
BRI <<
" out of range [ 1.0e-4, (+inf) [";
6047 if ( (!((
IBR >=0.0))) )
6049 UserError0(*
this) <<
"ADMSbjt504tva: Parameter IBR value " <<
IBR <<
" out of range [ 0.0, (+inf) [";
6053 if ( (!((
XEXT >=0.0 &&
XEXT <=1.0 ))) )
6055 UserError0(*
this) <<
"ADMSbjt504tva: Parameter XEXT value " <<
XEXT <<
" out of range [ 0.0, 1.0 ]";
6059 if ( (!((
WAVL >=1.0*1.0e-9))) )
6061 UserError0(*
this) <<
"ADMSbjt504tva: Parameter WAVL value " <<
WAVL <<
" out of range [ 1.0*1.0e-9, (+inf) [";
6065 if ( (!((
VAVL >=0.01))) )
6067 UserError0(*
this) <<
"ADMSbjt504tva: Parameter VAVL value " <<
VAVL <<
" out of range [ 0.01, (+inf) [";
6071 if ( (!((
SFH >=0.0))) )
6073 UserError0(*
this) <<
"ADMSbjt504tva: Parameter SFH value " <<
SFH <<
" out of range [ 0.0, (+inf) [";
6077 if ( (!((
RE >=1.0*1.0e-3))) )
6079 UserError0(*
this) <<
"ADMSbjt504tva: Parameter RE value " <<
RE <<
" out of range [ 1.0*1.0e-3, (+inf) [";
6083 if ( (!((
RBC >=1.0*1.0e-3))) )
6085 UserError0(*
this) <<
"ADMSbjt504tva: Parameter RBC value " <<
RBC <<
" out of range [ 1.0*1.0e-3, (+inf) [";
6089 if ( (!((
RBV >=1.0*1.0e-3))) )
6091 UserError0(*
this) <<
"ADMSbjt504tva: Parameter RBV value " <<
RBV <<
" out of range [ 1.0*1.0e-3, (+inf) [";
6095 if ( (!((
RCC >=1.0*1.0e-3))) )
6097 UserError0(*
this) <<
"ADMSbjt504tva: Parameter RCC value " <<
RCC <<
" out of range [ 1.0*1.0e-3, (+inf) [";
6101 if ( (!((
RCV >=1.0*1.0e-3))) )
6103 UserError0(*
this) <<
"ADMSbjt504tva: Parameter RCV value " <<
RCV <<
" out of range [ 1.0*1.0e-3, (+inf) [";
6107 if ( (!((
SCRCV >=1.0*1.0e-3))) )
6109 UserError0(*
this) <<
"ADMSbjt504tva: Parameter SCRCV value " <<
SCRCV <<
" out of range [ 1.0*1.0e-3, (+inf) [";
6113 if ( (!((
IHC >=1.0*1.0e-12))) )
6115 UserError0(*
this) <<
"ADMSbjt504tva: Parameter IHC value " <<
IHC <<
" out of range [ 1.0*1.0e-12, (+inf) [";
6119 if ( (!((
AXI >=0.02))) )
6121 UserError0(*
this) <<
"ADMSbjt504tva: Parameter AXI value " <<
AXI <<
" out of range [ 0.02, (+inf) [";
6125 if ( (!((
CJE >=0.0))) )
6127 UserError0(*
this) <<
"ADMSbjt504tva: Parameter CJE value " <<
CJE <<
" out of range [ 0.0, (+inf) [";
6131 if ( (!((
VDE >=0.05))) )
6133 UserError0(*
this) <<
"ADMSbjt504tva: Parameter VDE value " <<
VDE <<
" out of range [ 0.05, (+inf) [";
6137 if ( (!((
PE >=0.01 &&
PE <0.99 ))) )
6139 UserError0(*
this) <<
"ADMSbjt504tva: Parameter PE value " <<
PE <<
" out of range [ 0.01, 0.99 [";
6143 if ( (!((
XCJE >=0.0 &&
XCJE <=1.0 ))) )
6145 UserError0(*
this) <<
"ADMSbjt504tva: Parameter XCJE value " <<
XCJE <<
" out of range [ 0.0, 1.0 ]";
6149 if ( (!((
CBEO >=0.0))) )
6151 UserError0(*
this) <<
"ADMSbjt504tva: Parameter CBEO value " <<
CBEO <<
" out of range [ 0.0, (+inf) [";
6155 if ( (!((
CJC >=0.0))) )
6157 UserError0(*
this) <<
"ADMSbjt504tva: Parameter CJC value " <<
CJC <<
" out of range [ 0.0, (+inf) [";
6161 if ( (!((
VDC >=0.05))) )
6163 UserError0(*
this) <<
"ADMSbjt504tva: Parameter VDC value " <<
VDC <<
" out of range [ 0.05, (+inf) [";
6167 if ( (!((
PC >=0.01 &&
PC <0.99 ))) )
6169 UserError0(*
this) <<
"ADMSbjt504tva: Parameter PC value " <<
PC <<
" out of range [ 0.01, 0.99 [";
6173 if ( (!((
XP >=0.0 &&
XP <0.99 ))) )
6175 UserError0(*
this) <<
"ADMSbjt504tva: Parameter XP value " <<
XP <<
" out of range [ 0.0, 0.99 [";
6179 if ( (!((
MC >=0.0 &&
MC <1.0 ))) )
6181 UserError0(*
this) <<
"ADMSbjt504tva: Parameter MC value " <<
MC <<
" out of range [ 0.0, 1.0 [";
6185 if ( (!((
XCJC >=0.0 &&
XCJC <=1.0 ))) )
6187 UserError0(*
this) <<
"ADMSbjt504tva: Parameter XCJC value " <<
XCJC <<
" out of range [ 0.0, 1.0 ]";
6191 if ( (!((
RCBLX >=0.0))) )
6193 UserError0(*
this) <<
"ADMSbjt504tva: Parameter RCBLX value " <<
RCBLX <<
" out of range [ 0.0, (+inf) [";
6197 if ( (!((
RCBLI >=0.0))) )
6199 UserError0(*
this) <<
"ADMSbjt504tva: Parameter RCBLI value " <<
RCBLI <<
" out of range [ 0.0, (+inf) [";
6203 if ( (!((
CBCO >=0.0))) )
6205 UserError0(*
this) <<
"ADMSbjt504tva: Parameter CBCO value " <<
CBCO <<
" out of range [ 0.0, (+inf) [";
6209 if ( (!((
MTAU >=0.1))) )
6211 UserError0(*
this) <<
"ADMSbjt504tva: Parameter MTAU value " <<
MTAU <<
" out of range [ 0.1, (+inf) [";
6215 if ( (!((
TAUE >=0.0))) )
6217 UserError0(*
this) <<
"ADMSbjt504tva: Parameter TAUE value " <<
TAUE <<
" out of range [ 0.0, (+inf) [";
6221 if ( (!((
TAUB >0.0))) )
6223 UserError0(*
this) <<
"ADMSbjt504tva: Parameter TAUB value " <<
TAUB <<
" out of range ] 0.0, (+inf) [";
6227 if ( (!((
TEPI >=0.0))) )
6229 UserError0(*
this) <<
"ADMSbjt504tva: Parameter TEPI value " <<
TEPI <<
" out of range [ 0.0, (+inf) [";
6233 if ( (!((
TAUR >=0.0))) )
6235 UserError0(*
this) <<
"ADMSbjt504tva: Parameter TAUR value " <<
TAUR <<
" out of range [ 0.0, (+inf) [";
6239 if ( (!((
XREC >=0.0))) )
6241 UserError0(*
this) <<
"ADMSbjt504tva: Parameter XREC value " <<
XREC <<
" out of range [ 0.0, (+inf) [";
6245 if ( (!((
ACBL >=0.0))) )
6247 UserError0(*
this) <<
"ADMSbjt504tva: Parameter ACBL value " <<
ACBL <<
" out of range [ 0.0, (+inf) [";
6251 if ( (!((
VGB >=0.1))) )
6253 UserError0(*
this) <<
"ADMSbjt504tva: Parameter VGB value " <<
VGB <<
" out of range [ 0.1, (+inf) [";
6257 if ( (!((
VGC >=0.1))) )
6259 UserError0(*
this) <<
"ADMSbjt504tva: Parameter VGC value " <<
VGC <<
" out of range [ 0.1, (+inf) [";
6263 if ( (!((
VGJ >=0.1))) )
6265 UserError0(*
this) <<
"ADMSbjt504tva: Parameter VGJ value " <<
VGJ <<
" out of range [ 0.1, (+inf) [";
6269 if ( (!((
VGZEB >=0.1))) )
6271 UserError0(*
this) <<
"ADMSbjt504tva: Parameter VGZEB value " <<
VGZEB <<
" out of range [ 0.1, (+inf) [";
6277 if ( (!((
TVGEB >=0.0))) )
6279 UserError0(*
this) <<
"ADMSbjt504tva: Parameter TVGEB value " <<
TVGEB <<
" out of range [ 0.0, (+inf) [";
6283 if ( (!((
AF >=0.01))) )
6285 UserError0(*
this) <<
"ADMSbjt504tva: Parameter AF value " <<
AF <<
" out of range [ 0.01, (+inf) [";
6289 if ( (!((
KF >=0.0))) )
6291 UserError0(*
this) <<
"ADMSbjt504tva: Parameter KF value " <<
KF <<
" out of range [ 0.0, (+inf) [";
6295 if ( (!((
KFN >=0.0))) )
6297 UserError0(*
this) <<
"ADMSbjt504tva: Parameter KFN value " <<
KFN <<
" out of range [ 0.0, (+inf) [";
6301 if ( (!((
KAVL >=0 &&
KAVL <=1 ))) )
6303 UserError0(*
this) <<
"ADMSbjt504tva: Parameter KAVL value " <<
KAVL <<
" out of range [ 0, 1 ]";
6307 if ( (!((
ISS >=0.0))) )
6309 UserError0(*
this) <<
"ADMSbjt504tva: Parameter ISS value " <<
ISS <<
" out of range [ 0.0, (+inf) [";
6315 if ( (!((
IKS >=1.0*1.0e-12))) )
6317 UserError0(*
this) <<
"ADMSbjt504tva: Parameter IKS value " <<
IKS <<
" out of range [ 1.0*1.0e-12, (+inf) [";
6321 if ( (!((
CJS >=0))) )
6323 UserError0(*
this) <<
"ADMSbjt504tva: Parameter CJS value " <<
CJS <<
" out of range [ 0, (+inf) [";
6327 if ( (!((
VDS >0.05))) )
6329 UserError0(*
this) <<
"ADMSbjt504tva: Parameter VDS value " <<
VDS <<
" out of range ] 0.05, (+inf) [";
6333 if ( (!((
PS >0.01 &&
PS <0.99 ))) )
6335 UserError0(*
this) <<
"ADMSbjt504tva: Parameter PS value " <<
PS <<
" out of range ] 0.01, 0.99 [";
6339 if ( (!((
VGS >=0.1))) )
6341 UserError0(*
this) <<
"ADMSbjt504tva: Parameter VGS value " <<
VGS <<
" out of range [ 0.1, (+inf) [";
6345 if ( (!((
RTH >0.0))) )
6347 UserError0(*
this) <<
"ADMSbjt504tva: Parameter RTH value " <<
RTH <<
" out of range ] 0.0, (+inf) [";
6351 if ( (!((
CTH >=0.0))) )
6353 UserError0(*
this) <<
"ADMSbjt504tva: Parameter CTH value " <<
CTH <<
" out of range [ 0.0, (+inf) [";
6357 if ( (!((
MULT >0.0))) )
6359 UserError0(*
this) <<
"ADMSbjt504tva: Parameter MULT value " <<
MULT <<
" out of range ] 0.0, (+inf) [";
6363 if ( (!((
TYPE >=(-1) &&
TYPE <=1 ))) )
6365 UserError0(*
this) <<
"ADMSbjt504tva: Parameter TYPE value " <<
TYPE <<
" out of range [ (-1), 1 ]";
6369 if ( (!((
GMIN >0 &&
GMIN <=1e-10 ))) )
6371 UserError0(*
this) <<
"ADMSbjt504tva: Parameter GMIN value " <<
GMIN <<
" out of range ] 0, 1e-10 ]";
6392 std::vector<Instance*>::iterator iter;
6396 for (iter=first; iter!=last; ++iter)
6398 (*iter)->processParams();
6416 :
DeviceModel(model_block, configuration.getModelParameters(), factory_block),
6467 TAUR(520.0*1.0e-12),
6518 if (!
given(
"XYCEADMSMODTEMP"))
6543 std::vector<Instance*>::iterator iterI;
6548 for (iterI = firstI; iterI != lastI; ++iterI)
6564 std::vector<Instance*>::const_iterator iter;
6570 os <<
" name model name Parameters" << std::endl;
6571 for (i=0, iter=first; iter!=last; ++iter, ++i)
6573 os <<
" " << i <<
": " << (*iter)->getName() <<
" ";
6577 os <<
"MULT = " << (*iter)->MULT << std::endl;
6602 for (std::vector<Instance *>::const_iterator it = instanceContainer.begin(); it != instanceContainer.end(); ++it)
6614 .registerDevice(
"q", 505)
6615 .registerModelType(
"npn", 505)
6616 .registerModelType(
"pnp", 505);
6621 #ifdef Xyce_ADMS_SENSITIVITIES
6630 void evaluateInitialInstance(
6634 bool instancePar_given_MULT,
6663 bool modelPar_given_TREF,
6665 bool modelPar_given_DTA,
6667 bool modelPar_given_IS,
6669 bool modelPar_given_IK,
6671 bool modelPar_given_VER,
6673 bool modelPar_given_VEF,
6675 bool modelPar_given_BF,
6677 bool modelPar_given_IBF,
6679 bool modelPar_given_MLF,
6681 bool modelPar_given_XIBI,
6683 bool modelPar_given_IZEB,
6685 bool modelPar_given_NZEB,
6687 bool modelPar_given_BRI,
6689 bool modelPar_given_IBR,
6691 bool modelPar_given_VLR,
6693 bool modelPar_given_XEXT,
6695 bool modelPar_given_WAVL,
6697 bool modelPar_given_VAVL,
6699 bool modelPar_given_SFH,
6701 bool modelPar_given_RE,
6703 bool modelPar_given_RBC,
6705 bool modelPar_given_RBV,
6707 bool modelPar_given_RCC,
6709 bool modelPar_given_RCV,
6711 bool modelPar_given_SCRCV,
6713 bool modelPar_given_IHC,
6715 bool modelPar_given_AXI,
6717 bool modelPar_given_CJE,
6719 bool modelPar_given_VDE,
6721 bool modelPar_given_PE,
6723 bool modelPar_given_XCJE,
6725 bool modelPar_given_CBEO,
6727 bool modelPar_given_CJC,
6729 bool modelPar_given_VDC,
6731 bool modelPar_given_PC,
6733 bool modelPar_given_XP,
6735 bool modelPar_given_MC,
6737 bool modelPar_given_XCJC,
6739 bool modelPar_given_RCBLX,
6741 bool modelPar_given_RCBLI,
6743 bool modelPar_given_CBCO,
6745 bool modelPar_given_MTAU,
6747 bool modelPar_given_TAUE,
6749 bool modelPar_given_TAUB,
6751 bool modelPar_given_TEPI,
6753 bool modelPar_given_TAUR,
6755 bool modelPar_given_DEG,
6757 bool modelPar_given_XREC,
6759 bool modelPar_given_AQBO,
6761 bool modelPar_given_AE,
6763 bool modelPar_given_AB,
6765 bool modelPar_given_AEPI,
6767 bool modelPar_given_AEX,
6769 bool modelPar_given_AC,
6771 bool modelPar_given_ACBL,
6773 bool modelPar_given_DVGBF,
6775 bool modelPar_given_DVGBR,
6777 bool modelPar_given_VGB,
6779 bool modelPar_given_VGC,
6781 bool modelPar_given_VGJ,
6783 bool modelPar_given_VGZEB,
6785 bool modelPar_given_AVGEB,
6787 bool modelPar_given_TVGEB,
6789 bool modelPar_given_DVGTE,
6791 bool modelPar_given_DAIS,
6793 bool modelPar_given_AF,
6795 bool modelPar_given_KF,
6797 bool modelPar_given_KFN,
6799 bool modelPar_given_ISS,
6801 bool modelPar_given_ICSS,
6803 bool modelPar_given_IKS,
6805 bool modelPar_given_CJS,
6807 bool modelPar_given_VDS,
6809 bool modelPar_given_PS,
6811 bool modelPar_given_VGS,
6813 bool modelPar_given_AS,
6815 bool modelPar_given_ASUB,
6817 bool modelPar_given_RTH,
6819 bool modelPar_given_CTH,
6821 bool modelPar_given_ATH,
6823 bool modelPar_given_MULT,
6825 bool modelPar_given_GMIN,
6828 bool modelPar_given_LEVEL,
6830 bool modelPar_given_EXMOD,
6832 bool modelPar_given_EXPHI,
6834 bool modelPar_given_EXAVL,
6836 bool modelPar_given_EXSUB,
6838 bool modelPar_given_KAVL,
6840 bool modelPar_given_TYPE,
6841 double admsTemperature,
double adms_vt_nom)
6855 void evaluateInitialModel(
6859 bool modelPar_given_TREF,
6861 bool modelPar_given_DTA,
6863 bool modelPar_given_IS,
6865 bool modelPar_given_IK,
6867 bool modelPar_given_VER,
6869 bool modelPar_given_VEF,
6871 bool modelPar_given_BF,
6873 bool modelPar_given_IBF,
6875 bool modelPar_given_MLF,
6877 bool modelPar_given_XIBI,
6879 bool modelPar_given_IZEB,
6881 bool modelPar_given_NZEB,
6883 bool modelPar_given_BRI,
6885 bool modelPar_given_IBR,
6887 bool modelPar_given_VLR,
6889 bool modelPar_given_XEXT,
6891 bool modelPar_given_WAVL,
6893 bool modelPar_given_VAVL,
6895 bool modelPar_given_SFH,
6897 bool modelPar_given_RE,
6899 bool modelPar_given_RBC,
6901 bool modelPar_given_RBV,
6903 bool modelPar_given_RCC,
6905 bool modelPar_given_RCV,
6907 bool modelPar_given_SCRCV,
6909 bool modelPar_given_IHC,
6911 bool modelPar_given_AXI,
6913 bool modelPar_given_CJE,
6915 bool modelPar_given_VDE,
6917 bool modelPar_given_PE,
6919 bool modelPar_given_XCJE,
6921 bool modelPar_given_CBEO,
6923 bool modelPar_given_CJC,
6925 bool modelPar_given_VDC,
6927 bool modelPar_given_PC,
6929 bool modelPar_given_XP,
6931 bool modelPar_given_MC,
6933 bool modelPar_given_XCJC,
6935 bool modelPar_given_RCBLX,
6937 bool modelPar_given_RCBLI,
6939 bool modelPar_given_CBCO,
6941 bool modelPar_given_MTAU,
6943 bool modelPar_given_TAUE,
6945 bool modelPar_given_TAUB,
6947 bool modelPar_given_TEPI,
6949 bool modelPar_given_TAUR,
6951 bool modelPar_given_DEG,
6953 bool modelPar_given_XREC,
6955 bool modelPar_given_AQBO,
6957 bool modelPar_given_AE,
6959 bool modelPar_given_AB,
6961 bool modelPar_given_AEPI,
6963 bool modelPar_given_AEX,
6965 bool modelPar_given_AC,
6967 bool modelPar_given_ACBL,
6969 bool modelPar_given_DVGBF,
6971 bool modelPar_given_DVGBR,
6973 bool modelPar_given_VGB,
6975 bool modelPar_given_VGC,
6977 bool modelPar_given_VGJ,
6979 bool modelPar_given_VGZEB,
6981 bool modelPar_given_AVGEB,
6983 bool modelPar_given_TVGEB,
6985 bool modelPar_given_DVGTE,
6987 bool modelPar_given_DAIS,
6989 bool modelPar_given_AF,
6991 bool modelPar_given_KF,
6993 bool modelPar_given_KFN,
6995 bool modelPar_given_ISS,
6997 bool modelPar_given_ICSS,
6999 bool modelPar_given_IKS,
7001 bool modelPar_given_CJS,
7003 bool modelPar_given_VDS,
7005 bool modelPar_given_PS,
7007 bool modelPar_given_VGS,
7009 bool modelPar_given_AS,
7011 bool modelPar_given_ASUB,
7013 bool modelPar_given_RTH,
7015 bool modelPar_given_CTH,
7017 bool modelPar_given_ATH,
7019 bool modelPar_given_MULT,
7021 bool modelPar_given_GMIN,
7024 bool modelPar_given_LEVEL,
7026 bool modelPar_given_EXMOD,
7028 bool modelPar_given_EXPHI,
7030 bool modelPar_given_EXAVL,
7032 bool modelPar_given_EXSUB,
7034 bool modelPar_given_KAVL,
7036 bool modelPar_given_TYPE,
7037 double admsTemperature)
7054 void evaluateModelEquations(
7055 std::vector <double> & probeVars,
7057 const int admsProbeID_V_noi_e1,
7058 const int admsProbeID_V_c3_c1,
7059 const int admsProbeID_V_c3_c4,
7060 const int admsProbeID_V_c4_c1,
7061 const int admsProbeID_V_b_c,
7062 const int admsProbeID_V_b_e,
7063 const int admsProbeID_V_b_b1,
7064 const int admsProbeID_V_e_e1,
7065 const int admsProbeID_V_c1_c2,
7066 const int admsProbeID_V_s_c1,
7067 const int admsProbeID_V_b1_b2,
7068 const int admsProbeID_V_b1_e1,
7069 const int admsProbeID_V_b2_e1,
7070 const int admsProbeID_V_b2_c2,
7071 const int admsProbeID_V_b2_c1,
7072 const int admsProbeID_V_dt_GND,
7074 const int admsNodeID_c,
7075 const int admsNodeID_b,
7076 const int admsNodeID_e,
7077 const int admsNodeID_s,
7078 const int admsNodeID_dt,
7079 const int admsNodeID_e1,
7080 const int admsNodeID_b1,
7081 const int admsNodeID_b2,
7082 const int admsNodeID_c3,
7083 const int admsNodeID_c4,
7084 const int admsNodeID_c2,
7085 const int admsNodeID_c1,
7086 const int admsNodeID_noi,
7090 bool instancePar_given_MULT,
7119 bool modelPar_given_TREF,
7121 bool modelPar_given_DTA,
7123 bool modelPar_given_IS,
7125 bool modelPar_given_IK,
7127 bool modelPar_given_VER,
7129 bool modelPar_given_VEF,
7131 bool modelPar_given_BF,
7133 bool modelPar_given_IBF,
7135 bool modelPar_given_MLF,
7137 bool modelPar_given_XIBI,
7139 bool modelPar_given_IZEB,
7141 bool modelPar_given_NZEB,
7143 bool modelPar_given_BRI,
7145 bool modelPar_given_IBR,
7147 bool modelPar_given_VLR,
7149 bool modelPar_given_XEXT,
7151 bool modelPar_given_WAVL,
7153 bool modelPar_given_VAVL,
7155 bool modelPar_given_SFH,
7157 bool modelPar_given_RE,
7159 bool modelPar_given_RBC,
7161 bool modelPar_given_RBV,
7163 bool modelPar_given_RCC,
7165 bool modelPar_given_RCV,
7167 bool modelPar_given_SCRCV,
7169 bool modelPar_given_IHC,
7171 bool modelPar_given_AXI,
7173 bool modelPar_given_CJE,
7175 bool modelPar_given_VDE,
7177 bool modelPar_given_PE,
7179 bool modelPar_given_XCJE,
7181 bool modelPar_given_CBEO,
7183 bool modelPar_given_CJC,
7185 bool modelPar_given_VDC,
7187 bool modelPar_given_PC,
7189 bool modelPar_given_XP,
7191 bool modelPar_given_MC,
7193 bool modelPar_given_XCJC,
7195 bool modelPar_given_RCBLX,
7197 bool modelPar_given_RCBLI,
7199 bool modelPar_given_CBCO,
7201 bool modelPar_given_MTAU,
7203 bool modelPar_given_TAUE,
7205 bool modelPar_given_TAUB,
7207 bool modelPar_given_TEPI,
7209 bool modelPar_given_TAUR,
7211 bool modelPar_given_DEG,
7213 bool modelPar_given_XREC,
7215 bool modelPar_given_AQBO,
7217 bool modelPar_given_AE,
7219 bool modelPar_given_AB,
7221 bool modelPar_given_AEPI,
7223 bool modelPar_given_AEX,
7225 bool modelPar_given_AC,
7227 bool modelPar_given_ACBL,
7229 bool modelPar_given_DVGBF,
7231 bool modelPar_given_DVGBR,
7233 bool modelPar_given_VGB,
7235 bool modelPar_given_VGC,
7237 bool modelPar_given_VGJ,
7239 bool modelPar_given_VGZEB,
7241 bool modelPar_given_AVGEB,
7243 bool modelPar_given_TVGEB,
7245 bool modelPar_given_DVGTE,
7247 bool modelPar_given_DAIS,
7249 bool modelPar_given_AF,
7251 bool modelPar_given_KF,
7253 bool modelPar_given_KFN,
7255 bool modelPar_given_ISS,
7257 bool modelPar_given_ICSS,
7259 bool modelPar_given_IKS,
7261 bool modelPar_given_CJS,
7263 bool modelPar_given_VDS,
7265 bool modelPar_given_PS,
7267 bool modelPar_given_VGS,
7269 bool modelPar_given_AS,
7271 bool modelPar_given_ASUB,
7273 bool modelPar_given_RTH,
7275 bool modelPar_given_CTH,
7277 bool modelPar_given_ATH,
7279 bool modelPar_given_MULT,
7281 bool modelPar_given_GMIN,
7284 bool modelPar_given_LEVEL,
7286 bool modelPar_given_EXMOD,
7288 bool modelPar_given_EXPHI,
7290 bool modelPar_given_EXAVL,
7292 bool modelPar_given_EXSUB,
7294 bool modelPar_given_KAVL,
7296 bool modelPar_given_TYPE,
7298 double admsTemperature,
double adms_vt_nom,
double gmin, std::vector <AdmsSensFadType> & staticContributions, std::vector <AdmsSensFadType> & dynamicContributions,
const Instance & theInstance)
7582 if ((modelPar_TYPE==1))
7592 Xext1 = (1.0-modelPar_XEXT);
7593 CTH_M = (modelPar_CTH*instancePar_MULT);
7594 CBEO_M = (modelPar_CBEO*instancePar_MULT);
7595 CBCO_M = (modelPar_CBCO*instancePar_MULT);
7596 invMULT = (1.0/instancePar_MULT);
7597 SCRCV_M = (modelPar_SCRCV*invMULT);
7598 instanceVar_KF_M = (modelPar_KF*pow(instancePar_MULT,(1.0-modelPar_AF)));
7599 instanceVar_KFN_M = (modelPar_KFN*pow(instancePar_MULT,(1.0-((2.0*(modelPar_MLF-1.0))+(modelPar_AF*(2.0-modelPar_MLF))))));
7600 pow2_2mPE = pow(2.0,(2.0-modelPar_PE));
7601 pow2_PEm2 = (1.0/pow2_2mPE);
7602 Trk = (modelPar_TREF+273.15);
7607 dxa = (((modelPar_VGZEB+(((modelPar_AVGEB*Trk)*Trk)/(Trk+modelPar_TVGEB)))-0.05)/0.1);
7608 if (((modelPar_VGZEB+(((modelPar_AVGEB*Trk)*Trk)/(Trk+modelPar_TVGEB)))<0.05))
7610 VGZEBOK = (0.05+(0.1*log((1.0+exp(dxa)))));
7614 VGZEBOK = ((modelPar_VGZEB+(((modelPar_AVGEB*Trk)*Trk)/(Trk+modelPar_TVGEB)))+(0.1*log((1.0+exp((-dxa))))));
7618 VGZEB_Tr = modelPar_VGZEB;
7619 inv_VGZEB_Tr = (1.0/VGZEB_Tr);
7620 inv_VDE = (1.0/modelPar_VDE);
7621 Tki = (probeVars[admsProbeID_V_dt_GND]);
7624 Tki = (-log((1.0-Tki)));
7632 Vdt = (200.0+log((1.0+(Tki-200.0))));
7635 instanceVar_Tk = ((admsTemperature+modelPar_DTA)+Vdt);
7636 Tamb = (admsTemperature+modelPar_DTA);
7637 tN = (instanceVar_Tk/Trk);
7638 Vt = (8.61708691805812512584e-5*instanceVar_Tk);
7639 Vtr = (8.61708691805812512584e-5*Trk);
7642 VdtINV = (VtINV-VtrINV);
7648 dxa = (((VGZEBOK-(((modelPar_AVGEB*instanceVar_Tk)*instanceVar_Tk)/(instanceVar_Tk+modelPar_TVGEB)))-0.05)/0.1);
7649 if (((VGZEBOK-(((modelPar_AVGEB*instanceVar_Tk)*instanceVar_Tk)/(instanceVar_Tk+modelPar_TVGEB)))<0.05))
7651 VGZEB_T = (0.05+(0.1*log((1.0+exp(dxa)))));
7655 VGZEB_T = ((VGZEBOK-(((modelPar_AVGEB*instanceVar_Tk)*instanceVar_Tk)/(instanceVar_Tk+modelPar_TVGEB)))+(0.1*log((1.0+exp((-dxa))))));
7659 UdeT = (((((-3.0)*
Vt)*log(tN))+(modelPar_VDE*tN))+((1.0-tN)*modelPar_VGB));
7664 dxa = ((0.05-UdeT)/Vt);
7667 VDE_T = (UdeT+(Vt*log((1.0+exp(dxa)))));
7671 VDE_T = (0.05+(Vt*log((1.0+exp((-dxa))))));
7675 UdcT = (((((-3.0)*
Vt)*log(tN))+(modelPar_VDC*tN))+((1.0-tN)*modelPar_VGC));
7680 dxa = ((0.05-UdcT)/Vt);
7683 VDC_T = (UdcT+(Vt*log((1.0+exp(dxa)))));
7687 VDC_T = (0.05+(Vt*log((1.0+exp((-dxa))))));
7691 UdsT = (((((-3.0)*
Vt)*log(tN))+(modelPar_VDS*tN))+((1.0-tN)*modelPar_VGS));
7696 dxa = ((0.05-UdsT)/Vt);
7699 VDS_T = (UdsT+(Vt*log((1.0+exp(dxa)))));
7703 VDS_T = (0.05+(Vt*log((1.0+exp((-dxa))))));
7707 inv_VDE_T = (1.0/VDE_T);
7708 CJE_T_div_CJE = pow((modelPar_VDE*inv_VDE_T),modelPar_PE);
7709 CJE_T = (modelPar_CJE*CJE_T_div_CJE);
7710 CJS_T = (modelPar_CJS*pow((modelPar_VDS/VDS_T),modelPar_PS));
7711 CJCscale = (((1.0-modelPar_XP)*pow((modelPar_VDC/VDC_T),modelPar_PC))+modelPar_XP);
7712 CJCscaleINV = (1.0/CJCscale);
7713 CJC_T = (modelPar_CJC*CJCscale);
7714 XP_T = (modelPar_XP*CJCscaleINV);
7715 RE_T = (modelPar_RE*exp((lntN*modelPar_AE)));
7716 RBV_T = (modelPar_RBV*exp((lntN*(modelPar_AB-modelPar_AQBO))));
7717 RBC_T = (modelPar_RBC*exp((lntN*modelPar_AEX)));
7718 RCCxx_T = (modelPar_RCC*exp((lntN*modelPar_AC)));
7719 RCCex_T = (modelPar_RCBLX*exp((lntN*modelPar_ACBL)));
7720 RCCin_T = (modelPar_RCBLI*exp((lntN*modelPar_ACBL)));
7721 RCV_T = (modelPar_RCV*exp((lntN*modelPar_AEPI)));
7722 BF_T = ((modelPar_BF*exp((lntN*((modelPar_AE-modelPar_AB)-modelPar_AQBO))))*exp(((-modelPar_DVGBF)*VdtINV)));
7723 BRI_T = (modelPar_BRI*exp(((-modelPar_DVGBR)*VdtINV)));
7724 IS_T = ((modelPar_IS*exp((lntN*(((4.0-modelPar_AB)-modelPar_AQBO)+modelPar_DAIS))))*exp(((-modelPar_VGB)*VdtINV)));
7725 IK_T = (modelPar_IK*exp((lntN*(1.0-modelPar_AB))));
7726 IBF_T = ((modelPar_IBF*exp((lntN*(6.0-(2.0*modelPar_MLF)))))*exp((((-modelPar_VGJ)*VdtINV)/modelPar_MLF)));
7727 IBR_T = (((modelPar_IBR*tN)*tN)*exp((((-modelPar_VGC)*VdtINV)/2.0)));
7728 tempx = pow((VGZEB_T*inv_VGZEB_Tr),(-0.5));
7729 y = (1.0/CJE_T_div_CJE);
7730 nZEB_T = ((((((((modelPar_NZEB*VGZEB_T)*VGZEB_T)*tempx)*y)*modelPar_VDE)*inv_VDE_T)*inv_VGZEB_Tr)*inv_VGZEB_Tr);
7731 IZEB_T = (((((((modelPar_IZEB*tempx)*VDE_T)*VDE_T)*inv_VDE)*inv_VDE)*CJE_T_div_CJE)*exp((modelPar_NZEB-nZEB_T)));
7732 tempx = exp((lntN*modelPar_AQBO));
7733 VEF_T = ((modelPar_VEF*tempx)*CJCscaleINV);
7734 VER_T = ((modelPar_VER*tempx)*y);
7735 ISS_T = ((modelPar_ISS*exp((lntN*(4.0-modelPar_AS))))*exp(((-modelPar_VGS)*VdtINV)));
7736 ICSS_T = ((modelPar_ICSS*exp((lntN*(3.5-(0.5*modelPar_ASUB)))))*exp(((-modelPar_VGS)*VdtINV)));
7739 IKS_T = (((modelPar_IKS*exp((lntN*(1.0-modelPar_AS))))*(IS_T/modelPar_IS))*(modelPar_ISS/ISS_T));
7743 IKS_T = (modelPar_IKS*exp((lntN*(1.0-modelPar_AS))));
7745 TAUE_T = ((modelPar_TAUE*exp((lntN*(modelPar_AB-2.0))))*exp(((-modelPar_DVGTE)*VdtINV)));
7746 TAUB_T = (modelPar_TAUB*exp((lntN*((modelPar_AQBO+modelPar_AB)-1.0))));
7747 TEPI_T = (modelPar_TEPI*exp((lntN*(modelPar_AEPI-1.0))));
7748 TAUR_T = ((modelPar_TAUR*(TAUB_T+TEPI_T))/(modelPar_TAUB+modelPar_TEPI));
7749 Tk300 = (instanceVar_Tk-300.0);
7750 if ((instanceVar_Tk<525.0))
7752 BnT = (Bn*((1.0+(7.2e-4*Tk300))-((1.6e-6*Tk300)*Tk300)));
7758 DEG_T = (modelPar_DEG*exp((lntN*modelPar_AQBO)));
7759 RTH_Tamb = (modelPar_RTH*pow((Tamb/Trk),modelPar_ATH));
7760 IS_TM = (IS_T*instancePar_MULT);
7761 IK_TM = (IK_T*instancePar_MULT);
7762 IBF_TM = (IBF_T*instancePar_MULT);
7763 IBR_TM = (IBR_T*instancePar_MULT);
7764 IZEB_TM = (IZEB_T*instancePar_MULT);
7765 IHC_M = (modelPar_IHC*instancePar_MULT);
7766 ISS_TM = (ISS_T*instancePar_MULT);
7767 ICSS_TM = (ICSS_T*instancePar_MULT);
7768 IKS_TM = (IKS_T*instancePar_MULT);
7769 CJE_TM = (CJE_T*instancePar_MULT);
7770 CJC_TM = (CJC_T*instancePar_MULT);
7771 CJS_TM = (CJS_T*instancePar_MULT);
7772 instanceVar_RE_TM = (RE_T*invMULT);
7773 instanceVar_RBC_TM = (RBC_T*invMULT);
7774 RBV_TM = (RBV_T*invMULT);
7775 RCCxx_TM = (RCCxx_T*invMULT);
7776 RCCex_TM = (RCCex_T*invMULT);
7777 RCCin_TM = (RCCin_T*invMULT);
7778 RCV_TM = (RCV_T*invMULT);
7779 if ((modelPar_RCC>0.0))
7781 instanceVar_GCCxx_TM = (1.0/RCCxx_TM);
7785 instanceVar_GCCxx_TM = 0;
7787 if ((modelPar_RCBLX>0.0))
7789 instanceVar_GCCex_TM = (1.0/RCCex_TM);
7793 instanceVar_GCCex_TM = 0;
7795 if ((modelPar_RCBLI>0.0))
7797 instanceVar_GCCin_TM = (1.0/RCCin_TM);
7801 instanceVar_GCCin_TM = 0;
7803 RTH_Tamb_M = (RTH_Tamb*invMULT);
7805 Vb2c1 = probeVars[admsProbeID_V_b2_c1];
7807 Vb2c2 = probeVars[admsProbeID_V_b2_c2];
7809 Vb2e1 = (modelPar_TYPE*(probeVars[admsProbeID_V_b2_e1]));
7810 Vb1e1 = probeVars[admsProbeID_V_b1_e1];
7812 Vb1b2 = probeVars[admsProbeID_V_b1_b2];
7814 Vsc1 = (modelPar_TYPE*(probeVars[admsProbeID_V_s_c1]));
7815 Vc1c2 = (modelPar_TYPE*(probeVars[admsProbeID_V_c1_c2]));
7816 Vee1 = (modelPar_TYPE*(probeVars[admsProbeID_V_e_e1]));
7817 Vbb1 = (modelPar_TYPE*(probeVars[admsProbeID_V_b_b1]));
7818 Vbe = (modelPar_TYPE*(probeVars[admsProbeID_V_b_e]));
7819 Vbc = (modelPar_TYPE*(probeVars[admsProbeID_V_b_c]));
7820 if ((modelPar_RCBLX>0.0))
7822 if ((modelPar_RCBLI>0.0))
7824 Vc4c1 = (modelPar_TYPE*(probeVars[admsProbeID_V_c4_c1]));
7825 Vc3c4 = (modelPar_TYPE*(probeVars[admsProbeID_V_c3_c4]));
7830 Vc3c4 = (modelPar_TYPE*(probeVars[admsProbeID_V_c3_c1]));
7835 if ((modelPar_RCBLI>0.0))
7837 Vc4c1 = (modelPar_TYPE*(probeVars[admsProbeID_V_c4_c1]));
7846 Vb1c4 = (((Vb1b2+Vb2c2)-Vc1c2)-Vc4c1);
7847 Vcc3 = ((((-Vbc)+Vbb1)+Vb1c4)-Vc3c4);
7849 Vsc4 = (Vsc1-Vc4c1);
7850 Vsc3 = (Vsc4-Vc3c4);
7851 if (((Vb2c2*VtINV)<400.0))
7853 eVb2c2 = exp((Vb2c2*VtINV));
7858 eVb2c2 = (expl*(1.0+((Vb2c2*VtINV)-400.0)));
7860 if (((Vb2e1*VtINV)<400.0))
7862 eVb2e1 = exp((Vb2e1*VtINV));
7867 eVb2e1 = (expl*(1.0+((Vb2e1*VtINV)-400.0)));
7869 if (((Vb1e1*VtINV)<400.0))
7871 eVb1e1 = exp((Vb1e1*VtINV));
7876 eVb1e1 = (expl*(1.0+((Vb1e1*VtINV)-400.0)));
7878 if (((Vb1c4*VtINV)<400.0))
7880 eVb1c4 = exp((Vb1c4*VtINV));
7885 eVb1c4 = (expl*(1.0+((Vb1c4*VtINV)-400.0)));
7887 if (((Vb1b2*VtINV)<400.0))
7889 instanceVar_eVb1b2 = exp((Vb1b2*VtINV));
7894 instanceVar_eVb1b2 = (expl*(1.0+((Vb1b2*VtINV)-400.0)));
7896 if (((Vbc3*VtINV)<400.0))
7898 eVbc3 = exp((Vbc3*VtINV));
7903 eVbc3 = (expl*(1.0+((Vbc3*VtINV)-400.0)));
7905 if (((Vsc1*VtINV)<400.0))
7907 eVsc1 = exp((Vsc1*VtINV));
7912 eVsc1 = (expl*(1.0+((Vsc1*VtINV)-400.0)));
7914 if (((Vsc3*VtINV)<400.0))
7916 eVsc3 = exp((Vsc3*VtINV));
7921 eVsc3 = (expl*(1.0+((Vsc3*VtINV)-400.0)));
7923 if (((Vsc4*VtINV)<400.0))
7925 eVsc4 = exp((Vsc4*VtINV));
7930 eVsc4 = (expl*(1.0+((Vsc4*VtINV)-400.0)));
7932 if ((((Vbc3-VDC_T)*VtINV)<400.0))
7934 eVbc3VDC = exp(((Vbc3-VDC_T)*VtINV));
7939 eVbc3VDC = (expl*(1.0+(((Vbc3-VDC_T)*VtINV)-400.0)));
7941 if ((((Vb1c4-VDC_T)*VtINV)<400.0))
7943 eVb1c4VDC = exp(((Vb1c4-VDC_T)*VtINV));
7948 eVb1c4VDC = (expl*(1.0+(((Vb1c4-VDC_T)*VtINV)-400.0)));
7950 if ((((Vb2c2-VDC_T)*VtINV)<400.0))
7952 eVb2c2VDC = exp(((Vb2c2-VDC_T)*VtINV));
7957 eVb2c2VDC = (expl*(1.0+(((Vb2c2-VDC_T)*VtINV)-400.0)));
7959 if ((((Vb2c1-VDC_T)*VtINV)<400.0))
7961 eVb2c1VDC = exp(((Vb2c1-VDC_T)*VtINV));
7966 eVb2c1VDC = (expl*(1.0+(((Vb2c1-VDC_T)*VtINV)-400.0)));
7968 K0 = sqrt((1.0+(4.0*eVb2c2VDC)));
7969 Kw = sqrt((1.0+(4.0*eVb2c1VDC)));
7970 pW = ((2.0*eVb2c1VDC)/(1.0+Kw));
7975 Ec = (Vt*((K0-Kw)-log(((K0+1.0)/(Kw+1.0)))));
7976 Ic1c2 = ((Ec+Vc1c2)/RCV_TM);
7985 tmpV = (100.0+log((1.0+(Vb2c1-100.0))));
7988 Vqs_th = ((VDC_T+((2.0*
Vt)*log(((((0.5*Ic1c2)*RCV_TM)*VtINV)+1.0))))-tmpV);
7989 eps_VDC = (0.2*VDC_T);
7990 eps2 = (eps_VDC*eps_VDC);
7991 x2 = (Vqs_th*Vqs_th);
7994 Vqs = ((0.5*eps2)/(sqrt((x2+eps2))-Vqs_th));
7998 Vqs = (0.5*(sqrt((x2+eps2))+Vqs_th));
8001 Iqs = ((Vqs*(Vqs+(IHC_M*SCRCV_M)))/(SCRCV_M*(Vqs+(IHC_M*RCV_TM))));
8002 Ic1c2_Iqs = (Ic1c2/Iqs);
8007 dxa = ((Ic1c2_Iqs-1.0)/modelPar_AXI);
8008 if ((Ic1c2_Iqs<1.0))
8010 alpha1 = (1.0+(modelPar_AXI*log((1.0+exp(dxa)))));
8014 alpha1 = (Ic1c2_Iqs+(modelPar_AXI*log((1.0+exp((-dxa))))));
8018 alpha = (alpha1/(1.0+(modelPar_AXI*log((1.0+exp(((-1.0)/modelPar_AXI)))))));
8019 vyi = (Vqs/(IHC_M*SCRCV_M));
8020 yi = ((1.0+sqrt((1.0+(((4.0*alpha)*vyi)*(1.0+vyi)))))/((2.0*alpha)*(1.0+vyi)));
8021 xi_w = (1.0-(yi/(1.0+(pW*yi))));
8022 gp0 = ((((0.5*Ic1c2)*RCV_TM)*xi_w)*VtINV);
8023 gp0_help = ((2.0*gp0)+(pW*((pW+gp0)+1.0)));
8024 gp02 = (0.5*(gp0-1.0));
8025 sqr_arg = ((gp02*gp02)+gp0_help);
8028 p0star = (gp02+sqrt(sqr_arg));
8032 p0star = (gp0_help/(sqrt(sqr_arg)-gp02));
8034 if ((p0star<1.0e-40))
8038 eVb2c2star = ((p0star*(p0star+1.0))*exp((VDC_T*VtINV)));
8039 B1 = ((0.5*SCRCV_M)*(Ic1c2-IHC_M));
8040 B2 = (((SCRCV_M*RCV_TM)*IHC_M)*Ic1c2);
8041 Vxi0 = (B1+sqrt(((B1*B1)+B2)));
8042 Vch = (VDC_T*(0.1+((2.0*Ic1c2)/(Ic1c2+Iqs))));
8043 Icap = ((IHC_M*Ic1c2)/(IHC_M+Ic1c2));
8044 Icap_IHC = (IHC_M/(IHC_M+Ic1c2));
8049 p0star = ((2.0*eVb2c2VDC)/(1.0+K0));
8050 eVb2c2star = eVb2c2;
8051 if (((fabs(Vc1c2)<(1.0e-5*
Vt))||(fabs(Ec)<((1.0e-40*
Vt)*(K0+Kw)))))
8053 pav = (0.5*(p0star+pW));
8054 xi_w = (pav/(pav+1.0));
8058 xi_w = (Ec/((Ec+Vb2c2)-Vb2c1));
8063 Icap_IHC = (1.0-(Icap/IHC_M));
8065 Vfe = (VDE_T*(1.0-pow(3.0,((-1.0)/modelPar_PE))));
8066 a_VDE = (0.1*VDE_T);
8071 dxa = ((Vb2e1-Vfe)/a_VDE);
8074 Vje = (Vb2e1-(a_VDE*log((1.0+exp(dxa)))));
8078 Vje = (Vfe-(a_VDE*log((1.0+exp((-dxa))))));
8082 E0BE = pow((1.0-(Vje*inv_VDE_T)),(1.0-modelPar_PE));
8083 Vte = (((VDE_T/(1.0-modelPar_PE))*(1.0-E0BE))+(3.0*(Vb2e1-Vje)));
8084 Vjunc = (Vb2c1+Vxi0);
8085 bjc = ((2.0-XP_T)/(1.0-XP_T));
8086 Vfc = (VDC_T*(1.0-pow(bjc,((-1.0)/modelPar_PC))));
8091 dxa = ((Vjunc-Vfc)/Vch);
8094 Vjc = (Vjunc-(Vch*log((1.0+exp(dxa)))));
8098 Vjc = (Vfc-(Vch*log((1.0+exp((-dxa))))));
8102 fI = pow(Icap_IHC,modelPar_MC);
8103 Vcv = (((VDC_T/(1.0-modelPar_PC))*(1.0-(fI*pow((1.0-(Vjc/VDC_T)),(1.0-modelPar_PC)))))+((fI*bjc)*(Vjunc-Vjc)));
8104 Vtc = (((1.0-XP_T)*Vcv)+(XP_T*Vb2c1));
8105 If0 = ((4.0*IS_TM)/IK_TM);
8107 n0 = (f1/(1.0+sqrt((1.0+f1))));
8108 f2 = (If0*eVb2c2star);
8109 nB = (f2/(1.0+sqrt((1.0+f2))));
8110 if ((modelPar_DEG==0.0))
8112 q0I = ((1.0+(Vte/VER_T))+(Vtc/VEF_T));
8116 termE = ((((Vte/VER_T)+1.0)*DEG_T)*VtINV);
8117 termC = ((((-Vtc)/VEF_T)*DEG_T)*VtINV);
8118 q0I = ((exp(termE)-exp(termC))/(exp((DEG_T*VtINV))-1.0));
8124 q1I = ((0.5*eps2)/(sqrt((x2+eps2))-q0I));
8128 q1I = (0.5*(sqrt((x2+eps2))+q0I));
8131 instanceVar_qBI = (q1I*(1.0+(0.5*(n0+nB))));
8132 instanceVar_Ir = (IS_TM*eVb2c2star);
8133 instanceVar_If = (IS_TM*eVb2e1);
8134 In = ((instanceVar_If-instanceVar_Ir)/instanceVar_qBI);
8135 Ibf0 = (IS_TM/BF_T);
8136 if ((modelPar_XREC==0.0))
8138 instanceVar_Ib1 = (((1.0-modelPar_XIBI)*Ibf0)*(eVb2e1-1.0));
8142 instanceVar_Ib1 = (((1.0-modelPar_XIBI)*Ibf0)*(((1.0-modelPar_XREC)*(eVb2e1-1.0))+((modelPar_XREC*((eVb2e1+eVb2c2star)-2.0))*(1.0+(Vtc/VEF_T)))));
8144 instanceVar_Ib1_s = ((modelPar_XIBI*Ibf0)*(eVb1e1-1.0));
8145 if ((((Vb2e1*VtINV)/modelPar_MLF)<400.0))
8147 tmpExp = exp(((Vb2e1*VtINV)/modelPar_MLF));
8152 tmpExp = (expl*(1.0+(((Vb2e1*VtINV)/modelPar_MLF)-400.0)));
8154 instanceVar_Ib2 = ((IBF_TM*(tmpExp-1.0))+(modelPar_GMIN*Vb2e1));
8155 if ((((0.5*Vb1c4)*VtINV)<400.0))
8157 tmpExp = exp(((0.5*Vb1c4)*VtINV));
8162 tmpExp = (expl*(1.0+(((0.5*Vb1c4)*VtINV)-400.0)));
8164 instanceVar_Ib3 = (((IBR_TM*(eVb1c4-1.0))/(tmpExp+exp(((0.5*modelPar_VLR)*VtINV))))+(modelPar_GMIN*Vb1c4));
8165 if ((((modelPar_IZEB>0.0)&&(modelPar_NZEB>0.0))&&(Vb2e1<0)))
8167 if (((nZEB_T*(1-(pow2_2mPE/(2.0*E0BE))))<400.0))
8169 eZEB = exp((nZEB_T*(1-(pow2_2mPE/(2.0*E0BE)))));
8174 eZEB = (expl*(1.0+((nZEB_T*(1-(pow2_2mPE/(2.0*E0BE))))-400.0)));
8176 x = (Vb2e1*inv_VDE_T);
8177 dE0BE = ((pow((-x),((-2.0)-modelPar_PE))*((modelPar_PE*((1-(modelPar_PE*modelPar_PE))-((3*x)*(modelPar_PE-1))))-(((6*x)*x)*((modelPar_PE-1)+x))))*0.16666666666666666667);
8178 if (((((Vb2e1*pow2_2mPE)*nZEB_T)/(VGZEB_T*dE0BE))<400.0))
8180 edZEB = exp((((Vb2e1*pow2_2mPE)*nZEB_T)/(VGZEB_T*dE0BE)));
8185 edZEB = (expl*(1.0+((((Vb2e1*pow2_2mPE)*nZEB_T)/(VGZEB_T*dE0BE))-400.0)));
8187 DZEB = ((-Vb2e1)-(((VGZEB_T*dE0BE)*(1-edZEB))/(pow2_2mPE*nZEB_T)));
8188 instanceVar_Izteb = ((((((2.0*IZEB_TM)*DZEB)*E0BE)*eZEB)*inv_VDE_T)*pow2_PEm2);
8193 instanceVar_Izteb = 0;
8196 g2 = (4.0*eVb1c4VDC);
8197 nBex = ((g1-If0)/(1.0+sqrt((1.0+g1))));
8198 pWex = (g2/(1.0+sqrt((1.0+g2))));
8199 instanceVar_Iex = ((IK_TM*nBex)/(2.0*BRI_T));
8200 if ((modelPar_EXSUB==1.0))
8202 instanceVar_Isub = (((2.0*ISS_TM)*(eVb1c4-eVsc4))/(1.0+sqrt((1.0+((4.0*(IS_TM/IKS_TM))*eVb1c4)))));
8206 instanceVar_Isub = (((2.0*ISS_TM)*(eVb1c4-1.0))/(1.0+sqrt((1.0+((4.0*(IS_TM/IKS_TM))*eVb1c4)))));
8208 if ((modelPar_ICSS<0.0))
8210 Isf = (ISS_TM*(eVsc1-1.0));
8214 Isf = (ICSS_TM*(eVsc1-1.0));
8216 instanceVar_XIex = 0.0;
8217 instanceVar_XIsub = 0.0;
8218 if (((modelPar_EXMOD==1)||(modelPar_EXMOD==2)))
8220 instanceVar_Iex = (instanceVar_Iex*Xext1);
8221 instanceVar_Isub = (instanceVar_Isub*Xext1);
8223 XnBex = ((Xg1-If0)/(1.0+sqrt((1.0+Xg1))));
8224 XIMex = ((((modelPar_XEXT*0.5)*IK_TM)*XnBex)/BRI_T);
8225 if ((modelPar_EXSUB==1.0))
8227 XIMsub = ((((modelPar_XEXT*2.0)*ISS_TM)*(eVbc3-eVsc3))/(1.0+sqrt((1.0+(((4.0*IS_T)/IKS_T)*eVbc3)))));
8231 XIMsub = ((((modelPar_XEXT*2.0)*ISS_TM)*(eVbc3-1.0))/(1.0+sqrt((1.0+(((4.0*IS_T)/IKS_T)*eVbc3)))));
8233 if ((modelPar_EXMOD==1))
8235 Vex_bias = ((modelPar_XEXT*((IS_TM/BRI_T)+ISS_TM))*RCCxx_TM);
8236 Vex = (Vt*(2.0-log((Vex_bias*VtINV))));
8242 VBex = ((0.5*eps2)/(sqrt((x2+eps2))-vdif));
8246 VBex = (0.5*(sqrt((x2+eps2))+vdif));
8249 Fex = (VBex/((Vex_bias+((XIMex+XIMsub)*RCCxx_TM))+VBex));
8258 instanceVar_XIex = (Fex*XIMex);
8259 instanceVar_XIsub = (Fex*XIMsub);
8266 q0Q = ((1.0+(Vte/VER_T))+(Vtc/VEF_T));
8271 q1Q = ((0.5*eps2)/(sqrt((x2+eps2))-q0Q));
8275 q1Q = (0.5*(sqrt((x2+eps2))+q0Q));
8278 qBQ = (q1Q*(1.0+(0.5*(n0+nB))));
8279 instanceVar_Rb2 = ((3.0*RBV_TM)/qBQ);
8280 Ib1b2 = ((((2.0*
Vt)*(instanceVar_eVb1b2-1.0))+Vb1b2)/instanceVar_Rb2);
8282 instanceVar_Gem = 0.0;
8283 if (((Ic1c2>0.0)&&(Vb2c1<VDC_T)))
8285 dEdx0 = ((2.0*modelPar_VAVL)/(modelPar_WAVL*modelPar_WAVL));
8286 sqr_arg = ((VDC_T-Vb2c1)/Icap_IHC);
8287 xd = sqrt(((2.0*sqr_arg)/dEdx0));
8288 if ((modelPar_EXAVL==0.0))
8290 Weff = modelPar_WAVL;
8294 xi_w1 = (1.0-(0.5*xi_w));
8295 Weff = ((modelPar_WAVL*xi_w1)*xi_w1);
8297 Wd = ((xd*Weff)/sqrt(((xd*xd)+(Weff*Weff))));
8298 Eav = ((VDC_T-Vb2c1)/Wd);
8299 E0 = (Eav+(((0.5*Wd)*dEdx0)*Icap_IHC));
8300 if ((modelPar_EXAVL==0))
8306 SHw = (1.0+((2.0*modelPar_SFH)*(1.0+(2.0*xi_w))));
8307 Efi = ((1.0+modelPar_SFH)/(1.0+(2.0*modelPar_SFH)));
8308 Ew = (Eav-(((0.5*Wd)*dEdx0)*(Efi-(Ic1c2/(IHC_M*SHw)))));
8309 sqr_arg = (((Ew-E0)*(Ew-E0))+((((0.1*Eav)*Eav)*Icap)/IHC_M));
8310 Em = (0.5*((Ew+E0)+sqrt(sqr_arg)));
8312 EmEav_Em = ((Em-Eav)/Em);
8313 if ((fabs(EmEav_Em)>1.0e-7))
8315 lambda = ((0.5*Wd)/EmEav_Em);
8316 instanceVar_Gem = ((((An/BnT)*Em)*lambda)*(exp(((-BnT)/Em))-exp((((-BnT)/Em)*(1.0+(Weff/lambda))))));
8320 instanceVar_Gem = ((An*Weff)*exp(((-BnT)/Em)));
8322 Gmax = (((Vt/(Ic1c2*(instanceVar_RBC_TM+instanceVar_Rb2)))+(instanceVar_qBI/BF_T))+(instanceVar_RE_TM/(instanceVar_RBC_TM+instanceVar_Rb2)));
8323 Iavl = ((Ic1c2*instanceVar_Gem)/((instanceVar_Gem+(instanceVar_Gem/Gmax))+1.0));
8325 if ((eVb2c2star>0.0))
8327 Vb2c2star = (Vt*log(eVb2c2star));
8333 power = ((((((((((((((((In*(Vb2e1-Vb2c2star))+(Ic1c2*(Vb2c2star-Vb2c1)))-(Iavl*Vb2c2star))+((Vee1*Vee1)/instanceVar_RE_TM))+((Vcc3*Vcc3)*instanceVar_GCCxx_TM))+((Vc3c4*Vc3c4)*instanceVar_GCCex_TM))+((Vc4c1*Vc4c1)*instanceVar_GCCin_TM))+((Vbb1*Vbb1)/instanceVar_RBC_TM))+(Ib1b2*Vb1b2))+(((instanceVar_Ib1+instanceVar_Ib2)-instanceVar_Izteb)*Vb2e1))+(instanceVar_Ib1_s*Vb1e1))+((instanceVar_Iex+instanceVar_Ib3)*Vb1c4))+(instanceVar_XIex*Vbc3))+(instanceVar_Isub*(Vb1c4-Vsc4)))+(instanceVar_XIsub*(Vbc3-Vsc3)))+(Isf*Vsc1));
8334 Qte = (((1.0-modelPar_XCJE)*CJE_TM)*Vte);
8339 dxa = ((Vb1e1-Vfe)/a_VDE);
8342 Vje_s = (Vb1e1-(a_VDE*log((1.0+exp(dxa)))));
8346 Vje_s = (Vfe-(a_VDE*log((1.0+exp((-dxa))))));
8350 Qte_s = ((modelPar_XCJE*CJE_TM)*(((VDE_T/(1.0-modelPar_PE))*(1.0-pow((1.0-(Vje_s*inv_VDE_T)),(1.0-modelPar_PE))))+(3.0*(Vb1e1-Vje_s))));
8351 Qtc = ((modelPar_XCJC*CJC_TM)*Vtc);
8352 Qb0 = (TAUB_T*IK_TM);
8353 Qbe_qs = (((0.5*Qb0)*n0)*q1Q);
8354 Qbc_qs = (((0.5*Qb0)*nB)*q1Q);
8355 a_VDC = (0.1*VDC_T);
8360 dxa = ((Vb1c4-Vfc)/a_VDC);
8363 Vjcex = (Vb1c4-(a_VDC*log((1.0+exp(dxa)))));
8367 Vjcex = (Vfc-(a_VDC*log((1.0+exp((-dxa))))));
8371 Vtexv = (((VDC_T/(1.0-modelPar_PC))*(1.0-pow((1.0-(Vjcex/VDC_T)),(1.0-modelPar_PC))))+(bjc*(Vb1c4-Vjcex)));
8372 Qtex = (((CJC_TM*(((1.0-XP_T)*Vtexv)+(XP_T*Vb1c4)))*(1.0-modelPar_XCJC))*(1.0-modelPar_XEXT));
8377 dxa = ((Vbc3-Vfc)/a_VDC);
8380 XVjcex = (Vbc3-(a_VDC*log((1.0+exp(dxa)))));
8384 XVjcex = (Vfc-(a_VDC*log((1.0+exp((-dxa))))));
8388 XVtexv = (((VDC_T/(1.0-modelPar_PC))*(1.0-pow((1.0-(XVjcex/VDC_T)),(1.0-modelPar_PC))))+(bjc*(Vbc3-XVjcex)));
8389 XQtex = (((CJC_TM*(((1.0-XP_T)*XVtexv)+(XP_T*Vbc3)))*(1.0-modelPar_XCJC))*modelPar_XEXT);
8390 a_VDS = (0.1*VDS_T);
8391 Vfs = (VDS_T*(1.0-pow(2.0,((-1.0)/modelPar_PS))));
8396 dxa = ((Vsc1-Vfs)/a_VDS);
8399 Vjs = (Vsc1-(a_VDS*log((1.0+exp(dxa)))));
8403 Vjs = (Vfs-(a_VDS*log((1.0+exp((-dxa))))));
8407 Qts = (CJS_TM*(((VDS_T/(1.0-modelPar_PS))*(1.0-pow((1.0-(Vjs/VDS_T)),(1.0-modelPar_PS))))+(2.0*(Vsc1-Vjs))));
8408 Qe0 = ((TAUE_T*IK_TM)*pow((IS_TM/IK_TM),(1.0/modelPar_MTAU)));
8409 if (((Vb2e1/(modelPar_MTAU*Vt))<400.0))
8411 tmpExp = exp((Vb2e1/(modelPar_MTAU*Vt)));
8416 tmpExp = (expl*(1.0+((Vb2e1/(modelPar_MTAU*
Vt))-400.0)));
8418 Qe = (Qe0*(tmpExp-1.0));
8419 Qepi0 = (((4.0*TEPI_T)*Vt)/RCV_TM);
8420 Qepi = (((0.5*Qepi0)*xi_w)*((p0star+pW)+2.0));
8421 Qex = (((TAUR_T*0.5)*((Qb0*nBex)+(Qepi0*pWex)))/(TAUB_T+TEPI_T));
8423 if ((modelPar_EXMOD==1))
8425 Qex = (Qex*(1.0-modelPar_XEXT));
8426 Xg2 = (4.0*eVbc3VDC);
8427 XpWex = (Xg2/(1.0+sqrt((1.0+Xg2))));
8428 XQex = (((((0.5*Fex)*modelPar_XEXT)*TAUR_T)*((Qb0*XnBex)+(Qepi0*XpWex)))/(TAUB_T+TEPI_T));
8431 if ((modelPar_EXPHI==1))
8433 dVteVje = (pow((1.0-(Vje*inv_VDE_T)),(-modelPar_PE))-3.0);
8434 Vb2e1Vfe = ((Vb2e1-Vfe)/a_VDE);
8437 dVjeVb2e1 = (1.0/(1.0+exp(Vb2e1Vfe)));
8441 dVjeVb2e1 = (exp((-Vb2e1Vfe))/(1.0+exp((-Vb2e1Vfe))));
8443 dVteVb2e1 = ((dVteVje*dVjeVb2e1)+3.0);
8444 dQteVb2e1 = (((1.0-modelPar_XCJE)*CJE_TM)*dVteVb2e1);
8445 dn0Vb2e1 = (((If0*eVb2e1)*VtINV)*(0.5/sqrt((1.0+f1))));
8446 dQbeVb2e1 = (((0.5*Qb0)*q1Q)*dn0Vb2e1);
8447 dQeVb2e1 = ((Qe+Qe0)/(modelPar_MTAU*Vt));
8448 Qb1b2 = ((0.2*Vb1b2)*((dQteVb2e1+dQbeVb2e1)+dQeVb2e1));
8449 Qbc = ((Qbe_qs*0.33333333333333333333)+Qbc_qs);
8450 Qbe = ((2.0*Qbe_qs)*0.33333333333333333333);
8458 staticContributions[admsNodeID_c1] += (modelPar_TYPE*Ic1c2);
8459 staticContributions[admsNodeID_c2] -= (modelPar_TYPE*Ic1c2);
8461 staticContributions[admsNodeID_c2] += (modelPar_TYPE*In);
8462 staticContributions[admsNodeID_e1] -= (modelPar_TYPE*In);
8464 staticContributions[admsNodeID_b1] += (modelPar_TYPE*instanceVar_Ib1_s);
8465 staticContributions[admsNodeID_e1] -= (modelPar_TYPE*instanceVar_Ib1_s);
8467 staticContributions[admsNodeID_b2] += (modelPar_TYPE*((instanceVar_Ib1+instanceVar_Ib2)-instanceVar_Izteb));
8468 staticContributions[admsNodeID_e1] -= (modelPar_TYPE*((instanceVar_Ib1+instanceVar_Ib2)-instanceVar_Izteb));
8470 staticContributions[admsNodeID_b1] += (modelPar_TYPE*instanceVar_Isub);
8471 staticContributions[admsNodeID_s] -= (modelPar_TYPE*instanceVar_Isub);
8473 staticContributions[admsNodeID_b] += (modelPar_TYPE*instanceVar_XIsub);
8474 staticContributions[admsNodeID_s] -= (modelPar_TYPE*instanceVar_XIsub);
8476 staticContributions[admsNodeID_s] += (modelPar_TYPE*Isf);
8477 staticContributions[admsNodeID_c1] -= (modelPar_TYPE*Isf);
8479 staticContributions[admsNodeID_b1] += (modelPar_TYPE*Ib1b2);
8480 staticContributions[admsNodeID_b2] -= (modelPar_TYPE*Ib1b2);
8482 staticContributions[admsNodeID_b2] += (modelPar_TYPE*((-1.0)*Iavl));
8483 staticContributions[admsNodeID_c2] -= (modelPar_TYPE*((-1.0)*Iavl));
8485 staticContributions[admsNodeID_e] += ((modelPar_TYPE*Vee1)/instanceVar_RE_TM);
8486 staticContributions[admsNodeID_e1] -= ((modelPar_TYPE*Vee1)/instanceVar_RE_TM);
8488 staticContributions[admsNodeID_b] += ((modelPar_TYPE*Vbb1)/instanceVar_RBC_TM);
8489 staticContributions[admsNodeID_b1] -= ((modelPar_TYPE*Vbb1)/instanceVar_RBC_TM);
8491 staticContributions[admsNodeID_dt] += ((probeVars[admsProbeID_V_dt_GND])/RTH_Tamb_M);
8493 dynamicContributions[admsNodeID_dt] += ((CTH_M*(probeVars[admsProbeID_V_dt_GND])));
8495 staticContributions[admsNodeID_dt] += ((-1.0)*power);
8497 staticContributions[admsNodeID_noi] += (probeVars[admsProbeID_V_noi_e1]);
8498 staticContributions[admsNodeID_e1] -= (probeVars[admsProbeID_V_noi_e1]);
8499 cor_exp_1 = (sqrt((1.0+(2.0*instanceVar_Gem)))*(probeVars[admsProbeID_V_noi_e1]));
8501 staticContributions[admsNodeID_b2] += cor_exp_1;
8502 staticContributions[admsNodeID_e1] -= cor_exp_1;
8503 cor_exp_2 = (((2.0+(2.0*instanceVar_Gem))/sqrt((1.0+(2.0*instanceVar_Gem))))*(probeVars[admsProbeID_V_noi_e1]));
8505 staticContributions[admsNodeID_e1] += cor_exp_2;
8506 staticContributions[admsNodeID_c2] -= cor_exp_2;
8508 dynamicContributions[admsNodeID_b2] += ((modelPar_TYPE*((Qte+Qbe)+Qe)));
8509 dynamicContributions[admsNodeID_e1] -= ((modelPar_TYPE*((Qte+Qbe)+Qe)));
8511 dynamicContributions[admsNodeID_b1] += ((modelPar_TYPE*Qte_s));
8512 dynamicContributions[admsNodeID_e1] -= ((modelPar_TYPE*Qte_s));
8514 dynamicContributions[admsNodeID_b2] += ((modelPar_TYPE*((Qtc+Qbc)+Qepi)));
8515 dynamicContributions[admsNodeID_c2] -= ((modelPar_TYPE*((Qtc+Qbc)+Qepi)));
8517 dynamicContributions[admsNodeID_s] += ((modelPar_TYPE*Qts));
8518 dynamicContributions[admsNodeID_c1] -= ((modelPar_TYPE*Qts));
8520 dynamicContributions[admsNodeID_b1] += ((modelPar_TYPE*Qb1b2));
8521 dynamicContributions[admsNodeID_b2] -= ((modelPar_TYPE*Qb1b2));
8523 dynamicContributions[admsNodeID_b] += (((modelPar_TYPE*CBEO_M)*Vbe));
8524 dynamicContributions[admsNodeID_e] -= (((modelPar_TYPE*CBEO_M)*Vbe));
8526 dynamicContributions[admsNodeID_b] += (((modelPar_TYPE*CBCO_M)*Vbc));
8527 dynamicContributions[admsNodeID_c] -= (((modelPar_TYPE*CBCO_M)*Vbc));
8529 if ((modelPar_RCBLX>0.0))
8532 staticContributions[admsNodeID_b] += (modelPar_TYPE*instanceVar_XIex);
8533 staticContributions[admsNodeID_c3] -= (modelPar_TYPE*instanceVar_XIex);
8535 staticContributions[admsNodeID_c] += ((modelPar_TYPE*Vcc3)*instanceVar_GCCxx_TM);
8536 staticContributions[admsNodeID_c3] -= ((modelPar_TYPE*Vcc3)*instanceVar_GCCxx_TM);
8538 dynamicContributions[admsNodeID_b] += ((modelPar_TYPE*(XQtex+XQex)));
8539 dynamicContributions[admsNodeID_c3] -= ((modelPar_TYPE*(XQtex+XQex)));
8540 if ((modelPar_RCBLI>0.0))
8543 staticContributions[admsNodeID_c4] += ((modelPar_TYPE*Vc4c1)*instanceVar_GCCin_TM);
8544 staticContributions[admsNodeID_c1] -= ((modelPar_TYPE*Vc4c1)*instanceVar_GCCin_TM);
8546 staticContributions[admsNodeID_b1] += (modelPar_TYPE*(instanceVar_Ib3+instanceVar_Iex));
8547 staticContributions[admsNodeID_c4] -= (modelPar_TYPE*(instanceVar_Ib3+instanceVar_Iex));
8549 staticContributions[admsNodeID_c3] += ((modelPar_TYPE*Vc3c4)*instanceVar_GCCex_TM);
8550 staticContributions[admsNodeID_c4] -= ((modelPar_TYPE*Vc3c4)*instanceVar_GCCex_TM);
8552 dynamicContributions[admsNodeID_b1] += ((modelPar_TYPE*(Qtex+Qex)));
8553 dynamicContributions[admsNodeID_c4] -= ((modelPar_TYPE*(Qtex+Qex)));
8560 staticContributions[admsNodeID_b1] += (modelPar_TYPE*(instanceVar_Ib3+instanceVar_Iex));
8561 staticContributions[admsNodeID_c1] -= (modelPar_TYPE*(instanceVar_Ib3+instanceVar_Iex));
8563 dynamicContributions[admsNodeID_b1] += ((modelPar_TYPE*(Qtex+Qex)));
8564 dynamicContributions[admsNodeID_c1] -= ((modelPar_TYPE*(Qtex+Qex)));
8566 staticContributions[admsNodeID_c3] += ((modelPar_TYPE*Vc3c4)*instanceVar_GCCex_TM);
8567 staticContributions[admsNodeID_c1] -= ((modelPar_TYPE*Vc3c4)*instanceVar_GCCex_TM);
8574 if ((modelPar_RCBLI>0.0))
8577 staticContributions[admsNodeID_b] += (modelPar_TYPE*instanceVar_XIex);
8578 staticContributions[admsNodeID_c4] -= (modelPar_TYPE*instanceVar_XIex);
8580 staticContributions[admsNodeID_c] += ((modelPar_TYPE*Vcc3)*instanceVar_GCCxx_TM);
8581 staticContributions[admsNodeID_c4] -= ((modelPar_TYPE*Vcc3)*instanceVar_GCCxx_TM);
8583 staticContributions[admsNodeID_c4] += ((modelPar_TYPE*Vc4c1)*instanceVar_GCCin_TM);
8584 staticContributions[admsNodeID_c1] -= ((modelPar_TYPE*Vc4c1)*instanceVar_GCCin_TM);
8586 staticContributions[admsNodeID_b1] += (modelPar_TYPE*(instanceVar_Ib3+instanceVar_Iex));
8587 staticContributions[admsNodeID_c4] -= (modelPar_TYPE*(instanceVar_Ib3+instanceVar_Iex));
8589 dynamicContributions[admsNodeID_b1] += ((modelPar_TYPE*(Qtex+Qex)));
8590 dynamicContributions[admsNodeID_c4] -= ((modelPar_TYPE*(Qtex+Qex)));
8592 dynamicContributions[admsNodeID_b] += ((modelPar_TYPE*(XQtex+XQex)));
8593 dynamicContributions[admsNodeID_c4] -= ((modelPar_TYPE*(XQtex+XQex)));
8598 staticContributions[admsNodeID_b] += (modelPar_TYPE*instanceVar_XIex);
8599 staticContributions[admsNodeID_c1] -= (modelPar_TYPE*instanceVar_XIex);
8601 staticContributions[admsNodeID_c] += ((modelPar_TYPE*Vcc3)*instanceVar_GCCxx_TM);
8602 staticContributions[admsNodeID_c1] -= ((modelPar_TYPE*Vcc3)*instanceVar_GCCxx_TM);
8606 staticContributions[admsNodeID_b1] += (modelPar_TYPE*(instanceVar_Ib3+instanceVar_Iex));
8607 staticContributions[admsNodeID_c1] -= (modelPar_TYPE*(instanceVar_Ib3+instanceVar_Iex));
8609 dynamicContributions[admsNodeID_b1] += ((modelPar_TYPE*(Qtex+Qex)));
8610 dynamicContributions[admsNodeID_c1] -= ((modelPar_TYPE*(Qtex+Qex)));
8612 dynamicContributions[admsNodeID_b] += ((modelPar_TYPE*(XQtex+XQex)));
8613 dynamicContributions[admsNodeID_c1] -= ((modelPar_TYPE*(XQtex+XQex)));
8615 staticContributions[admsNodeID_c3] += ((modelPar_TYPE*Vc3c4)*instanceVar_GCCex_TM);
8616 staticContributions[admsNodeID_c1] -= ((modelPar_TYPE*Vc3c4)*instanceVar_GCCex_TM);
8647 void InstanceSensitivity::operator()
8649 const ParameterBase &entity,
8650 const std::string &name,
8651 std::vector<double> & dfdp,
8652 std::vector<double> & dqdp,
8653 std::vector<double> & dbdp,
8654 std::vector<int> & Findices,
8655 std::vector<int> & Qindices,
8656 std::vector<int> & Bindices
8659 const ParameterBase * e1 = &entity;
8660 const Instance & in = *(
dynamic_cast<const Instance *
> (e1));
8661 const Model & mod =in.model_;
8665 Findices.resize(13+0);
8666 Qindices.resize(13+0);
8668 std::vector <double> probeVars(16);
8669 std::vector <AdmsSensFadType> staticContributions(13+0);
8670 std::vector <AdmsSensFadType> dynamicContributions(13+0);
8674 for (
int i=0; i < 13+0 ; ++i)
8676 staticContributions[i]=0;
8677 dynamicContributions[i]=0;
8683 bool modelPar_given_TREF=mod.given(
"TREF");
8685 bool modelPar_given_DTA=mod.given(
"DTA");
8687 bool modelPar_given_IS=mod.given(
"IS");
8689 bool modelPar_given_IK=mod.given(
"IK");
8691 bool modelPar_given_VER=mod.given(
"VER");
8693 bool modelPar_given_VEF=mod.given(
"VEF");
8695 bool modelPar_given_BF=mod.given(
"BF");
8697 bool modelPar_given_IBF=mod.given(
"IBF");
8699 bool modelPar_given_MLF=mod.given(
"MLF");
8701 bool modelPar_given_XIBI=mod.given(
"XIBI");
8703 bool modelPar_given_IZEB=mod.given(
"IZEB");
8705 bool modelPar_given_NZEB=mod.given(
"NZEB");
8707 bool modelPar_given_BRI=mod.given(
"BRI");
8709 bool modelPar_given_IBR=mod.given(
"IBR");
8711 bool modelPar_given_VLR=mod.given(
"VLR");
8713 bool modelPar_given_XEXT=mod.given(
"XEXT");
8715 bool modelPar_given_WAVL=mod.given(
"WAVL");
8717 bool modelPar_given_VAVL=mod.given(
"VAVL");
8719 bool modelPar_given_SFH=mod.given(
"SFH");
8721 bool modelPar_given_RE=mod.given(
"RE");
8723 bool modelPar_given_RBC=mod.given(
"RBC");
8725 bool modelPar_given_RBV=mod.given(
"RBV");
8727 bool modelPar_given_RCC=mod.given(
"RCC");
8729 bool modelPar_given_RCV=mod.given(
"RCV");
8731 bool modelPar_given_SCRCV=mod.given(
"SCRCV");
8733 bool modelPar_given_IHC=mod.given(
"IHC");
8735 bool modelPar_given_AXI=mod.given(
"AXI");
8737 bool modelPar_given_CJE=mod.given(
"CJE");
8739 bool modelPar_given_VDE=mod.given(
"VDE");
8741 bool modelPar_given_PE=mod.given(
"PE");
8743 bool modelPar_given_XCJE=mod.given(
"XCJE");
8745 bool modelPar_given_CBEO=mod.given(
"CBEO");
8747 bool modelPar_given_CJC=mod.given(
"CJC");
8749 bool modelPar_given_VDC=mod.given(
"VDC");
8751 bool modelPar_given_PC=mod.given(
"PC");
8753 bool modelPar_given_XP=mod.given(
"XP");
8755 bool modelPar_given_MC=mod.given(
"MC");
8757 bool modelPar_given_XCJC=mod.given(
"XCJC");
8759 bool modelPar_given_RCBLX=mod.given(
"RCBLX");
8761 bool modelPar_given_RCBLI=mod.given(
"RCBLI");
8763 bool modelPar_given_CBCO=mod.given(
"CBCO");
8765 bool modelPar_given_MTAU=mod.given(
"MTAU");
8767 bool modelPar_given_TAUE=mod.given(
"TAUE");
8769 bool modelPar_given_TAUB=mod.given(
"TAUB");
8771 bool modelPar_given_TEPI=mod.given(
"TEPI");
8773 bool modelPar_given_TAUR=mod.given(
"TAUR");
8775 bool modelPar_given_DEG=mod.given(
"DEG");
8777 bool modelPar_given_XREC=mod.given(
"XREC");
8779 bool modelPar_given_AQBO=mod.given(
"AQBO");
8781 bool modelPar_given_AE=mod.given(
"AE");
8783 bool modelPar_given_AB=mod.given(
"AB");
8785 bool modelPar_given_AEPI=mod.given(
"AEPI");
8787 bool modelPar_given_AEX=mod.given(
"AEX");
8789 bool modelPar_given_AC=mod.given(
"AC");
8791 bool modelPar_given_ACBL=mod.given(
"ACBL");
8793 bool modelPar_given_DVGBF=mod.given(
"DVGBF");
8795 bool modelPar_given_DVGBR=mod.given(
"DVGBR");
8797 bool modelPar_given_VGB=mod.given(
"VGB");
8799 bool modelPar_given_VGC=mod.given(
"VGC");
8801 bool modelPar_given_VGJ=mod.given(
"VGJ");
8803 bool modelPar_given_VGZEB=mod.given(
"VGZEB");
8805 bool modelPar_given_AVGEB=mod.given(
"AVGEB");
8807 bool modelPar_given_TVGEB=mod.given(
"TVGEB");
8809 bool modelPar_given_DVGTE=mod.given(
"DVGTE");
8811 bool modelPar_given_DAIS=mod.given(
"DAIS");
8813 bool modelPar_given_AF=mod.given(
"AF");
8815 bool modelPar_given_KF=mod.given(
"KF");
8817 bool modelPar_given_KFN=mod.given(
"KFN");
8819 bool modelPar_given_ISS=mod.given(
"ISS");
8821 bool modelPar_given_ICSS=mod.given(
"ICSS");
8823 bool modelPar_given_IKS=mod.given(
"IKS");
8825 bool modelPar_given_CJS=mod.given(
"CJS");
8827 bool modelPar_given_VDS=mod.given(
"VDS");
8829 bool modelPar_given_PS=mod.given(
"PS");
8831 bool modelPar_given_VGS=mod.given(
"VGS");
8833 bool modelPar_given_AS=mod.given(
"AS");
8835 bool modelPar_given_ASUB=mod.given(
"ASUB");
8837 bool modelPar_given_RTH=mod.given(
"RTH");
8839 bool modelPar_given_CTH=mod.given(
"CTH");
8841 bool modelPar_given_ATH=mod.given(
"ATH");
8843 bool modelPar_given_MULT=mod.given(
"MULT");
8845 bool modelPar_given_GMIN=mod.given(
"GMIN");
8852 int modelPar_LEVEL=mod.LEVEL;
8853 bool modelPar_given_LEVEL=mod.given(
"LEVEL");
8854 int modelPar_EXMOD=mod.EXMOD;
8855 bool modelPar_given_EXMOD=mod.given(
"EXMOD");
8856 int modelPar_EXPHI=mod.EXPHI;
8857 bool modelPar_given_EXPHI=mod.given(
"EXPHI");
8858 int modelPar_EXAVL=mod.EXAVL;
8859 bool modelPar_given_EXAVL=mod.given(
"EXAVL");
8860 int modelPar_EXSUB=mod.EXSUB;
8861 bool modelPar_given_EXSUB=mod.given(
"EXSUB");
8862 int modelPar_KAVL=mod.KAVL;
8863 bool modelPar_given_KAVL=mod.given(
"KAVL");
8864 int modelPar_TYPE=mod.TYPE;
8865 bool modelPar_given_TYPE=mod.given(
"TYPE");
8873 unordered_map <std::string,AdmsSensFadType*,HashNoCase,EqualNoCase> inParamMap;
8877 bool instancePar_given_MULT=in.given(
"MULT");
8878 inParamMap[
"MULT"] = &instancePar_MULT;
8892 inParamMap[name]->diff(0,1);
8932 Linear::Vector * solVectorPtr = in.extData.nextSolVectorPtr;
8936 probeVars[in.admsProbeID_V_noi_e1] = (*solVectorPtr)[in.li_noi] - (*solVectorPtr)[in.li_e1];
8937 probeVars[in.admsProbeID_V_c3_c1] = (*solVectorPtr)[in.li_c3] - (*solVectorPtr)[in.li_c1];
8938 probeVars[in.admsProbeID_V_c3_c4] = (*solVectorPtr)[in.li_c3] - (*solVectorPtr)[in.li_c4];
8939 probeVars[in.admsProbeID_V_c4_c1] = (*solVectorPtr)[in.li_c4] - (*solVectorPtr)[in.li_c1];
8940 probeVars[in.admsProbeID_V_b_c] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_c];
8941 probeVars[in.admsProbeID_V_b_e] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_e];
8942 probeVars[in.admsProbeID_V_b_b1] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_b1];
8943 probeVars[in.admsProbeID_V_e_e1] = (*solVectorPtr)[in.li_e] - (*solVectorPtr)[in.li_e1];
8944 probeVars[in.admsProbeID_V_c1_c2] = (*solVectorPtr)[in.li_c1] - (*solVectorPtr)[in.li_c2];
8945 probeVars[in.admsProbeID_V_s_c1] = (*solVectorPtr)[in.li_s] - (*solVectorPtr)[in.li_c1];
8946 probeVars[in.admsProbeID_V_b1_b2] = (*solVectorPtr)[in.li_b1] - (*solVectorPtr)[in.li_b2];
8947 probeVars[in.admsProbeID_V_b1_e1] = (*solVectorPtr)[in.li_b1] - (*solVectorPtr)[in.li_e1];
8948 probeVars[in.admsProbeID_V_b2_e1] = (*solVectorPtr)[in.li_b2] - (*solVectorPtr)[in.li_e1];
8949 probeVars[in.admsProbeID_V_b2_c2] = (*solVectorPtr)[in.li_b2] - (*solVectorPtr)[in.li_c2];
8950 probeVars[in.admsProbeID_V_b2_c1] = (*solVectorPtr)[in.li_b2] - (*solVectorPtr)[in.li_c1];
8951 probeVars[in.admsProbeID_V_dt_GND] = (*solVectorPtr)[in.li_dt];
8954 probeVars[in.admsProbeID_V_b1_b2] *= modelPar_TYPE;
8955 probeVars[in.admsProbeID_V_b1_e1] *= modelPar_TYPE;
8956 probeVars[in.admsProbeID_V_b2_c2] *= modelPar_TYPE;
8957 probeVars[in.admsProbeID_V_b2_c1] *= modelPar_TYPE;
8962 evaluateModelEquations(
8965 in.admsProbeID_V_noi_e1,
8966 in.admsProbeID_V_c3_c1,
8967 in.admsProbeID_V_c3_c4,
8968 in.admsProbeID_V_c4_c1,
8969 in.admsProbeID_V_b_c,
8970 in.admsProbeID_V_b_e,
8971 in.admsProbeID_V_b_b1,
8972 in.admsProbeID_V_e_e1,
8973 in.admsProbeID_V_c1_c2,
8974 in.admsProbeID_V_s_c1,
8975 in.admsProbeID_V_b1_b2,
8976 in.admsProbeID_V_b1_e1,
8977 in.admsProbeID_V_b2_e1,
8978 in.admsProbeID_V_b2_c2,
8979 in.admsProbeID_V_b2_c1,
8980 in.admsProbeID_V_dt_GND,
8999 instancePar_given_MULT,
9006 instanceVar_GCCxx_TM,
9007 instanceVar_GCCex_TM,
9008 instanceVar_GCCin_TM,
9028 modelPar_given_TREF,
9046 modelPar_given_XIBI,
9048 modelPar_given_IZEB,
9050 modelPar_given_NZEB,
9058 modelPar_given_XEXT,
9060 modelPar_given_WAVL,
9062 modelPar_given_VAVL,
9076 modelPar_given_SCRCV,
9088 modelPar_given_XCJE,
9090 modelPar_given_CBEO,
9102 modelPar_given_XCJC,
9104 modelPar_given_RCBLX,
9106 modelPar_given_RCBLI,
9108 modelPar_given_CBCO,
9110 modelPar_given_MTAU,
9112 modelPar_given_TAUE,
9114 modelPar_given_TAUB,
9116 modelPar_given_TEPI,
9118 modelPar_given_TAUR,
9122 modelPar_given_XREC,
9124 modelPar_given_AQBO,
9130 modelPar_given_AEPI,
9136 modelPar_given_ACBL,
9138 modelPar_given_DVGBF,
9140 modelPar_given_DVGBR,
9148 modelPar_given_VGZEB,
9150 modelPar_given_AVGEB,
9152 modelPar_given_TVGEB,
9154 modelPar_given_DVGTE,
9156 modelPar_given_DAIS,
9166 modelPar_given_ICSS,
9180 modelPar_given_ASUB,
9188 modelPar_given_MULT,
9190 modelPar_given_GMIN,
9193 modelPar_given_LEVEL,
9195 modelPar_given_EXMOD,
9197 modelPar_given_EXPHI,
9199 modelPar_given_EXAVL,
9201 modelPar_given_EXSUB,
9203 modelPar_given_KAVL,
9205 modelPar_given_TYPE,
9208 in.getDeviceOptions().gmin,
9209 staticContributions,
9210 dynamicContributions,
9216 dfdp[in.admsNodeID_c] += staticContributions[in.admsNodeID_c].dx(0);
9217 dqdp[in.admsNodeID_c] += dynamicContributions[in.admsNodeID_c].dx(0);
9218 Findices[in.admsNodeID_c] = in.li_c;
9219 Qindices[in.admsNodeID_c] = in.li_c;
9220 dfdp[in.admsNodeID_b] += staticContributions[in.admsNodeID_b].dx(0);
9221 dqdp[in.admsNodeID_b] += dynamicContributions[in.admsNodeID_b].dx(0);
9222 Findices[in.admsNodeID_b] = in.li_b;
9223 Qindices[in.admsNodeID_b] = in.li_b;
9224 dfdp[in.admsNodeID_e] += staticContributions[in.admsNodeID_e].dx(0);
9225 dqdp[in.admsNodeID_e] += dynamicContributions[in.admsNodeID_e].dx(0);
9226 Findices[in.admsNodeID_e] = in.li_e;
9227 Qindices[in.admsNodeID_e] = in.li_e;
9228 dfdp[in.admsNodeID_s] += staticContributions[in.admsNodeID_s].dx(0);
9229 dqdp[in.admsNodeID_s] += dynamicContributions[in.admsNodeID_s].dx(0);
9230 Findices[in.admsNodeID_s] = in.li_s;
9231 Qindices[in.admsNodeID_s] = in.li_s;
9232 dfdp[in.admsNodeID_dt] += staticContributions[in.admsNodeID_dt].dx(0);
9233 dqdp[in.admsNodeID_dt] += dynamicContributions[in.admsNodeID_dt].dx(0);
9234 Findices[in.admsNodeID_dt] = in.li_dt;
9235 Qindices[in.admsNodeID_dt] = in.li_dt;
9236 dfdp[in.admsNodeID_e1] += staticContributions[in.admsNodeID_e1].dx(0);
9237 dqdp[in.admsNodeID_e1] += dynamicContributions[in.admsNodeID_e1].dx(0);
9238 Findices[in.admsNodeID_e1] = in.li_e1;
9239 Qindices[in.admsNodeID_e1] = in.li_e1;
9240 dfdp[in.admsNodeID_b1] += staticContributions[in.admsNodeID_b1].dx(0);
9241 dqdp[in.admsNodeID_b1] += dynamicContributions[in.admsNodeID_b1].dx(0);
9242 Findices[in.admsNodeID_b1] = in.li_b1;
9243 Qindices[in.admsNodeID_b1] = in.li_b1;
9244 dfdp[in.admsNodeID_b2] += staticContributions[in.admsNodeID_b2].dx(0);
9245 dqdp[in.admsNodeID_b2] += dynamicContributions[in.admsNodeID_b2].dx(0);
9246 Findices[in.admsNodeID_b2] = in.li_b2;
9247 Qindices[in.admsNodeID_b2] = in.li_b2;
9248 dfdp[in.admsNodeID_c3] += staticContributions[in.admsNodeID_c3].dx(0);
9249 dqdp[in.admsNodeID_c3] += dynamicContributions[in.admsNodeID_c3].dx(0);
9250 Findices[in.admsNodeID_c3] = in.li_c3;
9251 Qindices[in.admsNodeID_c3] = in.li_c3;
9252 dfdp[in.admsNodeID_c4] += staticContributions[in.admsNodeID_c4].dx(0);
9253 dqdp[in.admsNodeID_c4] += dynamicContributions[in.admsNodeID_c4].dx(0);
9254 Findices[in.admsNodeID_c4] = in.li_c4;
9255 Qindices[in.admsNodeID_c4] = in.li_c4;
9256 dfdp[in.admsNodeID_c2] += staticContributions[in.admsNodeID_c2].dx(0);
9257 dqdp[in.admsNodeID_c2] += dynamicContributions[in.admsNodeID_c2].dx(0);
9258 Findices[in.admsNodeID_c2] = in.li_c2;
9259 Qindices[in.admsNodeID_c2] = in.li_c2;
9260 dfdp[in.admsNodeID_c1] += staticContributions[in.admsNodeID_c1].dx(0);
9261 dqdp[in.admsNodeID_c1] += dynamicContributions[in.admsNodeID_c1].dx(0);
9262 Findices[in.admsNodeID_c1] = in.li_c1;
9263 Qindices[in.admsNodeID_c1] = in.li_c1;
9264 dfdp[in.admsNodeID_noi] += staticContributions[in.admsNodeID_noi].dx(0);
9265 dqdp[in.admsNodeID_noi] += dynamicContributions[in.admsNodeID_noi].dx(0);
9266 Findices[in.admsNodeID_noi] = in.li_noi;
9267 Qindices[in.admsNodeID_noi] = in.li_noi;
9294 void ModelSensitivity::operator()
9296 const ParameterBase &entity,
9297 const std::string &name,
9298 std::vector<double> & dfdp,
9299 std::vector<double> & dqdp,
9300 std::vector<double> & dbdp,
9301 std::vector<int> & Findices,
9302 std::vector<int> & Qindices,
9303 std::vector<int> & Bindices
9306 const ParameterBase * e1 = &entity;
9307 const Model & mod = *(
dynamic_cast<const Model *
> (e1));
9308 int sizeInstance = mod.instanceContainer.size();
9310 dfdp.resize((13+0)*sizeInstance);
9311 dqdp.resize((13+0)*sizeInstance);
9312 Findices.resize((13+0)*sizeInstance);
9313 Qindices.resize((13+0)*sizeInstance);
9315 std::vector <double> probeVars(16);
9316 std::vector <AdmsSensFadType> staticContributions(13+0);
9317 std::vector <AdmsSensFadType> dynamicContributions(13+0);
9324 unordered_map <std::string,AdmsSensFadType*,HashNoCase,EqualNoCase> modParamMap;
9328 bool modelPar_given_TREF=mod.given(
"TREF");
9329 modParamMap[
"TREF"] = &modelPar_TREF;
9331 bool modelPar_given_DTA=mod.given(
"DTA");
9332 modParamMap[
"DTA"] = &modelPar_DTA;
9334 bool modelPar_given_IS=mod.given(
"IS");
9335 modParamMap[
"IS"] = &modelPar_IS;
9337 bool modelPar_given_IK=mod.given(
"IK");
9338 modParamMap[
"IK"] = &modelPar_IK;
9340 bool modelPar_given_VER=mod.given(
"VER");
9341 modParamMap[
"VER"] = &modelPar_VER;
9343 bool modelPar_given_VEF=mod.given(
"VEF");
9344 modParamMap[
"VEF"] = &modelPar_VEF;
9346 bool modelPar_given_BF=mod.given(
"BF");
9347 modParamMap[
"BF"] = &modelPar_BF;
9349 bool modelPar_given_IBF=mod.given(
"IBF");
9350 modParamMap[
"IBF"] = &modelPar_IBF;
9352 bool modelPar_given_MLF=mod.given(
"MLF");
9353 modParamMap[
"MLF"] = &modelPar_MLF;
9355 bool modelPar_given_XIBI=mod.given(
"XIBI");
9356 modParamMap[
"XIBI"] = &modelPar_XIBI;
9358 bool modelPar_given_IZEB=mod.given(
"IZEB");
9359 modParamMap[
"IZEB"] = &modelPar_IZEB;
9361 bool modelPar_given_NZEB=mod.given(
"NZEB");
9362 modParamMap[
"NZEB"] = &modelPar_NZEB;
9364 bool modelPar_given_BRI=mod.given(
"BRI");
9365 modParamMap[
"BRI"] = &modelPar_BRI;
9367 bool modelPar_given_IBR=mod.given(
"IBR");
9368 modParamMap[
"IBR"] = &modelPar_IBR;
9370 bool modelPar_given_VLR=mod.given(
"VLR");
9371 modParamMap[
"VLR"] = &modelPar_VLR;
9373 bool modelPar_given_XEXT=mod.given(
"XEXT");
9374 modParamMap[
"XEXT"] = &modelPar_XEXT;
9376 bool modelPar_given_WAVL=mod.given(
"WAVL");
9377 modParamMap[
"WAVL"] = &modelPar_WAVL;
9379 bool modelPar_given_VAVL=mod.given(
"VAVL");
9380 modParamMap[
"VAVL"] = &modelPar_VAVL;
9382 bool modelPar_given_SFH=mod.given(
"SFH");
9383 modParamMap[
"SFH"] = &modelPar_SFH;
9385 bool modelPar_given_RE=mod.given(
"RE");
9386 modParamMap[
"RE"] = &modelPar_RE;
9388 bool modelPar_given_RBC=mod.given(
"RBC");
9389 modParamMap[
"RBC"] = &modelPar_RBC;
9391 bool modelPar_given_RBV=mod.given(
"RBV");
9392 modParamMap[
"RBV"] = &modelPar_RBV;
9394 bool modelPar_given_RCC=mod.given(
"RCC");
9395 modParamMap[
"RCC"] = &modelPar_RCC;
9397 bool modelPar_given_RCV=mod.given(
"RCV");
9398 modParamMap[
"RCV"] = &modelPar_RCV;
9400 bool modelPar_given_SCRCV=mod.given(
"SCRCV");
9401 modParamMap[
"SCRCV"] = &modelPar_SCRCV;
9403 bool modelPar_given_IHC=mod.given(
"IHC");
9404 modParamMap[
"IHC"] = &modelPar_IHC;
9406 bool modelPar_given_AXI=mod.given(
"AXI");
9407 modParamMap[
"AXI"] = &modelPar_AXI;
9409 bool modelPar_given_CJE=mod.given(
"CJE");
9410 modParamMap[
"CJE"] = &modelPar_CJE;
9412 bool modelPar_given_VDE=mod.given(
"VDE");
9413 modParamMap[
"VDE"] = &modelPar_VDE;
9415 bool modelPar_given_PE=mod.given(
"PE");
9416 modParamMap[
"PE"] = &modelPar_PE;
9418 bool modelPar_given_XCJE=mod.given(
"XCJE");
9419 modParamMap[
"XCJE"] = &modelPar_XCJE;
9421 bool modelPar_given_CBEO=mod.given(
"CBEO");
9422 modParamMap[
"CBEO"] = &modelPar_CBEO;
9424 bool modelPar_given_CJC=mod.given(
"CJC");
9425 modParamMap[
"CJC"] = &modelPar_CJC;
9427 bool modelPar_given_VDC=mod.given(
"VDC");
9428 modParamMap[
"VDC"] = &modelPar_VDC;
9430 bool modelPar_given_PC=mod.given(
"PC");
9431 modParamMap[
"PC"] = &modelPar_PC;
9433 bool modelPar_given_XP=mod.given(
"XP");
9434 modParamMap[
"XP"] = &modelPar_XP;
9436 bool modelPar_given_MC=mod.given(
"MC");
9437 modParamMap[
"MC"] = &modelPar_MC;
9439 bool modelPar_given_XCJC=mod.given(
"XCJC");
9440 modParamMap[
"XCJC"] = &modelPar_XCJC;
9442 bool modelPar_given_RCBLX=mod.given(
"RCBLX");
9443 modParamMap[
"RCBLX"] = &modelPar_RCBLX;
9445 bool modelPar_given_RCBLI=mod.given(
"RCBLI");
9446 modParamMap[
"RCBLI"] = &modelPar_RCBLI;
9448 bool modelPar_given_CBCO=mod.given(
"CBCO");
9449 modParamMap[
"CBCO"] = &modelPar_CBCO;
9451 bool modelPar_given_MTAU=mod.given(
"MTAU");
9452 modParamMap[
"MTAU"] = &modelPar_MTAU;
9454 bool modelPar_given_TAUE=mod.given(
"TAUE");
9455 modParamMap[
"TAUE"] = &modelPar_TAUE;
9457 bool modelPar_given_TAUB=mod.given(
"TAUB");
9458 modParamMap[
"TAUB"] = &modelPar_TAUB;
9460 bool modelPar_given_TEPI=mod.given(
"TEPI");
9461 modParamMap[
"TEPI"] = &modelPar_TEPI;
9463 bool modelPar_given_TAUR=mod.given(
"TAUR");
9464 modParamMap[
"TAUR"] = &modelPar_TAUR;
9466 bool modelPar_given_DEG=mod.given(
"DEG");
9467 modParamMap[
"DEG"] = &modelPar_DEG;
9469 bool modelPar_given_XREC=mod.given(
"XREC");
9470 modParamMap[
"XREC"] = &modelPar_XREC;
9472 bool modelPar_given_AQBO=mod.given(
"AQBO");
9473 modParamMap[
"AQBO"] = &modelPar_AQBO;
9475 bool modelPar_given_AE=mod.given(
"AE");
9476 modParamMap[
"AE"] = &modelPar_AE;
9478 bool modelPar_given_AB=mod.given(
"AB");
9479 modParamMap[
"AB"] = &modelPar_AB;
9481 bool modelPar_given_AEPI=mod.given(
"AEPI");
9482 modParamMap[
"AEPI"] = &modelPar_AEPI;
9484 bool modelPar_given_AEX=mod.given(
"AEX");
9485 modParamMap[
"AEX"] = &modelPar_AEX;
9487 bool modelPar_given_AC=mod.given(
"AC");
9488 modParamMap[
"AC"] = &modelPar_AC;
9490 bool modelPar_given_ACBL=mod.given(
"ACBL");
9491 modParamMap[
"ACBL"] = &modelPar_ACBL;
9493 bool modelPar_given_DVGBF=mod.given(
"DVGBF");
9494 modParamMap[
"DVGBF"] = &modelPar_DVGBF;
9496 bool modelPar_given_DVGBR=mod.given(
"DVGBR");
9497 modParamMap[
"DVGBR"] = &modelPar_DVGBR;
9499 bool modelPar_given_VGB=mod.given(
"VGB");
9500 modParamMap[
"VGB"] = &modelPar_VGB;
9502 bool modelPar_given_VGC=mod.given(
"VGC");
9503 modParamMap[
"VGC"] = &modelPar_VGC;
9505 bool modelPar_given_VGJ=mod.given(
"VGJ");
9506 modParamMap[
"VGJ"] = &modelPar_VGJ;
9508 bool modelPar_given_VGZEB=mod.given(
"VGZEB");
9509 modParamMap[
"VGZEB"] = &modelPar_VGZEB;
9511 bool modelPar_given_AVGEB=mod.given(
"AVGEB");
9512 modParamMap[
"AVGEB"] = &modelPar_AVGEB;
9514 bool modelPar_given_TVGEB=mod.given(
"TVGEB");
9515 modParamMap[
"TVGEB"] = &modelPar_TVGEB;
9517 bool modelPar_given_DVGTE=mod.given(
"DVGTE");
9518 modParamMap[
"DVGTE"] = &modelPar_DVGTE;
9520 bool modelPar_given_DAIS=mod.given(
"DAIS");
9521 modParamMap[
"DAIS"] = &modelPar_DAIS;
9523 bool modelPar_given_AF=mod.given(
"AF");
9524 modParamMap[
"AF"] = &modelPar_AF;
9526 bool modelPar_given_KF=mod.given(
"KF");
9527 modParamMap[
"KF"] = &modelPar_KF;
9529 bool modelPar_given_KFN=mod.given(
"KFN");
9530 modParamMap[
"KFN"] = &modelPar_KFN;
9532 bool modelPar_given_ISS=mod.given(
"ISS");
9533 modParamMap[
"ISS"] = &modelPar_ISS;
9535 bool modelPar_given_ICSS=mod.given(
"ICSS");
9536 modParamMap[
"ICSS"] = &modelPar_ICSS;
9538 bool modelPar_given_IKS=mod.given(
"IKS");
9539 modParamMap[
"IKS"] = &modelPar_IKS;
9541 bool modelPar_given_CJS=mod.given(
"CJS");
9542 modParamMap[
"CJS"] = &modelPar_CJS;
9544 bool modelPar_given_VDS=mod.given(
"VDS");
9545 modParamMap[
"VDS"] = &modelPar_VDS;
9547 bool modelPar_given_PS=mod.given(
"PS");
9548 modParamMap[
"PS"] = &modelPar_PS;
9550 bool modelPar_given_VGS=mod.given(
"VGS");
9551 modParamMap[
"VGS"] = &modelPar_VGS;
9553 bool modelPar_given_AS=mod.given(
"AS");
9554 modParamMap[
"AS"] = &modelPar_AS;
9556 bool modelPar_given_ASUB=mod.given(
"ASUB");
9557 modParamMap[
"ASUB"] = &modelPar_ASUB;
9559 bool modelPar_given_RTH=mod.given(
"RTH");
9560 modParamMap[
"RTH"] = &modelPar_RTH;
9562 bool modelPar_given_CTH=mod.given(
"CTH");
9563 modParamMap[
"CTH"] = &modelPar_CTH;
9565 bool modelPar_given_ATH=mod.given(
"ATH");
9566 modParamMap[
"ATH"] = &modelPar_ATH;
9568 bool modelPar_given_MULT=mod.given(
"MULT");
9569 modParamMap[
"MULT"] = &modelPar_MULT;
9571 bool modelPar_given_GMIN=mod.given(
"GMIN");
9572 modParamMap[
"GMIN"] = &modelPar_GMIN;
9579 int modelPar_LEVEL=mod.LEVEL;
9580 bool modelPar_given_LEVEL=mod.given(
"LEVEL");
9581 int modelPar_EXMOD=mod.EXMOD;
9582 bool modelPar_given_EXMOD=mod.given(
"EXMOD");
9583 int modelPar_EXPHI=mod.EXPHI;
9584 bool modelPar_given_EXPHI=mod.given(
"EXPHI");
9585 int modelPar_EXAVL=mod.EXAVL;
9586 bool modelPar_given_EXAVL=mod.given(
"EXAVL");
9587 int modelPar_EXSUB=mod.EXSUB;
9588 bool modelPar_given_EXSUB=mod.given(
"EXSUB");
9589 int modelPar_KAVL=mod.KAVL;
9590 bool modelPar_given_KAVL=mod.given(
"KAVL");
9591 int modelPar_TYPE=mod.TYPE;
9592 bool modelPar_given_TYPE=mod.given(
"TYPE");
9599 modParamMap[name]->diff(0,1);
9611 for (std::vector<Instance*>::const_iterator in_it=mod.instanceContainer.begin(); in_it != mod.instanceContainer.end(); ++in_it,++inst)
9614 Instance & in=*(*in_it);
9616 for (
int i=0; i < 13+0 ; ++i)
9618 staticContributions[i]=0;
9619 dynamicContributions[i]=0;
9627 bool instancePar_given_MULT=in.given(
"MULT");
9643 if (!(in.given(
"MULT")))
9645 instancePar_MULT = modelPar_MULT;
9680 Linear::Vector * solVectorPtr = in.extData.nextSolVectorPtr;
9683 probeVars[in.admsProbeID_V_noi_e1] = (*solVectorPtr)[in.li_noi] - (*solVectorPtr)[in.li_e1];
9684 probeVars[in.admsProbeID_V_c3_c1] = (*solVectorPtr)[in.li_c3] - (*solVectorPtr)[in.li_c1];
9685 probeVars[in.admsProbeID_V_c3_c4] = (*solVectorPtr)[in.li_c3] - (*solVectorPtr)[in.li_c4];
9686 probeVars[in.admsProbeID_V_c4_c1] = (*solVectorPtr)[in.li_c4] - (*solVectorPtr)[in.li_c1];
9687 probeVars[in.admsProbeID_V_b_c] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_c];
9688 probeVars[in.admsProbeID_V_b_e] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_e];
9689 probeVars[in.admsProbeID_V_b_b1] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_b1];
9690 probeVars[in.admsProbeID_V_e_e1] = (*solVectorPtr)[in.li_e] - (*solVectorPtr)[in.li_e1];
9691 probeVars[in.admsProbeID_V_c1_c2] = (*solVectorPtr)[in.li_c1] - (*solVectorPtr)[in.li_c2];
9692 probeVars[in.admsProbeID_V_s_c1] = (*solVectorPtr)[in.li_s] - (*solVectorPtr)[in.li_c1];
9693 probeVars[in.admsProbeID_V_b1_b2] = (*solVectorPtr)[in.li_b1] - (*solVectorPtr)[in.li_b2];
9694 probeVars[in.admsProbeID_V_b1_e1] = (*solVectorPtr)[in.li_b1] - (*solVectorPtr)[in.li_e1];
9695 probeVars[in.admsProbeID_V_b2_e1] = (*solVectorPtr)[in.li_b2] - (*solVectorPtr)[in.li_e1];
9696 probeVars[in.admsProbeID_V_b2_c2] = (*solVectorPtr)[in.li_b2] - (*solVectorPtr)[in.li_c2];
9697 probeVars[in.admsProbeID_V_b2_c1] = (*solVectorPtr)[in.li_b2] - (*solVectorPtr)[in.li_c1];
9698 probeVars[in.admsProbeID_V_dt_GND] = (*solVectorPtr)[in.li_dt];
9701 probeVars[in.admsProbeID_V_b1_b2] *= modelPar_TYPE;
9702 probeVars[in.admsProbeID_V_b1_e1] *= modelPar_TYPE;
9703 probeVars[in.admsProbeID_V_b2_c2] *= modelPar_TYPE;
9704 probeVars[in.admsProbeID_V_b2_c1] *= modelPar_TYPE;
9710 evaluateModelEquations(
9713 in.admsProbeID_V_noi_e1,
9714 in.admsProbeID_V_c3_c1,
9715 in.admsProbeID_V_c3_c4,
9716 in.admsProbeID_V_c4_c1,
9717 in.admsProbeID_V_b_c,
9718 in.admsProbeID_V_b_e,
9719 in.admsProbeID_V_b_b1,
9720 in.admsProbeID_V_e_e1,
9721 in.admsProbeID_V_c1_c2,
9722 in.admsProbeID_V_s_c1,
9723 in.admsProbeID_V_b1_b2,
9724 in.admsProbeID_V_b1_e1,
9725 in.admsProbeID_V_b2_e1,
9726 in.admsProbeID_V_b2_c2,
9727 in.admsProbeID_V_b2_c1,
9728 in.admsProbeID_V_dt_GND,
9747 instancePar_given_MULT,
9754 instanceVar_GCCxx_TM,
9755 instanceVar_GCCex_TM,
9756 instanceVar_GCCin_TM,
9776 modelPar_given_TREF,
9794 modelPar_given_XIBI,
9796 modelPar_given_IZEB,
9798 modelPar_given_NZEB,
9806 modelPar_given_XEXT,
9808 modelPar_given_WAVL,
9810 modelPar_given_VAVL,
9824 modelPar_given_SCRCV,
9836 modelPar_given_XCJE,
9838 modelPar_given_CBEO,
9850 modelPar_given_XCJC,
9852 modelPar_given_RCBLX,
9854 modelPar_given_RCBLI,
9856 modelPar_given_CBCO,
9858 modelPar_given_MTAU,
9860 modelPar_given_TAUE,
9862 modelPar_given_TAUB,
9864 modelPar_given_TEPI,
9866 modelPar_given_TAUR,
9870 modelPar_given_XREC,
9872 modelPar_given_AQBO,
9878 modelPar_given_AEPI,
9884 modelPar_given_ACBL,
9886 modelPar_given_DVGBF,
9888 modelPar_given_DVGBR,
9896 modelPar_given_VGZEB,
9898 modelPar_given_AVGEB,
9900 modelPar_given_TVGEB,
9902 modelPar_given_DVGTE,
9904 modelPar_given_DAIS,
9914 modelPar_given_ICSS,
9928 modelPar_given_ASUB,
9936 modelPar_given_MULT,
9938 modelPar_given_GMIN,
9941 modelPar_given_LEVEL,
9943 modelPar_given_EXMOD,
9945 modelPar_given_EXPHI,
9947 modelPar_given_EXAVL,
9949 modelPar_given_EXSUB,
9951 modelPar_given_KAVL,
9953 modelPar_given_TYPE,
9956 in.getDeviceOptions().gmin,
9957 staticContributions,
9958 dynamicContributions,
9964 dfdp[in.admsNodeID_c+inst*(13+0)] += staticContributions[in.admsNodeID_c].dx(0);
9965 dqdp[in.admsNodeID_c+inst*(13+0)] += dynamicContributions[in.admsNodeID_c].dx(0);
9966 Findices[in.admsNodeID_c+inst*(13+0)] = in.li_c;
9967 Qindices[in.admsNodeID_c+inst*(13+0)] = in.li_c;
9968 dfdp[in.admsNodeID_b+inst*(13+0)] += staticContributions[in.admsNodeID_b].dx(0);
9969 dqdp[in.admsNodeID_b+inst*(13+0)] += dynamicContributions[in.admsNodeID_b].dx(0);
9970 Findices[in.admsNodeID_b+inst*(13+0)] = in.li_b;
9971 Qindices[in.admsNodeID_b+inst*(13+0)] = in.li_b;
9972 dfdp[in.admsNodeID_e+inst*(13+0)] += staticContributions[in.admsNodeID_e].dx(0);
9973 dqdp[in.admsNodeID_e+inst*(13+0)] += dynamicContributions[in.admsNodeID_e].dx(0);
9974 Findices[in.admsNodeID_e+inst*(13+0)] = in.li_e;
9975 Qindices[in.admsNodeID_e+inst*(13+0)] = in.li_e;
9976 dfdp[in.admsNodeID_s+inst*(13+0)] += staticContributions[in.admsNodeID_s].dx(0);
9977 dqdp[in.admsNodeID_s+inst*(13+0)] += dynamicContributions[in.admsNodeID_s].dx(0);
9978 Findices[in.admsNodeID_s+inst*(13+0)] = in.li_s;
9979 Qindices[in.admsNodeID_s+inst*(13+0)] = in.li_s;
9980 dfdp[in.admsNodeID_dt+inst*(13+0)] += staticContributions[in.admsNodeID_dt].dx(0);
9981 dqdp[in.admsNodeID_dt+inst*(13+0)] += dynamicContributions[in.admsNodeID_dt].dx(0);
9982 Findices[in.admsNodeID_dt+inst*(13+0)] = in.li_dt;
9983 Qindices[in.admsNodeID_dt+inst*(13+0)] = in.li_dt;
9984 dfdp[in.admsNodeID_e1+inst*(13+0)] += staticContributions[in.admsNodeID_e1].dx(0);
9985 dqdp[in.admsNodeID_e1+inst*(13+0)] += dynamicContributions[in.admsNodeID_e1].dx(0);
9986 Findices[in.admsNodeID_e1+inst*(13+0)] = in.li_e1;
9987 Qindices[in.admsNodeID_e1+inst*(13+0)] = in.li_e1;
9988 dfdp[in.admsNodeID_b1+inst*(13+0)] += staticContributions[in.admsNodeID_b1].dx(0);
9989 dqdp[in.admsNodeID_b1+inst*(13+0)] += dynamicContributions[in.admsNodeID_b1].dx(0);
9990 Findices[in.admsNodeID_b1+inst*(13+0)] = in.li_b1;
9991 Qindices[in.admsNodeID_b1+inst*(13+0)] = in.li_b1;
9992 dfdp[in.admsNodeID_b2+inst*(13+0)] += staticContributions[in.admsNodeID_b2].dx(0);
9993 dqdp[in.admsNodeID_b2+inst*(13+0)] += dynamicContributions[in.admsNodeID_b2].dx(0);
9994 Findices[in.admsNodeID_b2+inst*(13+0)] = in.li_b2;
9995 Qindices[in.admsNodeID_b2+inst*(13+0)] = in.li_b2;
9996 dfdp[in.admsNodeID_c3+inst*(13+0)] += staticContributions[in.admsNodeID_c3].dx(0);
9997 dqdp[in.admsNodeID_c3+inst*(13+0)] += dynamicContributions[in.admsNodeID_c3].dx(0);
9998 Findices[in.admsNodeID_c3+inst*(13+0)] = in.li_c3;
9999 Qindices[in.admsNodeID_c3+inst*(13+0)] = in.li_c3;
10000 dfdp[in.admsNodeID_c4+inst*(13+0)] += staticContributions[in.admsNodeID_c4].dx(0);
10001 dqdp[in.admsNodeID_c4+inst*(13+0)] += dynamicContributions[in.admsNodeID_c4].dx(0);
10002 Findices[in.admsNodeID_c4+inst*(13+0)] = in.li_c4;
10003 Qindices[in.admsNodeID_c4+inst*(13+0)] = in.li_c4;
10004 dfdp[in.admsNodeID_c2+inst*(13+0)] += staticContributions[in.admsNodeID_c2].dx(0);
10005 dqdp[in.admsNodeID_c2+inst*(13+0)] += dynamicContributions[in.admsNodeID_c2].dx(0);
10006 Findices[in.admsNodeID_c2+inst*(13+0)] = in.li_c2;
10007 Qindices[in.admsNodeID_c2+inst*(13+0)] = in.li_c2;
10008 dfdp[in.admsNodeID_c1+inst*(13+0)] += staticContributions[in.admsNodeID_c1].dx(0);
10009 dqdp[in.admsNodeID_c1+inst*(13+0)] += dynamicContributions[in.admsNodeID_c1].dx(0);
10010 Findices[in.admsNodeID_c1+inst*(13+0)] = in.li_c1;
10011 Qindices[in.admsNodeID_c1+inst*(13+0)] = in.li_c1;
10012 dfdp[in.admsNodeID_noi+inst*(13+0)] += staticContributions[in.admsNodeID_noi].dx(0);
10013 dqdp[in.admsNodeID_noi+inst*(13+0)] += dynamicContributions[in.admsNodeID_noi].dx(0);
10014 Findices[in.admsNodeID_noi+inst*(13+0)] = in.li_noi;
10015 Qindices[in.admsNodeID_noi+inst*(13+0)] = in.li_noi;
10020 #endif // Xyce_ADMS_SENSITIVITIES
const InstanceName & getName() const
double * f_c2_Equ_noi_Node_Ptr
double * f_s_Equ_c1_Node_Ptr
double * q_c4_Equ_e1_Node_Ptr
double * f_dt_Equ_dt_Node_Ptr
double * q_b_Equ_c4_Node_Ptr
static const int admsProbeID_V_b_b1
double * q_c1_Equ_c3_Node_Ptr
double * f_noi_Equ_dt_Node_Ptr
double * f_c1_Equ_c4_Node_Ptr
std::vector< double > probeDiffs
double * f_b_Equ_c3_Node_Ptr
double * q_c4_Equ_c_Node_Ptr
static const int admsProbeID_V_b_c
bool updateDependentParameters()
static const int admsNodeID_s
double * q_b1_Equ_s_Node_Ptr
double * f_c4_Equ_c2_Node_Ptr
double * f_e_Equ_dt_Node_Ptr
const SolverState & solverState_
double * q_c_Equ_c_Node_Ptr
double * f_c3_Equ_c3_Node_Ptr
double * q_s_Equ_b_Node_Ptr
double * q_e_Equ_e1_Node_Ptr
double * q_b_Equ_b2_Node_Ptr
Descriptor & addPar(const char *parName, T default_value, T U::*varPtr)
Adds the parameter description to the parameter map.
static const int admsProbeID_V_b1_e1
double * f_c2_Equ_c4_Node_Ptr
Instance(const Configuration &configuration, const InstanceBlock &instance_block, Model &model, const FactoryBlock &factory_block)
double * f_c3_Equ_e1_Node_Ptr
static void loadInstanceParameters(ParametricData< Instance > &instance_parameters)
double * q_c4_Equ_dt_Node_Ptr
double * q_c4_Equ_c2_Node_Ptr
double * f_c1_Equ_e1_Node_Ptr
static const int admsNodeID_noi
double * dFdxdVpVectorRawPtr
Linear::Vector * nextSolVectorPtr
int li_state_admsProbeID_V_b2_c1
double * q_e1_Equ_e1_Node_Ptr
bool given(const std::string ¶meter_name) const
Linear::Vector * daeQVectorPtr
virtual void forEachInstance(DeviceInstanceOp &op) const
Apply a device instance "op" to all instances associated with this model.
double * f_b1_Equ_dt_Node_Ptr
double * q_s_Equ_c4_Node_Ptr
Pure virtual class to augment a linear system.
bool processInstanceParams()
processInstanceParams
static const int admsProbeID_V_c3_c4
void registerStateLIDs(const LocalIdVector &staLIDVecRef)
double * q_c_Equ_c4_Node_Ptr
void addInternalNode(Util::SymbolTable &symbol_table, int index, const InstanceName &instance_name, const std::string &lead_name)
double * f_c4_Equ_s_Node_Ptr
static const int admsProbeID_V_b1_b2
double * f_c3_Equ_dt_Node_Ptr
double * f_c3_Equ_c_Node_Ptr
double * f_noi_Equ_noi_Node_Ptr
double * f_b1_Equ_e1_Node_Ptr
std::vector< std::vector< int > > jacStamp
double * f_dt_Equ_c4_Node_Ptr
double * q_c1_Equ_b2_Node_Ptr
double * f_c4_Equ_b2_Node_Ptr
double * f_b_Equ_dt_Node_Ptr
static const int admsProbeID_V_c4_c1
double * f_b2_Equ_b_Node_Ptr
double * q_c4_Equ_c3_Node_Ptr
double * q_s_Equ_dt_Node_Ptr
double * f_c3_Equ_c2_Node_Ptr
double * f_b_Equ_c1_Node_Ptr
double * f_c2_Equ_c3_Node_Ptr
double * f_b2_Equ_c4_Node_Ptr
double * f_b2_Equ_c2_Node_Ptr
double * q_c3_Equ_s_Node_Ptr
double * q_dt_Equ_c1_Node_Ptr
double * f_s_Equ_c4_Node_Ptr
double * q_b2_Equ_b2_Node_Ptr
double * f_b2_Equ_c_Node_Ptr
double * f_c_Equ_c1_Node_Ptr
static const int admsNodeID_c4
double * q_b2_Equ_e1_Node_Ptr
double * q_dt_Equ_s_Node_Ptr
const JacobianStamp & jacobianStamp() const
double * f_e_Equ_e_Node_Ptr
double * f_b_Equ_s_Node_Ptr
double * q_s_Equ_e1_Node_Ptr
double * f_s_Equ_b2_Node_Ptr
double * f_c_Equ_c2_Node_Ptr
double * f_c4_Equ_dt_Node_Ptr
double * q_b_Equ_b_Node_Ptr
double * f_c2_Equ_c_Node_Ptr
double * q_e1_Equ_c2_Node_Ptr
double * q_b_Equ_e_Node_Ptr
RetScalarT Vt(Arg1ScalarT U, Arg2ScalarT Ud)
double * q_c2_Equ_c3_Node_Ptr
bool updateTemperature(const double &temp=-999.0)
double * f_c_Equ_b_Node_Ptr
void jacStampMap_fixOrder(const JacobianStamp &stamp_parent, JacobianStamp &map2_parent, JacobianStamp &stamp, JacobianStamp &map2)
double * f_b1_Equ_b_Node_Ptr
double * q_e1_Equ_c4_Node_Ptr
virtual void registerJacLIDs(const JacobianStamp &jacLIDVec)
double * f_e1_Equ_e_Node_Ptr
double * q_e_Equ_dt_Node_Ptr
double * q_dt_Equ_b_Node_Ptr
double * q_noi_Equ_dt_Node_Ptr
static const int admsNodeID_b2
double * f_c2_Equ_dt_Node_Ptr
double * f_c4_Equ_b_Node_Ptr
double * q_b1_Equ_c2_Node_Ptr
double * q_e1_Equ_dt_Node_Ptr
static const int admsNodeID_c3
double * f_c1_Equ_b2_Node_Ptr
double * q_b1_Equ_c_Node_Ptr
double * q_c_Equ_c1_Node_Ptr
double * q_c1_Equ_b1_Node_Ptr
double * q_b1_Equ_b_Node_Ptr
double * f_e1_Equ_noi_Node_Ptr
double * q_b2_Equ_b_Node_Ptr
double * q_b1_Equ_c4_Node_Ptr
static const int admsProbeID_V_b2_e1
static Device * factory(const Configuration &configuration, const FactoryBlock &factory_block)
double * q_b1_Equ_e1_Node_Ptr
std::vector< double > Jdxp_static
double * q_c_Equ_c3_Node_Ptr
void loadNodeSymbols(Util::SymbolTable &symbol_table) const
Populates and returns the store name map.
double * q_e1_Equ_c1_Node_Ptr
double * q_noi_Equ_noi_Node_Ptr
double * q_c2_Equ_b2_Node_Ptr
static const int admsProbeID_V_noi_e1
double * q_c4_Equ_b_Node_Ptr
double * f_b2_Equ_b2_Node_Ptr
std::vector< Param > params
Parameters from the line.
static void loadModelParameters(ParametricData< Model > &model_parameters)
double * q_b1_Equ_b2_Node_Ptr
double * f_s_Equ_b1_Node_Ptr
double * f_b1_Equ_c1_Node_Ptr
double * q_s_Equ_b2_Node_Ptr
double * f_c3_Equ_b_Node_Ptr
std::vector< AdmsFadType > staticContributions
double * f_b1_Equ_s_Node_Ptr
void setParams(const std::vector< Param > ¶ms)
double * f_c4_Equ_c3_Node_Ptr
double * q_noi_Equ_c1_Node_Ptr
const std::string & getName() const
double * f_c4_Equ_c4_Node_Ptr
double * f_c1_Equ_dt_Node_Ptr
double * f_c2_Equ_c2_Node_Ptr
double * q_c3_Equ_b2_Node_Ptr
void registerLIDs(const LocalIdVector &intLIDVecRef, const LocalIdVector &extLIDVecRef)
double * q_b_Equ_c1_Node_Ptr
double * f_c3_Equ_b2_Node_Ptr
double * q_b1_Equ_c1_Node_Ptr
The FactoryBlock contains parameters needed by the device, instance and model creation functions...
double * q_c2_Equ_c1_Node_Ptr
bool updateIntermediateVars()
double * q_c3_Equ_c1_Node_Ptr
double * q_s_Equ_c3_Node_Ptr
double * f_dt_Equ_c_Node_Ptr
double * q_b1_Equ_b1_Node_Ptr
double * f_s_Equ_dt_Node_Ptr
static T adms_vt(const T temp)
double * q_c2_Equ_dt_Node_Ptr
const DeviceOptions & getDeviceOptions() const
double * q_s_Equ_b1_Node_Ptr
static const int admsProbeID_V_dt_GND
static const int admsProbeID_V_b2_c2
double * f_b1_Equ_c4_Node_Ptr
double * q_c2_Equ_c2_Node_Ptr
double * q_c3_Equ_b1_Node_Ptr
double * q_e1_Equ_b_Node_Ptr
double * q_c2_Equ_e1_Node_Ptr
double * q_b_Equ_dt_Node_Ptr
Parameter is not to be documented.
double * f_e1_Equ_b2_Node_Ptr
double * f_e1_Equ_c1_Node_Ptr
double * f_c1_Equ_c1_Node_Ptr
double * q_e1_Equ_b1_Node_Ptr
double * q_c_Equ_b2_Node_Ptr
double * f_dt_Equ_s_Node_Ptr
double * q_e_Equ_e_Node_Ptr
static const int admsProbeID_V_b_e
double * f_e1_Equ_b1_Node_Ptr
std::vector< Instance * > instanceContainer
double * f_b2_Equ_b1_Node_Ptr
double * q_c3_Equ_dt_Node_Ptr
double * q_dt_Equ_dt_Node_Ptr
const DeviceOptions & deviceOptions_
double * f_s_Equ_b_Node_Ptr
double * f_c_Equ_c4_Node_Ptr
std::vector< std::vector< int > > JacobianStamp
double * f_c2_Equ_b2_Node_Ptr
double * f_c3_Equ_s_Node_Ptr
double * q_b_Equ_c2_Node_Ptr
double * f_b2_Equ_dt_Node_Ptr
double * q_c1_Equ_s_Node_Ptr
double * q_c2_Equ_noi_Node_Ptr
double * f_b_Equ_e1_Node_Ptr
std::vector< AdmsFadType > probeVars
double * q_noi_Equ_e1_Node_Ptr
double * q_b2_Equ_c4_Node_Ptr
double * q_c3_Equ_c_Node_Ptr
std::vector< AdmsFadType > dynamicContributions
double * q_c1_Equ_e1_Node_Ptr
Linear::Vector * nextStaVectorPtr
double * q_c3_Equ_b_Node_Ptr
double * f_c2_Equ_e1_Node_Ptr
ScalarT trunc_ev(ScalarT Val, ScalarT Vprev, ScalarT Vmin, ScalarT Vmax)
double * f_b_Equ_b2_Node_Ptr
static Config< T > & addConfiguration()
Adds the device to the Xyce device configuration.
double * f_b_Equ_c2_Node_Ptr
double * q_b2_Equ_dt_Node_Ptr
std::vector< int > jacMap
static const int admsProbeID_V_c3_c1
double * f_noi_Equ_b2_Node_Ptr
double * q_c4_Equ_b1_Node_Ptr
double * f_b1_Equ_c3_Node_Ptr
double * f_s_Equ_s_Node_Ptr
Linear::Matrix * dFdxMatrixPtr
double * f_b_Equ_e_Node_Ptr
double * q_noi_Equ_b2_Node_Ptr
double * f_noi_Equ_c2_Node_Ptr
double * f_e1_Equ_c_Node_Ptr
double * q_s_Equ_c2_Node_Ptr
The Device class is an interface for device implementations.
double * f_s_Equ_c2_Node_Ptr
double * f_s_Equ_c3_Node_Ptr
double * f_e1_Equ_b_Node_Ptr
double * f_c4_Equ_e1_Node_Ptr
int li_state_admsProbeID_V_b2_c2
double * q_c2_Equ_c4_Node_Ptr
double * f_c1_Equ_b_Node_Ptr
double * q_b_Equ_c3_Node_Ptr
double * f_b2_Equ_e1_Node_Ptr
double * q_c1_Equ_b_Node_Ptr
double * f_c4_Equ_b1_Node_Ptr
static const int admsNodeID_e
double * q_c2_Equ_c_Node_Ptr
double * q_b_Equ_s_Node_Ptr
double * q_dt_Equ_c3_Node_Ptr
static const int admsNodeID_b1
Sacado::Fad::SFad< double, 1 > AdmsSensFadType
double * f_c_Equ_dt_Node_Ptr
double * q_c_Equ_b_Node_Ptr
double * dQdxdVpVectorRawPtr
Class Configuration contains device configuration data.
double * q_c_Equ_c2_Node_Ptr
double * q_c3_Equ_c4_Node_Ptr
double * f_s_Equ_c_Node_Ptr
double * f_s_Equ_e1_Node_Ptr
double * q_e1_Equ_noi_Node_Ptr
double * q_c4_Equ_c4_Node_Ptr
double * f_c2_Equ_c1_Node_Ptr
double * q_c1_Equ_c2_Node_Ptr
double * q_b1_Equ_c3_Node_Ptr
double * f_e_Equ_e1_Node_Ptr
static const int admsNodeID_b
Model(const Configuration &configuration, const ModelBlock &model_block, const FactoryBlock &factory_block)
double * q_c4_Equ_b2_Node_Ptr
double * f_b2_Equ_noi_Node_Ptr
static const int admsProbeID_V_e_e1
double * f_noi_Equ_c1_Node_Ptr
double * q_b_Equ_e1_Node_Ptr
double * q_e1_Equ_c_Node_Ptr
double * f_c1_Equ_c3_Node_Ptr
double * f_b_Equ_b_Node_Ptr
void jacStampMap(const JacobianStamp &stamp_parent, IdVector &map_parent, JacobianStamp &map2_parent, JacobianStamp &stamp, IdVector &map, JacobianStamp &map2, int from, int to, int original_size)
double * q_b2_Equ_c_Node_Ptr
double * f_dt_Equ_e_Node_Ptr
const SolverState & getSolverState() const
double * f_dt_Equ_c2_Node_Ptr
double * f_c1_Equ_b1_Node_Ptr
double * f_dt_Equ_c1_Node_Ptr
double * f_e1_Equ_c2_Node_Ptr
double * f_dt_Equ_b1_Node_Ptr
double * f_noi_Equ_e1_Node_Ptr
double * f_b1_Equ_c_Node_Ptr
double * q_c2_Equ_b_Node_Ptr
double * q_b_Equ_c_Node_Ptr
double * f_c1_Equ_c_Node_Ptr
double * f_b1_Equ_c2_Node_Ptr
double * q_s_Equ_s_Node_Ptr
void registerJacLIDs(const JacobianStamp &jacLIDVec)
double * f_e1_Equ_dt_Node_Ptr
Linear::Vector * currStaVectorPtr
double * f_dt_Equ_e1_Node_Ptr
double * f_c_Equ_b2_Node_Ptr
double * q_b2_Equ_c1_Node_Ptr
double * q_dt_Equ_c2_Node_Ptr
double * q_s_Equ_c1_Node_Ptr
double * f_c_Equ_b1_Node_Ptr
double * nextStaVectorRawPtr
double * q_b2_Equ_noi_Node_Ptr
Linear::Vector * daeFVectorPtr
double * f_b_Equ_c_Node_Ptr
double * f_c3_Equ_c1_Node_Ptr
double * f_e1_Equ_c3_Node_Ptr
std::vector< double > Jdxp_dynamic
static const int admsNodeID_e1
const std::string & getType() const
double * q_dt_Equ_b2_Node_Ptr
double * f_c2_Equ_b_Node_Ptr
double * q_dt_Equ_b1_Node_Ptr
double * f_c4_Equ_c_Node_Ptr
double * f_b2_Equ_c1_Node_Ptr
double * f_c_Equ_c_Node_Ptr
double * q_b1_Equ_dt_Node_Ptr
double * q_c1_Equ_c_Node_Ptr
double * q_e1_Equ_e_Node_Ptr
double * q_dt_Equ_c4_Node_Ptr
double * q_c3_Equ_c2_Node_Ptr
double * q_e1_Equ_b2_Node_Ptr
double * f_c3_Equ_b1_Node_Ptr
double * q_e1_Equ_c3_Node_Ptr
double * q_b_Equ_b1_Node_Ptr
double * q_c_Equ_b1_Node_Ptr
double * q_c1_Equ_dt_Node_Ptr
Sacado::Fad::SFad< double, 16 > AdmsFadType
double * f_e1_Equ_e1_Node_Ptr
static const int admsProbeID_V_c1_c2
double * q_c1_Equ_c4_Node_Ptr
double * f_c1_Equ_c2_Node_Ptr
double * f_b2_Equ_c3_Node_Ptr
double * q_dt_Equ_e_Node_Ptr
static const int admsProbeID_V_b2_c1
double * q_c3_Equ_e1_Node_Ptr
bool updatePrimaryState()
double * f_dt_Equ_b_Node_Ptr
static const int admsProbeID_V_s_c1
const ExternData & extData
double * f_b1_Equ_b2_Node_Ptr
bool processParams()
processParams
double * q_c3_Equ_c3_Node_Ptr
double * f_dt_Equ_b2_Node_Ptr
double * f_e_Equ_b_Node_Ptr
static const int admsNodeID_c2
double * q_c_Equ_dt_Node_Ptr
ModelBlock represents a .MODEL line from the netlist.
double * f_b_Equ_c4_Node_Ptr
Manages parameter binding for class C.
double * f_c1_Equ_s_Node_Ptr
double * q_b2_Equ_b1_Node_Ptr
InstanceBlock represent a device instance line from the netlist.
double * q_b2_Equ_c2_Node_Ptr
double * f_dt_Equ_c3_Node_Ptr
double * q_noi_Equ_c2_Node_Ptr
double * q_b2_Equ_c3_Node_Ptr
double * f_c3_Equ_c4_Node_Ptr
int li_state_admsProbeID_V_b1_e1
double * q_dt_Equ_c_Node_Ptr
Util::Param temp
operating temperature of ckt.
double * q_dt_Equ_e1_Node_Ptr
std::vector< Param > params
double * q_s_Equ_c_Node_Ptr
Linear::Matrix * dQdxMatrixPtr
double * q_c1_Equ_c1_Node_Ptr
double * f_c4_Equ_c1_Node_Ptr
double * q_c4_Equ_s_Node_Ptr
static const int admsNodeID_c
double * f_c_Equ_c3_Node_Ptr
static const int admsNodeID_c1
int li_state_admsProbeID_V_b1_b2
double * f_e1_Equ_c4_Node_Ptr
double * f_b_Equ_b1_Node_Ptr
static const int admsNodeID_dt
double * q_c4_Equ_c1_Node_Ptr
bool updateSecondaryState()
double * q_e_Equ_b_Node_Ptr
void setModParams(const std::vector< Param > ¶ms)
double * f_b1_Equ_b1_Node_Ptr
double * f_c2_Equ_b1_Node_Ptr
double * q_c2_Equ_b1_Node_Ptr
std::vector< std::vector< int > > jacMap2
virtual std::ostream & printOutInstances(std::ostream &os) const