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
90 .setExpressionAccess(
NO_DOC)
93 .setDescription(
"Internal-use parameter for setting device instance temperature");
96 .setDescription(
"Device temperature (use 0.0 for ambient)")
97 .setAnalyticSensitivityAvailable(
true)
101 .setDescription(
"Number of devices in parallel");
115 .setExpressionAccess(
NO_DOC)
118 .setDescription(
"Internal-use parameter for setting device model temperature");
121 .setDescription(
"Nominal temperature")
122 .setAnalyticSensitivityAvailable(
true)
123 .setSensitivityFunctor(&
modSens);
127 .setDescription(
"Extrinsic Collector resistance")
128 .setAnalyticSensitivityAvailable(
true)
129 .setSensitivityFunctor(&
modSens);
133 .setDescription(
"Intrinsic Collector resistance")
134 .setAnalyticSensitivityAvailable(
true)
135 .setSensitivityFunctor(&
modSens);
138 .setDescription(
"Epi drift saturation voltage")
139 .setAnalyticSensitivityAvailable(
true)
140 .setSensitivityFunctor(&
modSens);
143 .setDescription(
"Epi doping parameter")
144 .setAnalyticSensitivityAvailable(
true)
145 .setSensitivityFunctor(&
modSens);
148 .setDescription(
"High current RC factor")
149 .setAnalyticSensitivityAvailable(
true)
150 .setSensitivityFunctor(&
modSens);
154 .setDescription(
"Extrinsic base resistance")
155 .setAnalyticSensitivityAvailable(
true)
156 .setSensitivityFunctor(&
modSens);
160 .setDescription(
"Intrinsic base resistance")
161 .setAnalyticSensitivityAvailable(
true)
162 .setSensitivityFunctor(&
modSens);
166 .setDescription(
"Emitter resistance")
167 .setAnalyticSensitivityAvailable(
true)
168 .setSensitivityFunctor(&
modSens);
172 .setDescription(
"Substrate resistance")
173 .setAnalyticSensitivityAvailable(
true)
174 .setSensitivityFunctor(&
modSens);
178 .setDescription(
"Parasitic base resistance")
179 .setAnalyticSensitivityAvailable(
true)
180 .setSensitivityFunctor(&
modSens);
183 .setDescription(
"Transport saturation current")
184 .setAnalyticSensitivityAvailable(
true)
185 .setSensitivityFunctor(&
modSens);
188 .setDescription(
"Forward emission coefficient")
189 .setAnalyticSensitivityAvailable(
true)
190 .setSensitivityFunctor(&
modSens);
193 .setDescription(
"Reverse emission coefficient")
194 .setAnalyticSensitivityAvailable(
true)
195 .setSensitivityFunctor(&
modSens);
198 .setDescription(
"Forward-bias depletion capacitance limit")
199 .setAnalyticSensitivityAvailable(
true)
200 .setSensitivityFunctor(&
modSens);
204 .setDescription(
"Extrinsic B-E overlap capacitance")
205 .setAnalyticSensitivityAvailable(
true)
206 .setSensitivityFunctor(&
modSens);
210 .setDescription(
"B-E zero-bias capacitance")
211 .setAnalyticSensitivityAvailable(
true)
212 .setSensitivityFunctor(&
modSens);
215 .setDescription(
"B-E built-in potential")
216 .setAnalyticSensitivityAvailable(
true)
217 .setSensitivityFunctor(&
modSens);
220 .setDescription(
"B-E grading coefficient")
221 .setAnalyticSensitivityAvailable(
true)
222 .setSensitivityFunctor(&
modSens);
225 .setDescription(
"Base-Emitter capacitor smoothing factor")
226 .setAnalyticSensitivityAvailable(
true)
227 .setSensitivityFunctor(&
modSens);
231 .setDescription(
"Extrinsic B-C overlap capacitance")
232 .setAnalyticSensitivityAvailable(
true)
233 .setSensitivityFunctor(&
modSens);
237 .setDescription(
"B-C zero-bias capacitance")
238 .setAnalyticSensitivityAvailable(
true)
239 .setSensitivityFunctor(&
modSens);
242 .setDescription(
"Epi charge parameter")
243 .setAnalyticSensitivityAvailable(
true)
244 .setSensitivityFunctor(&
modSens);
248 .setDescription(
"S-E zero-bias capacitance")
249 .setAnalyticSensitivityAvailable(
true)
250 .setSensitivityFunctor(&
modSens);
253 .setDescription(
"B-C built-in potential")
254 .setAnalyticSensitivityAvailable(
true)
255 .setSensitivityFunctor(&
modSens);
258 .setDescription(
"B-C grading coefficient")
259 .setAnalyticSensitivityAvailable(
true)
260 .setSensitivityFunctor(&
modSens);
263 .setDescription(
"Base-Collector capacitor smoothing factor")
264 .setAnalyticSensitivityAvailable(
true)
265 .setSensitivityFunctor(&
modSens);
269 .setDescription(
"S-C zero-bias capacitance")
270 .setAnalyticSensitivityAvailable(
true)
271 .setSensitivityFunctor(&
modSens);
274 .setDescription(
"S-C built-in potential")
275 .setAnalyticSensitivityAvailable(
true)
276 .setSensitivityFunctor(&
modSens);
279 .setDescription(
"S-C grading coefficient")
280 .setAnalyticSensitivityAvailable(
true)
281 .setSensitivityFunctor(&
modSens);
284 .setDescription(
"Substrate-collector capacitor smoothing factor (unused)")
285 .setAnalyticSensitivityAvailable(
true)
286 .setSensitivityFunctor(&
modSens);
289 .setDescription(
"Ideal B-E saturation current")
290 .setAnalyticSensitivityAvailable(
true)
291 .setSensitivityFunctor(&
modSens);
294 .setDescription(
"Portion of Ibei from Vbei")
295 .setAnalyticSensitivityAvailable(
true)
296 .setSensitivityFunctor(&
modSens);
299 .setDescription(
"Ideal B-E emission coefficient")
300 .setAnalyticSensitivityAvailable(
true)
301 .setSensitivityFunctor(&
modSens);
304 .setDescription(
"Nonideal B-E saturation current")
305 .setAnalyticSensitivityAvailable(
true)
306 .setSensitivityFunctor(&
modSens);
309 .setDescription(
"Non-ideal B-E emission coefficient")
310 .setAnalyticSensitivityAvailable(
true)
311 .setSensitivityFunctor(&
modSens);
314 .setDescription(
"Ideal B-C saturation current")
315 .setAnalyticSensitivityAvailable(
true)
316 .setSensitivityFunctor(&
modSens);
319 .setDescription(
"Ideal B-C emission coefficient")
320 .setAnalyticSensitivityAvailable(
true)
321 .setSensitivityFunctor(&
modSens);
324 .setDescription(
"Nonideal B-C saturation current")
325 .setAnalyticSensitivityAvailable(
true)
326 .setSensitivityFunctor(&
modSens);
329 .setDescription(
"Non-ideal B-C emission coefficient")
330 .setAnalyticSensitivityAvailable(
true)
331 .setSensitivityFunctor(&
modSens);
334 .setDescription(
"B-C weak avalanche parameter")
335 .setAnalyticSensitivityAvailable(
true)
336 .setSensitivityFunctor(&
modSens);
339 .setDescription(
"B-C weak avalanche parameter")
340 .setAnalyticSensitivityAvailable(
true)
341 .setSensitivityFunctor(&
modSens);
344 .setDescription(
"Parasitic transport saturation current")
345 .setAnalyticSensitivityAvailable(
true)
346 .setSensitivityFunctor(&
modSens);
349 .setDescription(
"Portion of Iccp from Vbep")
350 .setAnalyticSensitivityAvailable(
true)
351 .setSensitivityFunctor(&
modSens);
354 .setDescription(
"Parasitic forward emission coefficient")
355 .setAnalyticSensitivityAvailable(
true)
356 .setSensitivityFunctor(&
modSens);
359 .setDescription(
"Ideal parasitic B-E saturation current")
360 .setAnalyticSensitivityAvailable(
true)
361 .setSensitivityFunctor(&
modSens);
364 .setDescription(
"Nonideal parasitic B-E saturation current")
365 .setAnalyticSensitivityAvailable(
true)
366 .setSensitivityFunctor(&
modSens);
369 .setDescription(
"Ideal parasitic B-C saturation current")
370 .setAnalyticSensitivityAvailable(
true)
371 .setSensitivityFunctor(&
modSens);
374 .setDescription(
"Ideal parasitic B-C emission coefficient")
375 .setAnalyticSensitivityAvailable(
true)
376 .setSensitivityFunctor(&
modSens);
379 .setDescription(
"Nonideal parasitic B-C saturation current")
380 .setAnalyticSensitivityAvailable(
true)
381 .setSensitivityFunctor(&
modSens);
384 .setDescription(
"Non-ideal parasitic B-C emission coefficient")
385 .setAnalyticSensitivityAvailable(
true)
386 .setSensitivityFunctor(&
modSens);
389 .setDescription(
"Forward Early voltage")
390 .setAnalyticSensitivityAvailable(
true)
391 .setSensitivityFunctor(&
modSens);
394 .setDescription(
"Reverse Early voltage")
395 .setAnalyticSensitivityAvailable(
true)
396 .setSensitivityFunctor(&
modSens);
399 .setDescription(
"Forward knee current")
400 .setAnalyticSensitivityAvailable(
true)
401 .setSensitivityFunctor(&
modSens);
404 .setDescription(
"Reverse knee current")
405 .setAnalyticSensitivityAvailable(
true)
406 .setSensitivityFunctor(&
modSens);
409 .setDescription(
"Parasitic knee current")
410 .setAnalyticSensitivityAvailable(
true)
411 .setSensitivityFunctor(&
modSens);
414 .setDescription(
"Forward transit time")
415 .setAnalyticSensitivityAvailable(
true)
416 .setSensitivityFunctor(&
modSens);
419 .setDescription(
"Variation of tf with base width modulation")
420 .setAnalyticSensitivityAvailable(
true)
421 .setSensitivityFunctor(&
modSens);
424 .setDescription(
"Coefficient of tf with bias dependence")
425 .setAnalyticSensitivityAvailable(
true)
426 .setSensitivityFunctor(&
modSens);
429 .setDescription(
"Coefficient of tf dependence on Vbc")
430 .setAnalyticSensitivityAvailable(
true)
431 .setSensitivityFunctor(&
modSens);
434 .setDescription(
"Coefficient of tf dependence on Ic")
435 .setAnalyticSensitivityAvailable(
true)
436 .setSensitivityFunctor(&
modSens);
439 .setDescription(
"Reverse transit time")
440 .setAnalyticSensitivityAvailable(
true)
441 .setSensitivityFunctor(&
modSens);
444 .setDescription(
"Forward excess-phase delay time (unused in this version)")
445 .setAnalyticSensitivityAvailable(
true)
446 .setSensitivityFunctor(&
modSens);
449 .setDescription(
"B-E flicker (1/f) noise coefficient (unused)")
450 .setAnalyticSensitivityAvailable(
true)
451 .setSensitivityFunctor(&
modSens);
454 .setDescription(
"Base-Emitter Flicker Noise coefficient (unused)")
455 .setAnalyticSensitivityAvailable(
true)
456 .setSensitivityFunctor(&
modSens);
459 .setDescription(
"B-E flicker noise dependence (unused)")
460 .setAnalyticSensitivityAvailable(
true)
461 .setSensitivityFunctor(&
modSens);
464 .setDescription(
"Temperature exponent of re")
465 .setAnalyticSensitivityAvailable(
true)
466 .setSensitivityFunctor(&
modSens);
470 .setAnalyticSensitivityAvailable(
true)
471 .setSensitivityFunctor(&
modSens);
475 .setAnalyticSensitivityAvailable(
true)
476 .setSensitivityFunctor(&
modSens);
479 .setDescription(
"Temperature exponent of rs")
480 .setAnalyticSensitivityAvailable(
true)
481 .setSensitivityFunctor(&
modSens);
484 .setDescription(
"Temperature exponent of vo")
485 .setAnalyticSensitivityAvailable(
true)
486 .setSensitivityFunctor(&
modSens);
489 .setDescription(
"Activation energy for IS")
490 .setAnalyticSensitivityAvailable(
true)
491 .setSensitivityFunctor(&
modSens);
494 .setDescription(
"Activation energy for IBEI")
495 .setAnalyticSensitivityAvailable(
true)
496 .setSensitivityFunctor(&
modSens);
499 .setDescription(
"Activation energy for IBCI")
500 .setAnalyticSensitivityAvailable(
true)
501 .setSensitivityFunctor(&
modSens);
504 .setDescription(
"Activation energy for IBCIP")
505 .setAnalyticSensitivityAvailable(
true)
506 .setSensitivityFunctor(&
modSens);
509 .setDescription(
"Activation energy for IBEN")
510 .setAnalyticSensitivityAvailable(
true)
511 .setSensitivityFunctor(&
modSens);
514 .setDescription(
"Activation energy for IBCN")
515 .setAnalyticSensitivityAvailable(
true)
516 .setSensitivityFunctor(&
modSens);
519 .setDescription(
"Activation energy for IBCNP")
520 .setAnalyticSensitivityAvailable(
true)
521 .setSensitivityFunctor(&
modSens);
524 .setDescription(
"Temperature exponent of IS")
525 .setAnalyticSensitivityAvailable(
true)
526 .setSensitivityFunctor(&
modSens);
529 .setDescription(
"Temperature exponent of Ibei, Ibci, Ibeip, and Ibcip")
530 .setAnalyticSensitivityAvailable(
true)
531 .setSensitivityFunctor(&
modSens);
534 .setDescription(
"Temperature exponent of Iben, Ibcn, Ibenp, and Ibcnp")
535 .setAnalyticSensitivityAvailable(
true)
536 .setSensitivityFunctor(&
modSens);
539 .setDescription(
"Temperature coefficient of Nf")
540 .setAnalyticSensitivityAvailable(
true)
541 .setSensitivityFunctor(&
modSens);
544 .setDescription(
"Temperature coefficient of Avc2")
545 .setAnalyticSensitivityAvailable(
true)
546 .setSensitivityFunctor(&
modSens);
549 .setDescription(
"Thermal resistance, must be given for self-heating")
550 .setAnalyticSensitivityAvailable(
true)
551 .setSensitivityFunctor(&
modSens);
554 .setDescription(
"Thermal capacitance")
555 .setAnalyticSensitivityAvailable(
true)
556 .setSensitivityFunctor(&
modSens);
560 .setAnalyticSensitivityAvailable(
true)
561 .setSensitivityFunctor(&
modSens);
565 .setAnalyticSensitivityAvailable(
true)
566 .setSensitivityFunctor(&
modSens);
569 .setDescription(
"(unused)")
570 .setAnalyticSensitivityAvailable(
true)
571 .setSensitivityFunctor(&
modSens);
575 .setAnalyticSensitivityAvailable(
true)
576 .setSensitivityFunctor(&
modSens);
580 .setAnalyticSensitivityAvailable(
true)
581 .setSensitivityFunctor(&
modSens);
585 .setAnalyticSensitivityAvailable(
true)
586 .setSensitivityFunctor(&
modSens);
590 .setAnalyticSensitivityAvailable(
true)
591 .setSensitivityFunctor(&
modSens);
595 .setAnalyticSensitivityAvailable(
true)
596 .setSensitivityFunctor(&
modSens);
600 .setAnalyticSensitivityAvailable(
true)
601 .setSensitivityFunctor(&
modSens);
604 .setDescription(
"Saturation current for reverse operation")
605 .setAnalyticSensitivityAvailable(
true)
606 .setSensitivityFunctor(&
modSens);
609 .setDescription(
"Temperature exponent of ISRR")
610 .setAnalyticSensitivityAvailable(
true)
611 .setSensitivityFunctor(&
modSens);
614 .setDescription(
"Activation energy for ISRR")
615 .setAnalyticSensitivityAvailable(
true)
616 .setSensitivityFunctor(&
modSens);
619 .setDescription(
"Activation energy for ISP")
620 .setAnalyticSensitivityAvailable(
true)
621 .setSensitivityFunctor(&
modSens);
625 .setAnalyticSensitivityAvailable(
true)
626 .setSensitivityFunctor(&
modSens);
630 .setAnalyticSensitivityAvailable(
true)
631 .setSensitivityFunctor(&
modSens);
635 .setAnalyticSensitivityAvailable(
true)
636 .setSensitivityFunctor(&
modSens);
640 .setAnalyticSensitivityAvailable(
true)
641 .setSensitivityFunctor(&
modSens);
645 .setAnalyticSensitivityAvailable(
true)
646 .setSensitivityFunctor(&
modSens);
650 .setAnalyticSensitivityAvailable(
true)
651 .setSensitivityFunctor(&
modSens);
654 .setDescription(
"(unused)")
655 .setAnalyticSensitivityAvailable(
true)
656 .setSensitivityFunctor(&
modSens);
659 .setDescription(
"Device temperature (use 0.0 for ambient)")
660 .setAnalyticSensitivityAvailable(
true)
661 .setSensitivityFunctor(&
modSens);
664 .setDescription(
"Version of this VBIC model")
665 .setAnalyticSensitivityAvailable(
true)
666 .setSensitivityFunctor(&
modSens);
670 .setAnalyticSensitivityAvailable(
true)
671 .setSensitivityFunctor(&
modSens);
692 UserError0(*
this) <<
"ADMSvbic: Parameter M value " <<
M <<
" out of range [ 1, (+inf) [";
723 :
DeviceInstance(instance_block, configuration.getInstanceParameters(), factory_block),
737 f_bi_Equ_bi_Node_Ptr(0),
738 f_bi_Equ_ei_Node_Ptr(0),
739 f_ei_Equ_bi_Node_Ptr(0),
740 f_ei_Equ_ei_Node_Ptr(0),
741 f_bi_Equ_dt_Node_Ptr(0),
742 f_ei_Equ_dt_Node_Ptr(0),
743 f_bx_Equ_bx_Node_Ptr(0),
744 f_bx_Equ_ei_Node_Ptr(0),
745 f_ei_Equ_bx_Node_Ptr(0),
746 f_bx_Equ_dt_Node_Ptr(0),
747 f_ci_Equ_bi_Node_Ptr(0),
748 f_ci_Equ_ci_Node_Ptr(0),
749 f_ei_Equ_ci_Node_Ptr(0),
750 f_ci_Equ_ei_Node_Ptr(0),
751 f_ci_Equ_dt_Node_Ptr(0),
752 f_bi_Equ_ci_Node_Ptr(0),
753 f_bx_Equ_bp_Node_Ptr(0),
754 f_bp_Equ_bx_Node_Ptr(0),
755 f_bp_Equ_bp_Node_Ptr(0),
756 f_bp_Equ_dt_Node_Ptr(0),
757 f_c_Equ_dt_Node_Ptr(0),
758 f_cx_Equ_dt_Node_Ptr(0),
759 f_c_Equ_c_Node_Ptr(0),
760 f_c_Equ_cx_Node_Ptr(0),
761 f_cx_Equ_c_Node_Ptr(0),
762 f_cx_Equ_cx_Node_Ptr(0),
763 f_cx_Equ_bi_Node_Ptr(0),
764 f_ci_Equ_cx_Node_Ptr(0),
765 f_cx_Equ_ci_Node_Ptr(0),
766 f_b_Equ_dt_Node_Ptr(0),
767 f_b_Equ_b_Node_Ptr(0),
768 f_b_Equ_bx_Node_Ptr(0),
769 f_bx_Equ_b_Node_Ptr(0),
770 f_bx_Equ_bi_Node_Ptr(0),
771 f_bx_Equ_ci_Node_Ptr(0),
772 f_bi_Equ_bx_Node_Ptr(0),
773 f_e_Equ_dt_Node_Ptr(0),
774 f_e_Equ_e_Node_Ptr(0),
775 f_e_Equ_ei_Node_Ptr(0),
776 f_ei_Equ_e_Node_Ptr(0),
777 f_bp_Equ_bi_Node_Ptr(0),
778 f_bp_Equ_ci_Node_Ptr(0),
779 f_cx_Equ_bx_Node_Ptr(0),
780 f_cx_Equ_bp_Node_Ptr(0),
781 f_bp_Equ_cx_Node_Ptr(0),
782 f_bi_Equ_cx_Node_Ptr(0),
783 f_b_Equ_e_Node_Ptr(0),
784 f_e_Equ_b_Node_Ptr(0),
785 f_b_Equ_c_Node_Ptr(0),
786 f_c_Equ_b_Node_Ptr(0),
787 f_dt_Equ_dt_Node_Ptr(0),
788 f_dt_Equ_bp_Node_Ptr(0),
789 f_dt_Equ_cx_Node_Ptr(0),
790 f_dt_Equ_e_Node_Ptr(0),
791 f_dt_Equ_ei_Node_Ptr(0),
792 f_dt_Equ_bx_Node_Ptr(0),
793 f_dt_Equ_bi_Node_Ptr(0),
794 f_dt_Equ_b_Node_Ptr(0),
795 f_dt_Equ_ci_Node_Ptr(0),
796 f_dt_Equ_c_Node_Ptr(0),
797 q_bi_Equ_bi_Node_Ptr(0),
798 q_bi_Equ_ei_Node_Ptr(0),
799 q_ei_Equ_bi_Node_Ptr(0),
800 q_ei_Equ_ei_Node_Ptr(0),
801 q_bi_Equ_dt_Node_Ptr(0),
802 q_ei_Equ_dt_Node_Ptr(0),
803 q_bx_Equ_bx_Node_Ptr(0),
804 q_bx_Equ_ei_Node_Ptr(0),
805 q_ei_Equ_bx_Node_Ptr(0),
806 q_bx_Equ_dt_Node_Ptr(0),
807 q_ci_Equ_bi_Node_Ptr(0),
808 q_ci_Equ_ci_Node_Ptr(0),
809 q_ei_Equ_ci_Node_Ptr(0),
810 q_ci_Equ_ei_Node_Ptr(0),
811 q_ci_Equ_dt_Node_Ptr(0),
812 q_bi_Equ_ci_Node_Ptr(0),
813 q_bx_Equ_bp_Node_Ptr(0),
814 q_bp_Equ_bx_Node_Ptr(0),
815 q_bp_Equ_bp_Node_Ptr(0),
816 q_bp_Equ_dt_Node_Ptr(0),
817 q_c_Equ_dt_Node_Ptr(0),
818 q_cx_Equ_dt_Node_Ptr(0),
819 q_c_Equ_c_Node_Ptr(0),
820 q_c_Equ_cx_Node_Ptr(0),
821 q_cx_Equ_c_Node_Ptr(0),
822 q_cx_Equ_cx_Node_Ptr(0),
823 q_cx_Equ_bi_Node_Ptr(0),
824 q_ci_Equ_cx_Node_Ptr(0),
825 q_cx_Equ_ci_Node_Ptr(0),
826 q_b_Equ_dt_Node_Ptr(0),
827 q_b_Equ_b_Node_Ptr(0),
828 q_b_Equ_bx_Node_Ptr(0),
829 q_bx_Equ_b_Node_Ptr(0),
830 q_bx_Equ_bi_Node_Ptr(0),
831 q_bx_Equ_ci_Node_Ptr(0),
832 q_bi_Equ_bx_Node_Ptr(0),
833 q_e_Equ_dt_Node_Ptr(0),
834 q_e_Equ_e_Node_Ptr(0),
835 q_e_Equ_ei_Node_Ptr(0),
836 q_ei_Equ_e_Node_Ptr(0),
837 q_bp_Equ_bi_Node_Ptr(0),
838 q_bp_Equ_ci_Node_Ptr(0),
839 q_cx_Equ_bx_Node_Ptr(0),
840 q_cx_Equ_bp_Node_Ptr(0),
841 q_bp_Equ_cx_Node_Ptr(0),
842 q_bi_Equ_cx_Node_Ptr(0),
843 q_b_Equ_e_Node_Ptr(0),
844 q_e_Equ_b_Node_Ptr(0),
845 q_b_Equ_c_Node_Ptr(0),
846 q_c_Equ_b_Node_Ptr(0),
847 q_dt_Equ_dt_Node_Ptr(0),
848 q_dt_Equ_bp_Node_Ptr(0),
849 q_dt_Equ_cx_Node_Ptr(0),
850 q_dt_Equ_e_Node_Ptr(0),
851 q_dt_Equ_ei_Node_Ptr(0),
852 q_dt_Equ_bx_Node_Ptr(0),
853 q_dt_Equ_bi_Node_Ptr(0),
854 q_dt_Equ_b_Node_Ptr(0),
855 q_dt_Equ_ci_Node_Ptr(0),
856 q_dt_Equ_c_Node_Ptr(0),
857 admsTemperature(getDeviceOptions().temp.getImmutableValue<double>()),
858 externalNodeMode(false)
973 for (
int i=0;i<mapSize;++i)
978 for (
int j=0;j<rowSize;++j)
993 if (!(
given(
"DTEMP")))
1005 if (!
given(
"XYCEADMSINSTTEMP"))
1021 DevelFatal0(*
this) <<
"Instance " <<
getName() <<
" has wrong number of external nodes!"
1022 <<
" If you specify any internal nodes as external, you must set all that exist. ";
1091 std::vector< std::vector<int> > tempStamp;
1092 std::vector<int> tempMap;
1093 std::vector< std::vector<int> > tempMap2;
1095 int OriginalSize =
jacMap.size();
1105 tempStamp.clear(); tempMap.clear(); tempMap2.clear();
1107 tempStamp, tempMap, tempMap2,
1116 tempStamp.clear(); tempMap.clear(); tempMap2.clear();
1118 tempStamp, tempMap, tempMap2,
1127 tempStamp.clear(); tempMap.clear(); tempMap2.clear();
1129 tempStamp, tempMap, tempMap2,
1164 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS))
1166 Xyce::dout() << std::endl << section_divider << std::endl
1167 <<
"In ADMSvbic::Instance::register LIDs\n\n"
1168 <<
"name = " <<
getName() << std::endl
1169 <<
"number of internal variables: " <<
numIntVars << std::endl
1170 <<
"number of external variables: " <<
numExtVars << std::endl;
1180 li_c = extLIDVecRef[i++];
1181 li_b = extLIDVecRef[i++];
1182 li_e = extLIDVecRef[i++];
1183 li_dt = extLIDVecRef[i++];
1190 li_cx = extLIDVecRef[i++];
1192 li_cx = intLIDVecRef[j++];
1197 li_ci = extLIDVecRef[i++];
1199 li_ci = intLIDVecRef[j++];
1204 li_bx = extLIDVecRef[i++];
1206 li_bx = intLIDVecRef[j++];
1211 li_bi = extLIDVecRef[i++];
1213 li_bi = intLIDVecRef[j++];
1217 li_ei = extLIDVecRef[i++];
1219 li_ei = intLIDVecRef[j++];
1223 li_bp = intLIDVecRef[j++];
1226 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS))
1228 Xyce::dout() <<
"\nSolution and RHS variables:\n";
1229 Xyce::dout() <<
"\nli_c = " <<
li_c << std::endl;
1230 Xyce::dout() <<
"\nli_b = " <<
li_b << std::endl;
1231 Xyce::dout() <<
"\nli_e = " <<
li_e << std::endl;
1232 Xyce::dout() <<
"\nli_dt = " <<
li_dt << std::endl;
1233 Xyce::dout() <<
"\nli_cx = " <<
li_cx << std::endl;
1234 Xyce::dout() <<
"\nli_ci = " <<
li_ci << std::endl;
1235 Xyce::dout() <<
"\nli_bx = " <<
li_bx << std::endl;
1236 Xyce::dout() <<
"\nli_bi = " <<
li_bi << std::endl;
1237 Xyce::dout() <<
"\nli_ei = " <<
li_ei << std::endl;
1238 Xyce::dout() <<
"\nli_bp = " <<
li_bp << std::endl;
1240 Xyce::dout() <<
"\nEnd of ADMSvbic::Instance::register LIDs\n";
1241 Xyce::dout() << section_divider << std::endl;
1285 int numSta = staLIDVecRef.size();
1326 std::vector<int> & map=
jacMap;
1327 std::vector< std::vector<int> > & map2=
jacMap2;
1568 bool bsuccess =
true;
1601 bool bsuccess =
true;
1623 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
1625 Xyce::dout() << std::endl << subsection_divider << std::endl;
1626 Xyce::dout() <<
" In ADMSvbic::Instance::updateIntermediateVars\n\n";
1627 Xyce::dout() <<
" name = " <<
getName() << std::endl;
1816 double Vbe_orig,Vbe_limited,Vbe_old;
1817 double Vrth_orig,Vrth_limited,Vrth_old;
1818 double Vbep_orig,Vbep_limited,Vbep_old;
1819 double Vbcx_orig,Vbcx_limited,Vbcx_old;
1820 double Vbex_orig,Vbex_limited,Vbex_old;
1821 double Vbci_orig,Vbci_limited,Vbci_old;
1822 double Vbei_orig,Vbei_limited,Vbei_old;
1838 for (
int i=0; i < 10+0 ; ++i)
1846 for (
int i=0; i < 15 ; ++i)
1936 if ((*flagSolVectorPtr)[
li_e] == 0 ||
1937 (*flagSolVectorPtr)[
li_ei] == 0 ||
1938 (*flagSolVectorPtr)[
li_b] == 0 ||
1939 (*flagSolVectorPtr)[
li_bi] == 0 ||
1940 (*flagSolVectorPtr)[
li_bx] == 0 ||
1941 (*flagSolVectorPtr)[
li_bp] == 0 ||
1942 (*flagSolVectorPtr)[
li_c] == 0 ||
1943 (*flagSolVectorPtr)[
li_ci] == 0 ||
1944 (*flagSolVectorPtr)[
li_cx] == 0 ||
1945 (*flagSolVectorPtr)[
li_dt] == 0 )
1947 Vbci_limited = Vbcx_limited = Vbep_limited = 0;
1948 Vbe_limited = Vbei_limited = Vbex_limited = tVCrit;
1955 Vbci_limited = Vbcx_limited = Vbep_limited = 0;
1956 Vbe_limited = Vbei_limited = Vbex_limited = tVCrit;
1961 Xyce::dout() <<
" Setting device initial condition to Base-Emitter drop=tVCrit (" << tVCrit <<
")"<<std::endl;
1979 Vbe_old = Vbe_limited;
1980 Vrth_old = Vrth_limited;
1981 Vbep_old = Vbep_limited;
1982 Vbcx_old = Vbcx_limited;
1983 Vbex_old = Vbex_limited;
1984 Vbci_old = Vbci_limited;
1985 Vbei_old = Vbei_limited;
2094 if (Vrth_limited != Vrth_orig)
2135 Vtv = ((1.380662e-23*Tdev)/1.602189e-19);
2162 psiio = ((2.0*(Vtv/rT))*log((exp((((0.5*(
model_.
PE))*rT)/Vtv))-exp(((((-0.5)*(
model_.
PE))*rT)/Vtv)))));
2163 psiin = (((psiio*rT)-((3.0*Vtv)*log(rT)))-((
model_.
EAIE)*(rT-1.0)));
2164 PEatT = (psiin+((2.0*Vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/Vtv))))))))));
2165 psiio = ((2.0*(Vtv/rT))*log((exp((((0.5*(
model_.
PC))*rT)/Vtv))-exp(((((-0.5)*(
model_.
PC))*rT)/Vtv)))));
2166 psiin = (((psiio*rT)-((3.0*Vtv)*log(rT)))-((
model_.
EAIC)*(rT-1.0)));
2167 PCatT = (psiin+((2.0*Vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/Vtv))))))))));
2168 psiio = ((2.0*(Vtv/rT))*log((exp((((0.5*(
model_.
PS))*rT)/Vtv))-exp(((((-0.5)*(
model_.
PS))*rT)/Vtv)))));
2169 psiin = (((psiio*rT)-((3.0*Vtv)*log(rT)))-((
model_.
EAIS)*(rT-1.0)));
2170 PSatT = (psiin+((2.0*Vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/Vtv))))))))));
2177 EBBEatT = exp(((-VBBEatT)/(NBBEatT*Vtv)));
2183 IIKF = (1.0/IKFatT);
2199 dvh_vbei = (Vbei+dv0);
2204 qhi_vbei = ((dvh_vbei*((1.0-(
model_.
FC))+(((0.5*(
model_.
ME))*dvh_vbei)/PEatT)))*pwq);
2208 qlo_vbei = ((PEatT*(1.0-pow((1.0-(Vbei/PEatT)),(1.0-(
model_.
ME)))))/(1.0-(
model_.
ME)));
2211 qdbe = (qlo_vbei+qhi_vbei);
2216 vl0 = ((-0.5)*(dv0+mv0));
2217 q0 = (((-PEatT)*pow((1.0-(vl0/PEatT)),(1.0-(
model_.
ME))))/(1.0-(
model_.
ME)));
2218 dv_vbei = (Vbei+dv0);
2220 vl_vbei = ((0.5*(dv_vbei-mv_vbei))-dv0);
2221 qlo_vbei = (((-PEatT)*pow((1.0-(vl_vbei/PEatT)),(1.0-(
model_.
ME))))/(1.0-(
model_.
ME)));
2222 qdbe = ((qlo_vbei+(pow((1.0-(
model_.
FC)),(-(
model_.
ME)))*((Vbei-vl_vbei)+vl0)))-q0);
2227 dvh_vbex = (Vbex+dv0);
2232 qhi_vbex = ((dvh_vbex*((1.0-(
model_.
FC))+(((0.5*(
model_.
ME))*dvh_vbex)/PEatT)))*pwq);
2236 qlo_vbex = ((PEatT*(1.0-pow((1.0-(Vbex/PEatT)),(1.0-(
model_.
ME)))))/(1.0-(
model_.
ME)));
2239 qdbex = (qlo_vbex+qhi_vbex);
2244 vl0 = ((-0.5)*(dv0+mv0));
2245 q0 = (((-PEatT)*pow((1.0-(vl0/PEatT)),(1.0-(
model_.
ME))))/(1.0-(
model_.
ME)));
2246 dv_vbex = (Vbex+dv0);
2248 vl_vbex = ((0.5*(dv_vbex-mv_vbex))-dv0);
2249 qlo_vbex = (((-PEatT)*pow((1.0-(vl_vbex/PEatT)),(1.0-(
model_.
ME))))/(1.0-(
model_.
ME)));
2250 qdbex = ((qlo_vbex+(pow((1.0-(
model_.
FC)),(-(
model_.
ME)))*((Vbex-vl_vbex)+vl0)))-q0);
2255 dvh_vbci = (Vbci+dv0);
2260 qhi_vbci = ((dvh_vbci*((1.0-(
model_.
FC))+(((0.5*(
model_.
MC))*dvh_vbci)/PCatT)))*pwq);
2270 qlo_vbci = ((PCatT*(1.0-pow((1.0-(Vbci/PCatT)),(1.0-(
model_.
MC)))))/(1.0-(
model_.
MC)));
2274 qdbc = (qlo_vbci+qhi_vbci);
2283 qlo0 = ((PCatT*(1.0-pow((1.0-(vl0/PCatT)),(1.0-(
model_.
MC)))))/(1.0-(
model_.
MC)));
2287 qlo_vbci = ((PCatT*(1.0-pow((1.0-(vl_vbci/PCatT)),(1.0-(
model_.
MC)))))/(1.0-(
model_.
MC)));
2288 sel_vbci = (0.5*(vnl_vbci+1.0));
2290 cmx = pow((1.0+(dv0/PCatT)),(-(
model_.
MC)));
2291 cl_vbci = (((1.0-sel_vbci)*crt)+(sel_vbci*cmx));
2292 ql_vbci = (((Vbci-vl_vbci)+vl0)*cl_vbci);
2293 qdbc = ((ql_vbci+qlo_vbci)-qlo0);
2298 vl0 = ((-0.5)*(dv0+mv0));
2299 q0 = (((-PCatT)*pow((1.0-(vl0/PCatT)),(1.0-(
model_.
MC))))/(1.0-(
model_.
MC)));
2300 dv_vbci = (Vbci+dv0);
2302 vl_vbci = ((0.5*(dv_vbci-mv_vbci))-dv0);
2303 qlo_vbci = (((-PCatT)*pow((1.0-(vl_vbci/PCatT)),(1.0-(
model_.
MC))))/(1.0-(
model_.
MC)));
2304 qdbc = ((qlo_vbci+(pow((1.0-(
model_.
FC)),(-(
model_.
MC)))*((Vbci-vl_vbci)+vl0)))-q0);
2310 dvh_vbep = (Vbep+dv0);
2315 qhi_vbep = ((dvh_vbep*((1.0-(
model_.
FC))+(((0.5*(
model_.
MC))*dvh_vbep)/PCatT)))*pwq);
2325 qlo_vbep = ((PCatT*(1.0-pow((1.0-(Vbep/PCatT)),(1.0-(
model_.
MC)))))/(1.0-(
model_.
MC)));
2329 qdbep = (qlo_vbep+qhi_vbep);
2338 qlo0 = ((PCatT*(1.0-pow((1.0-(vl0/PCatT)),(1.0-(
model_.
MC)))))/(1.0-(
model_.
MC)));
2342 qlo_vbep = ((PCatT*(1.0-pow((1.0-(vl_vbep/PCatT)),(1.0-(
model_.
MC)))))/(1.0-(
model_.
MC)));
2343 sel_vbep = (0.5*(vnl_vbep+1.0));
2345 cmx = pow((1.0+(dv0/PCatT)),(-(
model_.
MC)));
2346 cl_vbep = (((1.0-sel_vbep)*crt)+(sel_vbep*cmx));
2347 ql_vbep = (((Vbep-vl_vbep)+vl0)*cl_vbep);
2348 qdbep = ((ql_vbep+qlo_vbep)-qlo0);
2353 vl0 = ((-0.5)*(dv0+mv0));
2354 q0 = (((-PCatT)*pow((1.0-(vl0/PCatT)),(1.0-(
model_.
MC))))/(1.0-(
model_.
MC)));
2355 dv_vbep = (Vbep+dv0);
2357 vl_vbep = ((0.5*(dv_vbep-mv_vbep))-dv0);
2358 qlo_vbep = (((-PCatT)*pow((1.0-(vl_vbep/PCatT)),(1.0-(
model_.
MC))))/(1.0-(
model_.
MC)));
2359 qdbep = ((qlo_vbep+(pow((1.0-(
model_.
FC)),(-(
model_.
MC)))*((Vbep-vl_vbep)+vl0)))-q0);
2362 argi_vbei = (Vbei/(NFatT*Vtv));
2363 expi_vbei = limexp<AdmsFadType>(argi_vbei);
2364 Ifi = (ISatT*(expi_vbei-1.0));
2365 argi_vbci = (Vbci/(NRatT*Vtv));
2366 expi_vbci = limexp<AdmsFadType>(argi_vbci);
2367 Iri = ((ISatT*ISRRatT)*(expi_vbci-1.0));
2368 q1z = ((1.0+(qdbe*IVER))+(qdbc*IVEF));
2369 q1 = ((0.5*((sqrt((((q1z-1.0e-4)*(q1z-1.0e-4))+1.0e-8))+q1z)-1.0e-4))+1.0e-4);
2370 q2 = ((Ifi*IIKF)+(Iri*IIKR));
2379 qb = ((0.5*q1)*(1.0+pow((1.0+(4.0*q2)),(
model_.
NKF))));
2391 expi_vbep = limexp<AdmsFadType>(argi_vbep);
2393 expx_vbci = limexp<AdmsFadType>(argx_vbci);
2396 qbp = (0.5*(1.0+sqrt((1.0+(4.0*q2p)))));
2406 expi_vbei = limexp<AdmsFadType>(argi_vbei);
2408 expn_vbei = limexp<AdmsFadType>(argn_vbei);
2411 argx_vbei = (((-VBBEatT)-Vbei)/(NBBEatT*Vtv));
2412 expx_vbei = limexp<AdmsFadType>(argx_vbei);
2413 Ibe = (((IBEIatT*(expi_vbei-1.0))+(IBENatT*(expn_vbei-1.0)))-((
model_.
IBBE)*(expx_vbei-EBBEatT)));
2417 Ibe = ((IBEIatT*(expi_vbei-1.0))+(IBENatT*(expn_vbei-1.0)));
2427 expi_vbex = limexp<AdmsFadType>(argi_vbex);
2429 expn_vbex = limexp<AdmsFadType>(argn_vbex);
2432 argx_vbex = (((-VBBEatT)-Vbex)/(NBBEatT*Vtv));
2433 expx_vbex = limexp<AdmsFadType>(argx_vbex);
2434 Ibex = (((IBEIatT*(expi_vbex-1.0))+(IBENatT*(expn_vbex-1.0)))-((
model_.
IBBE)*(expx_vbex-EBBEatT)));
2438 Ibex = ((IBEIatT*(expi_vbex-1.0))+(IBENatT*(expn_vbex-1.0)));
2444 expi_vbei = limexp<AdmsFadType>(argi_vbei);
2446 expn_vbei = limexp<AdmsFadType>(argn_vbei);
2449 argx_vbei = (((-VBBEatT)-Vbei)/(NBBEatT*Vtv));
2450 expx_vbei = limexp<AdmsFadType>(argx_vbei);
2451 Ibe = ((
model_.
WBE)*(((IBEIatT*(expi_vbei-1.0))+(IBENatT*(expn_vbei-1.0)))-((
model_.
IBBE)*(expx_vbei-EBBEatT))));
2455 Ibe = ((
model_.
WBE)*((IBEIatT*(expi_vbei-1.0))+(IBENatT*(expn_vbei-1.0))));
2458 expi_vbex = limexp<AdmsFadType>(argi_vbex);
2460 expn_vbex = limexp<AdmsFadType>(argn_vbex);
2463 argx_vbex = (((-VBBEatT)-Vbex)/(NBBEatT*Vtv));
2464 expx_vbex = limexp<AdmsFadType>(argx_vbex);
2465 Ibex = ((1.0-(
model_.
WBE))*(((IBEIatT*(expi_vbex-1.0))+(IBENatT*(expn_vbex-1.0)))-((
model_.
IBBE)*(expx_vbex-EBBEatT))));
2469 Ibex = ((1.0-(
model_.
WBE))*((IBEIatT*(expi_vbex-1.0))+(IBENatT*(expn_vbex-1.0))));
2474 expi_vbci = limexp<AdmsFadType>(argi_vbci);
2476 expn_vbci = limexp<AdmsFadType>(argn_vbci);
2477 Ibcj = ((IBCIatT*(expi_vbci-1.0))+(IBCNatT*(expn_vbci-1.0)));
2481 expi_vbep = limexp<AdmsFadType>(argi_vbep);
2483 expn_vbep = limexp<AdmsFadType>(argn_vbep);
2484 Ibep = ((IBEIPatT*(expi_vbep-1.0))+(IBENPatT*(expn_vbep-1.0)));
2492 vl_vbci = (0.5*(sqrt((((PCatT-Vbci)*(PCatT-Vbci))+0.01))+(PCatT-Vbci)));
2493 avalf_exparg = ((-AVC2atT)*pow(vl_vbci,((
model_.
MC)-1.0)));
2494 avalf = (((
model_.
AVC1)*vl_vbci)*limexp<AdmsFadType>(avalf_exparg));
2495 Igc = (((Itzf-Itzr)-Ibcj)*avalf);
2504 Ircx = (Vrcx/RCXatT);
2510 argi_vbci = (Vbci/Vtv);
2511 expi_vbci = limexp<AdmsFadType>(argi_vbci);
2512 argx_vbcx = (Vbcx/Vtv);
2513 expx_vbcx = limexp<AdmsFadType>(argx_vbcx);
2514 Kbci = sqrt((1.0+(GAMMatT*expi_vbci)));
2515 Kbcx = sqrt((1.0+(GAMMatT*expx_vbcx)));
2518 rKp1 = ((Kbci+1.0)/(Kbcx+1.0));
2519 Iohm = ((Vrci+(Vtv*((Kbci-Kbcx)-log(rKp1))))/RCIatT);
2520 derf = (((IVO*RCIatT)*Iohm)/(1.0+(((0.5*IVO)*IHRCF)*sqrt(((Vrci*Vrci)+0.01)))));
2521 Irci = (Iohm/sqrt((1+(derf*derf))));
2529 Irbx = (Vrbx/RBXatT);
2537 Irbi = ((Vrbi*qb)/RBIatT);
2553 Irbp = ((Vrbp*qbp)/RBPatT);
2559 sgIf = ((Ifi>0.0)?1.0:0.0);
2560 rIf = ((Ifi*sgIf)*IITF);
2561 mIf = (rIf/(rIf+1.0));
2562 tff_exparg = ((Vbci*IVTF)/1.44);
2563 tff = (((
model_.
TF)*(1.0+((
model_.
QTF)*q1)))*(1.0+((((
model_.
XTF)*limexp<AdmsFadType>(tff_exparg))*(slTF+(mIf*mIf)))*sgIf)));
2564 Qbe = (((CJEatT*qdbe)*(
model_.
WBE))+((tff*Ifi)/qb));
2565 Qbex = ((CJEatT*qdbex)*(1.0-(
model_.
WBE)));
2568 Qbep = ((CJEPatT*qdbep)+((
model_.
TR)*Ifp));
2571 Ith = (-(((((((((((Ibe*Vbei)+(Ibc*Vbci))+((Itzf-Itzr)*Vcei))+(Ibex*Vbex))+(Ibep*Vbep))+(Ircx*Vrcx))+(Irci*Vrci))+(Irbx*Vrbx))+(Irbi*Vrbi))+(Ire*Vre))+(Irbp*Vrbp)));
2807 contribTemp= (Qcth);
2815 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2817 Xyce::dout() <<
" probeVars[admsProbeID_V_ci_ei] = "
2819 Xyce::dout() <<
" probeVars[admsProbeID_V_b_c] = "
2821 Xyce::dout() <<
" probeVars[admsProbeID_V_bp_cx] = "
2823 Xyce::dout() <<
" probeVars[admsProbeID_V_e_ei] = "
2825 Xyce::dout() <<
" probeVars[admsProbeID_V_b_bx] = "
2827 Xyce::dout() <<
" probeVars[admsProbeID_V_bx_bi] = "
2829 Xyce::dout() <<
" probeVars[admsProbeID_V_cx_ci] = "
2831 Xyce::dout() <<
" probeVars[admsProbeID_V_c_cx] = "
2833 Xyce::dout() <<
" probeVars[admsProbeID_V_b_e] = "
2835 Xyce::dout() <<
" probeVars[admsProbeID_V_dt_GND] = "
2837 Xyce::dout() <<
" probeVars[admsProbeID_V_bx_bp] = "
2839 Xyce::dout() <<
" probeVars[admsProbeID_V_bi_cx] = "
2841 Xyce::dout() <<
" probeVars[admsProbeID_V_bx_ei] = "
2843 Xyce::dout() <<
" probeVars[admsProbeID_V_bi_ci] = "
2845 Xyce::dout() <<
" probeVars[admsProbeID_V_bi_ei] = "
2847 Xyce::dout() <<
" staticContributions[admsNodeID_c] = "
2849 Xyce::dout() <<
" staticContributions[admsNodeID_c].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_c].dx(admsProbeID_V_ci_ei) << std::endl;
2851 Xyce::dout() <<
" staticContributions[admsNodeID_c].dx(admsProbeID_V_bp_cx) = " <<
staticContributions[
admsNodeID_c].dx(admsProbeID_V_bp_cx) << std::endl;
2852 Xyce::dout() <<
" staticContributions[admsNodeID_c].dx(admsProbeID_V_e_ei) = " <<
staticContributions[
admsNodeID_c].dx(admsProbeID_V_e_ei) << std::endl;
2853 Xyce::dout() <<
" staticContributions[admsNodeID_c].dx(admsProbeID_V_b_bx) = " <<
staticContributions[
admsNodeID_c].dx(admsProbeID_V_b_bx) << std::endl;
2854 Xyce::dout() <<
" staticContributions[admsNodeID_c].dx(admsProbeID_V_bx_bi) = " <<
staticContributions[
admsNodeID_c].dx(admsProbeID_V_bx_bi) << std::endl;
2855 Xyce::dout() <<
" staticContributions[admsNodeID_c].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_c].dx(admsProbeID_V_cx_ci) << std::endl;
2856 Xyce::dout() <<
" staticContributions[admsNodeID_c].dx(admsProbeID_V_c_cx) = " <<
staticContributions[
admsNodeID_c].dx(admsProbeID_V_c_cx) << std::endl;
2864 Xyce::dout() <<
" dynamicContributions[admsNodeID_c] = "
2866 Xyce::dout() <<
" dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ci_ei) = " <<
dynamicContributions[
admsNodeID_c].dx(admsProbeID_V_ci_ei) << std::endl;
2868 Xyce::dout() <<
" dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bp_cx) = " <<
dynamicContributions[
admsNodeID_c].dx(admsProbeID_V_bp_cx) << std::endl;
2871 Xyce::dout() <<
" dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bx_bi) = " <<
dynamicContributions[
admsNodeID_c].dx(admsProbeID_V_bx_bi) << std::endl;
2872 Xyce::dout() <<
" dynamicContributions[admsNodeID_c].dx(admsProbeID_V_cx_ci) = " <<
dynamicContributions[
admsNodeID_c].dx(admsProbeID_V_cx_ci) << std::endl;
2881 Xyce::dout() <<
" Jdxp_static[admsNodeID_c] = "
2883 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_c] = "
2885 Xyce::dout() <<
" staticContributions[admsNodeID_b] = "
2887 Xyce::dout() <<
" staticContributions[admsNodeID_b].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_b].dx(admsProbeID_V_ci_ei) << std::endl;
2889 Xyce::dout() <<
" staticContributions[admsNodeID_b].dx(admsProbeID_V_bp_cx) = " <<
staticContributions[
admsNodeID_b].dx(admsProbeID_V_bp_cx) << std::endl;
2890 Xyce::dout() <<
" staticContributions[admsNodeID_b].dx(admsProbeID_V_e_ei) = " <<
staticContributions[
admsNodeID_b].dx(admsProbeID_V_e_ei) << std::endl;
2891 Xyce::dout() <<
" staticContributions[admsNodeID_b].dx(admsProbeID_V_b_bx) = " <<
staticContributions[
admsNodeID_b].dx(admsProbeID_V_b_bx) << std::endl;
2892 Xyce::dout() <<
" staticContributions[admsNodeID_b].dx(admsProbeID_V_bx_bi) = " <<
staticContributions[
admsNodeID_b].dx(admsProbeID_V_bx_bi) << std::endl;
2893 Xyce::dout() <<
" staticContributions[admsNodeID_b].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_b].dx(admsProbeID_V_cx_ci) << std::endl;
2894 Xyce::dout() <<
" staticContributions[admsNodeID_b].dx(admsProbeID_V_c_cx) = " <<
staticContributions[
admsNodeID_b].dx(admsProbeID_V_c_cx) << std::endl;
2902 Xyce::dout() <<
" dynamicContributions[admsNodeID_b] = "
2904 Xyce::dout() <<
" dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ci_ei) = " <<
dynamicContributions[
admsNodeID_b].dx(admsProbeID_V_ci_ei) << std::endl;
2906 Xyce::dout() <<
" dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bp_cx) = " <<
dynamicContributions[
admsNodeID_b].dx(admsProbeID_V_bp_cx) << std::endl;
2909 Xyce::dout() <<
" dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bx_bi) = " <<
dynamicContributions[
admsNodeID_b].dx(admsProbeID_V_bx_bi) << std::endl;
2910 Xyce::dout() <<
" dynamicContributions[admsNodeID_b].dx(admsProbeID_V_cx_ci) = " <<
dynamicContributions[
admsNodeID_b].dx(admsProbeID_V_cx_ci) << std::endl;
2919 Xyce::dout() <<
" Jdxp_static[admsNodeID_b] = "
2921 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_b] = "
2923 Xyce::dout() <<
" staticContributions[admsNodeID_e] = "
2925 Xyce::dout() <<
" staticContributions[admsNodeID_e].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_e].dx(admsProbeID_V_ci_ei) << std::endl;
2927 Xyce::dout() <<
" staticContributions[admsNodeID_e].dx(admsProbeID_V_bp_cx) = " <<
staticContributions[
admsNodeID_e].dx(admsProbeID_V_bp_cx) << std::endl;
2928 Xyce::dout() <<
" staticContributions[admsNodeID_e].dx(admsProbeID_V_e_ei) = " <<
staticContributions[
admsNodeID_e].dx(admsProbeID_V_e_ei) << std::endl;
2929 Xyce::dout() <<
" staticContributions[admsNodeID_e].dx(admsProbeID_V_b_bx) = " <<
staticContributions[
admsNodeID_e].dx(admsProbeID_V_b_bx) << std::endl;
2930 Xyce::dout() <<
" staticContributions[admsNodeID_e].dx(admsProbeID_V_bx_bi) = " <<
staticContributions[
admsNodeID_e].dx(admsProbeID_V_bx_bi) << std::endl;
2931 Xyce::dout() <<
" staticContributions[admsNodeID_e].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_e].dx(admsProbeID_V_cx_ci) << std::endl;
2932 Xyce::dout() <<
" staticContributions[admsNodeID_e].dx(admsProbeID_V_c_cx) = " <<
staticContributions[
admsNodeID_e].dx(admsProbeID_V_c_cx) << std::endl;
2940 Xyce::dout() <<
" dynamicContributions[admsNodeID_e] = "
2942 Xyce::dout() <<
" dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ci_ei) = " <<
dynamicContributions[
admsNodeID_e].dx(admsProbeID_V_ci_ei) << std::endl;
2944 Xyce::dout() <<
" dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bp_cx) = " <<
dynamicContributions[
admsNodeID_e].dx(admsProbeID_V_bp_cx) << std::endl;
2947 Xyce::dout() <<
" dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bx_bi) = " <<
dynamicContributions[
admsNodeID_e].dx(admsProbeID_V_bx_bi) << std::endl;
2948 Xyce::dout() <<
" dynamicContributions[admsNodeID_e].dx(admsProbeID_V_cx_ci) = " <<
dynamicContributions[
admsNodeID_e].dx(admsProbeID_V_cx_ci) << std::endl;
2957 Xyce::dout() <<
" Jdxp_static[admsNodeID_e] = "
2959 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_e] = "
2961 Xyce::dout() <<
" staticContributions[admsNodeID_dt] = "
2963 Xyce::dout() <<
" staticContributions[admsNodeID_dt].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_dt].dx(admsProbeID_V_ci_ei) << std::endl;
2965 Xyce::dout() <<
" staticContributions[admsNodeID_dt].dx(admsProbeID_V_bp_cx) = " <<
staticContributions[
admsNodeID_dt].dx(admsProbeID_V_bp_cx) << std::endl;
2968 Xyce::dout() <<
" staticContributions[admsNodeID_dt].dx(admsProbeID_V_bx_bi) = " <<
staticContributions[
admsNodeID_dt].dx(admsProbeID_V_bx_bi) << std::endl;
2969 Xyce::dout() <<
" staticContributions[admsNodeID_dt].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_dt].dx(admsProbeID_V_cx_ci) << std::endl;
2978 Xyce::dout() <<
" dynamicContributions[admsNodeID_dt] = "
2995 Xyce::dout() <<
" Jdxp_static[admsNodeID_dt] = "
2997 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_dt] = "
2999 Xyce::dout() <<
" staticContributions[admsNodeID_cx] = "
3001 Xyce::dout() <<
" staticContributions[admsNodeID_cx].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_cx].dx(admsProbeID_V_ci_ei) << std::endl;
3003 Xyce::dout() <<
" staticContributions[admsNodeID_cx].dx(admsProbeID_V_bp_cx) = " <<
staticContributions[
admsNodeID_cx].dx(admsProbeID_V_bp_cx) << std::endl;
3006 Xyce::dout() <<
" staticContributions[admsNodeID_cx].dx(admsProbeID_V_bx_bi) = " <<
staticContributions[
admsNodeID_cx].dx(admsProbeID_V_bx_bi) << std::endl;
3007 Xyce::dout() <<
" staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_cx].dx(admsProbeID_V_cx_ci) << std::endl;
3016 Xyce::dout() <<
" dynamicContributions[admsNodeID_cx] = "
3033 Xyce::dout() <<
" Jdxp_static[admsNodeID_cx] = "
3035 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_cx] = "
3037 Xyce::dout() <<
" staticContributions[admsNodeID_ci] = "
3039 Xyce::dout() <<
" staticContributions[admsNodeID_ci].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_ci].dx(admsProbeID_V_ci_ei) << std::endl;
3041 Xyce::dout() <<
" staticContributions[admsNodeID_ci].dx(admsProbeID_V_bp_cx) = " <<
staticContributions[
admsNodeID_ci].dx(admsProbeID_V_bp_cx) << std::endl;
3044 Xyce::dout() <<
" staticContributions[admsNodeID_ci].dx(admsProbeID_V_bx_bi) = " <<
staticContributions[
admsNodeID_ci].dx(admsProbeID_V_bx_bi) << std::endl;
3045 Xyce::dout() <<
" staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_ci].dx(admsProbeID_V_cx_ci) << std::endl;
3054 Xyce::dout() <<
" dynamicContributions[admsNodeID_ci] = "
3071 Xyce::dout() <<
" Jdxp_static[admsNodeID_ci] = "
3073 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_ci] = "
3075 Xyce::dout() <<
" staticContributions[admsNodeID_bx] = "
3077 Xyce::dout() <<
" staticContributions[admsNodeID_bx].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_bx].dx(admsProbeID_V_ci_ei) << std::endl;
3079 Xyce::dout() <<
" staticContributions[admsNodeID_bx].dx(admsProbeID_V_bp_cx) = " <<
staticContributions[
admsNodeID_bx].dx(admsProbeID_V_bp_cx) << std::endl;
3082 Xyce::dout() <<
" staticContributions[admsNodeID_bx].dx(admsProbeID_V_bx_bi) = " <<
staticContributions[
admsNodeID_bx].dx(admsProbeID_V_bx_bi) << std::endl;
3083 Xyce::dout() <<
" staticContributions[admsNodeID_bx].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_bx].dx(admsProbeID_V_cx_ci) << std::endl;
3092 Xyce::dout() <<
" dynamicContributions[admsNodeID_bx] = "
3109 Xyce::dout() <<
" Jdxp_static[admsNodeID_bx] = "
3111 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_bx] = "
3113 Xyce::dout() <<
" staticContributions[admsNodeID_bi] = "
3115 Xyce::dout() <<
" staticContributions[admsNodeID_bi].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_bi].dx(admsProbeID_V_ci_ei) << std::endl;
3117 Xyce::dout() <<
" staticContributions[admsNodeID_bi].dx(admsProbeID_V_bp_cx) = " <<
staticContributions[
admsNodeID_bi].dx(admsProbeID_V_bp_cx) << std::endl;
3120 Xyce::dout() <<
" staticContributions[admsNodeID_bi].dx(admsProbeID_V_bx_bi) = " <<
staticContributions[
admsNodeID_bi].dx(admsProbeID_V_bx_bi) << std::endl;
3121 Xyce::dout() <<
" staticContributions[admsNodeID_bi].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_bi].dx(admsProbeID_V_cx_ci) << std::endl;
3130 Xyce::dout() <<
" dynamicContributions[admsNodeID_bi] = "
3147 Xyce::dout() <<
" Jdxp_static[admsNodeID_bi] = "
3149 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_bi] = "
3151 Xyce::dout() <<
" staticContributions[admsNodeID_ei] = "
3153 Xyce::dout() <<
" staticContributions[admsNodeID_ei].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_ei].dx(admsProbeID_V_ci_ei) << std::endl;
3155 Xyce::dout() <<
" staticContributions[admsNodeID_ei].dx(admsProbeID_V_bp_cx) = " <<
staticContributions[
admsNodeID_ei].dx(admsProbeID_V_bp_cx) << std::endl;
3158 Xyce::dout() <<
" staticContributions[admsNodeID_ei].dx(admsProbeID_V_bx_bi) = " <<
staticContributions[
admsNodeID_ei].dx(admsProbeID_V_bx_bi) << std::endl;
3159 Xyce::dout() <<
" staticContributions[admsNodeID_ei].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_ei].dx(admsProbeID_V_cx_ci) << std::endl;
3168 Xyce::dout() <<
" dynamicContributions[admsNodeID_ei] = "
3185 Xyce::dout() <<
" Jdxp_static[admsNodeID_ei] = "
3187 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_ei] = "
3189 Xyce::dout() <<
" staticContributions[admsNodeID_bp] = "
3191 Xyce::dout() <<
" staticContributions[admsNodeID_bp].dx(admsProbeID_V_ci_ei) = " <<
staticContributions[
admsNodeID_bp].dx(admsProbeID_V_ci_ei) << std::endl;
3193 Xyce::dout() <<
" staticContributions[admsNodeID_bp].dx(admsProbeID_V_bp_cx) = " <<
staticContributions[
admsNodeID_bp].dx(admsProbeID_V_bp_cx) << std::endl;
3196 Xyce::dout() <<
" staticContributions[admsNodeID_bp].dx(admsProbeID_V_bx_bi) = " <<
staticContributions[
admsNodeID_bp].dx(admsProbeID_V_bx_bi) << std::endl;
3197 Xyce::dout() <<
" staticContributions[admsNodeID_bp].dx(admsProbeID_V_cx_ci) = " <<
staticContributions[
admsNodeID_bp].dx(admsProbeID_V_cx_ci) << std::endl;
3206 Xyce::dout() <<
" dynamicContributions[admsNodeID_bp] = "
3223 Xyce::dout() <<
" Jdxp_static[admsNodeID_bp] = "
3225 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_bp] = "
3230 Xyce::dout() <<
"This step was limited by this device." << std::endl;
3231 Xyce::dout() <<
" Vbei_limited = " << Vbei_limited <<
" _orig = " << Vbei_orig <<
" diff = " << Vbei_limited - Vbei_orig << std::endl;
3232 Xyce::dout() <<
" Vbci_limited = " << Vbci_limited <<
" _orig = " << Vbci_orig <<
" diff = " << Vbci_limited - Vbci_orig << std::endl;
3233 Xyce::dout() <<
" Vbex_limited = " << Vbex_limited <<
" _orig = " << Vbex_orig <<
" diff = " << Vbex_limited - Vbex_orig << std::endl;
3234 Xyce::dout() <<
" Vbcx_limited = " << Vbcx_limited <<
" _orig = " << Vbcx_orig <<
" diff = " << Vbcx_limited - Vbcx_orig << std::endl;
3235 Xyce::dout() <<
" Vbep_limited = " << Vbep_limited <<
" _orig = " << Vbep_orig <<
" diff = " << Vbep_limited - Vbep_orig << std::endl;
3236 Xyce::dout() <<
" Vrth_limited = " << Vrth_limited <<
" _orig = " << Vrth_orig <<
" diff = " << Vrth_limited - Vrth_orig << std::endl;
3253 bool bsuccess =
true;
3256 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3258 Xyce::dout() << subsection_divider << std::endl;
3259 Xyce::dout() <<
"ADMSvbic::Instance::loadDAEdFdx (" <<
getName() <<
"):" << std::endl;
3264 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3271 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3278 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3285 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3292 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3299 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3306 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3313 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3320 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3327 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3334 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3341 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3348 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3355 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3362 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3369 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3376 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3383 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3390 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3397 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3404 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3411 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3418 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3425 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3432 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3439 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3446 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3453 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3460 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3467 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3474 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3481 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3488 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3495 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3502 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3509 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3516 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3523 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3530 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3537 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3544 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3551 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3558 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3565 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3572 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3579 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3586 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3593 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3600 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3607 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3614 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3621 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3628 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3635 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3642 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3662 bool bsuccess =
true;
3665 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3667 Xyce::dout() << subsection_divider << std::endl;
3668 Xyce::dout() <<
"ADMSvbic::Instance::loadDAEdQdx (" <<
getName() <<
"):" << std::endl;
3673 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3680 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3687 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3694 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3701 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3708 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3715 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3722 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3729 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3736 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3743 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3750 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3757 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3764 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3771 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3778 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3785 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3792 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3799 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3806 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3813 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3820 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3827 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3834 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3841 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3848 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3855 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3862 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3869 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3876 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3883 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3890 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3897 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3904 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3911 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
3955 if ( (!((
RCX >=0.0))) )
3957 UserError0(*
this) <<
"ADMSvbic: Parameter RCX value " <<
RCX <<
" out of range [ 0.0, (+inf) [";
3961 if ( (!((
RCI >=0.0))) )
3963 UserError0(*
this) <<
"ADMSvbic: Parameter RCI value " <<
RCI <<
" out of range [ 0.0, (+inf) [";
3967 if ( (!((
VO >=0.0))) )
3969 UserError0(*
this) <<
"ADMSvbic: Parameter VO value " <<
VO <<
" out of range [ 0.0, (+inf) [";
3973 if ( (!((
GAMM >=0.0))) )
3975 UserError0(*
this) <<
"ADMSvbic: Parameter GAMM value " <<
GAMM <<
" out of range [ 0.0, (+inf) [";
3979 if ( (!((
HRCF >=0.0))) )
3981 UserError0(*
this) <<
"ADMSvbic: Parameter HRCF value " <<
HRCF <<
" out of range [ 0.0, (+inf) [";
3985 if ( (!((
RBX >=0.0))) )
3987 UserError0(*
this) <<
"ADMSvbic: Parameter RBX value " <<
RBX <<
" out of range [ 0.0, (+inf) [";
3991 if ( (!((
RBI >=0.0))) )
3993 UserError0(*
this) <<
"ADMSvbic: Parameter RBI value " <<
RBI <<
" out of range [ 0.0, (+inf) [";
3997 if ( (!((
RE >=0.0))) )
3999 UserError0(*
this) <<
"ADMSvbic: Parameter RE value " <<
RE <<
" out of range [ 0.0, (+inf) [";
4003 if ( (!((
RS >=0.0))) )
4005 UserError0(*
this) <<
"ADMSvbic: Parameter RS value " <<
RS <<
" out of range [ 0.0, (+inf) [";
4009 if ( (!((
RBP >=0.0))) )
4011 UserError0(*
this) <<
"ADMSvbic: Parameter RBP value " <<
RBP <<
" out of range [ 0.0, (+inf) [";
4015 if ( (!((
IS >0.0))) )
4017 UserError0(*
this) <<
"ADMSvbic: Parameter IS value " <<
IS <<
" out of range ] 0.0, (+inf) [";
4021 if ( (!((
NF >0.0))) )
4023 UserError0(*
this) <<
"ADMSvbic: Parameter NF value " <<
NF <<
" out of range ] 0.0, (+inf) [";
4027 if ( (!((
NR >0.0))) )
4029 UserError0(*
this) <<
"ADMSvbic: Parameter NR value " <<
NR <<
" out of range ] 0.0, (+inf) [";
4033 if ( (!((
FC >=0.0 &&
FC <1.0 ))) )
4035 UserError0(*
this) <<
"ADMSvbic: Parameter FC value " <<
FC <<
" out of range [ 0.0, 1.0 [";
4039 if ( (!((
CBEO >=0.0))) )
4041 UserError0(*
this) <<
"ADMSvbic: Parameter CBEO value " <<
CBEO <<
" out of range [ 0.0, (+inf) [";
4045 if ( (!((
CJE >=0.0))) )
4047 UserError0(*
this) <<
"ADMSvbic: Parameter CJE value " <<
CJE <<
" out of range [ 0.0, (+inf) [";
4051 if ( (!((
PE >0.0))) )
4053 UserError0(*
this) <<
"ADMSvbic: Parameter PE value " <<
PE <<
" out of range ] 0.0, (+inf) [";
4057 if ( (!((
ME >0.0 &&
ME <=1.0 ))) )
4059 UserError0(*
this) <<
"ADMSvbic: Parameter ME value " <<
ME <<
" out of range ] 0.0, 1.0 ]";
4063 if ( (!((
CBCO >=0.0))) )
4065 UserError0(*
this) <<
"ADMSvbic: Parameter CBCO value " <<
CBCO <<
" out of range [ 0.0, (+inf) [";
4069 if ( (!((
CJC >=0.0))) )
4071 UserError0(*
this) <<
"ADMSvbic: Parameter CJC value " <<
CJC <<
" out of range [ 0.0, (+inf) [";
4075 if ( (!((
QCO >=0.0))) )
4077 UserError0(*
this) <<
"ADMSvbic: Parameter QCO value " <<
QCO <<
" out of range [ 0.0, (+inf) [";
4081 if ( (!((
CJEP >=0.0))) )
4083 UserError0(*
this) <<
"ADMSvbic: Parameter CJEP value " <<
CJEP <<
" out of range [ 0.0, (+inf) [";
4087 if ( (!((
PC >0.0))) )
4089 UserError0(*
this) <<
"ADMSvbic: Parameter PC value " <<
PC <<
" out of range ] 0.0, (+inf) [";
4093 if ( (!((
MC >0.0 &&
MC <=1.0 ))) )
4095 UserError0(*
this) <<
"ADMSvbic: Parameter MC value " <<
MC <<
" out of range ] 0.0, 1.0 ]";
4099 if ( (!((
CJCP >=0.0))) )
4101 UserError0(*
this) <<
"ADMSvbic: Parameter CJCP value " <<
CJCP <<
" out of range [ 0.0, (+inf) [";
4105 if ( (!((
PS >0.0))) )
4107 UserError0(*
this) <<
"ADMSvbic: Parameter PS value " <<
PS <<
" out of range ] 0.0, (+inf) [";
4111 if ( (!((
MS >0.0 &&
MS <=1.0 ))) )
4113 UserError0(*
this) <<
"ADMSvbic: Parameter MS value " <<
MS <<
" out of range ] 0.0, 1.0 ]";
4117 if ( (!((
IBEI >0.0))) )
4119 UserError0(*
this) <<
"ADMSvbic: Parameter IBEI value " <<
IBEI <<
" out of range ] 0.0, (+inf) [";
4123 if ( (!((
WBE >=0.0 &&
WBE <=1.0 ))) )
4125 UserError0(*
this) <<
"ADMSvbic: Parameter WBE value " <<
WBE <<
" out of range [ 0.0, 1.0 ]";
4129 if ( (!((
NEI >0.0))) )
4131 UserError0(*
this) <<
"ADMSvbic: Parameter NEI value " <<
NEI <<
" out of range ] 0.0, (+inf) [";
4135 if ( (!((
IBEN >=0.0))) )
4137 UserError0(*
this) <<
"ADMSvbic: Parameter IBEN value " <<
IBEN <<
" out of range [ 0.0, (+inf) [";
4141 if ( (!((
NEN >0.0))) )
4143 UserError0(*
this) <<
"ADMSvbic: Parameter NEN value " <<
NEN <<
" out of range ] 0.0, (+inf) [";
4147 if ( (!((
IBCI >0.0))) )
4149 UserError0(*
this) <<
"ADMSvbic: Parameter IBCI value " <<
IBCI <<
" out of range ] 0.0, (+inf) [";
4153 if ( (!((
NCI >0.0))) )
4155 UserError0(*
this) <<
"ADMSvbic: Parameter NCI value " <<
NCI <<
" out of range ] 0.0, (+inf) [";
4159 if ( (!((
IBCN >=0.0))) )
4161 UserError0(*
this) <<
"ADMSvbic: Parameter IBCN value " <<
IBCN <<
" out of range [ 0.0, (+inf) [";
4165 if ( (!((
NCN >0.0))) )
4167 UserError0(*
this) <<
"ADMSvbic: Parameter NCN value " <<
NCN <<
" out of range ] 0.0, (+inf) [";
4171 if ( (!((
AVC1 >=0.0))) )
4173 UserError0(*
this) <<
"ADMSvbic: Parameter AVC1 value " <<
AVC1 <<
" out of range [ 0.0, (+inf) [";
4177 if ( (!((
AVC2 >=0.0))) )
4179 UserError0(*
this) <<
"ADMSvbic: Parameter AVC2 value " <<
AVC2 <<
" out of range [ 0.0, (+inf) [";
4183 if ( (!((
ISP >=0.0))) )
4185 UserError0(*
this) <<
"ADMSvbic: Parameter ISP value " <<
ISP <<
" out of range [ 0.0, (+inf) [";
4189 if ( (!((
WSP >=0.0 &&
WSP <=1.0 ))) )
4191 UserError0(*
this) <<
"ADMSvbic: Parameter WSP value " <<
WSP <<
" out of range [ 0.0, 1.0 ]";
4195 if ( (!((
NFP >0.0))) )
4197 UserError0(*
this) <<
"ADMSvbic: Parameter NFP value " <<
NFP <<
" out of range ] 0.0, (+inf) [";
4201 if ( (!((
IBEIP >=0.0))) )
4203 UserError0(*
this) <<
"ADMSvbic: Parameter IBEIP value " <<
IBEIP <<
" out of range [ 0.0, (+inf) [";
4207 if ( (!((
IBENP >=0.0))) )
4209 UserError0(*
this) <<
"ADMSvbic: Parameter IBENP value " <<
IBENP <<
" out of range [ 0.0, (+inf) [";
4213 if ( (!((
IBCIP >=0.0))) )
4215 UserError0(*
this) <<
"ADMSvbic: Parameter IBCIP value " <<
IBCIP <<
" out of range [ 0.0, (+inf) [";
4219 if ( (!((
NCIP >0.0))) )
4221 UserError0(*
this) <<
"ADMSvbic: Parameter NCIP value " <<
NCIP <<
" out of range ] 0.0, (+inf) [";
4225 if ( (!((
IBCNP >=0.0))) )
4227 UserError0(*
this) <<
"ADMSvbic: Parameter IBCNP value " <<
IBCNP <<
" out of range [ 0.0, (+inf) [";
4231 if ( (!((
NCNP >0.0))) )
4233 UserError0(*
this) <<
"ADMSvbic: Parameter NCNP value " <<
NCNP <<
" out of range ] 0.0, (+inf) [";
4237 if ( (!((
VEF >=0.0))) )
4239 UserError0(*
this) <<
"ADMSvbic: Parameter VEF value " <<
VEF <<
" out of range [ 0.0, (+inf) [";
4243 if ( (!((
VER >=0.0))) )
4245 UserError0(*
this) <<
"ADMSvbic: Parameter VER value " <<
VER <<
" out of range [ 0.0, (+inf) [";
4249 if ( (!((
IKF >=0.0))) )
4251 UserError0(*
this) <<
"ADMSvbic: Parameter IKF value " <<
IKF <<
" out of range [ 0.0, (+inf) [";
4255 if ( (!((
IKR >=0.0))) )
4257 UserError0(*
this) <<
"ADMSvbic: Parameter IKR value " <<
IKR <<
" out of range [ 0.0, (+inf) [";
4261 if ( (!((
IKP >=0.0))) )
4263 UserError0(*
this) <<
"ADMSvbic: Parameter IKP value " <<
IKP <<
" out of range [ 0.0, (+inf) [";
4267 if ( (!((
TF >=0.0))) )
4269 UserError0(*
this) <<
"ADMSvbic: Parameter TF value " <<
TF <<
" out of range [ 0.0, (+inf) [";
4273 if ( (!((
QTF >=0.0))) )
4275 UserError0(*
this) <<
"ADMSvbic: Parameter QTF value " <<
QTF <<
" out of range [ 0.0, (+inf) [";
4279 if ( (!((
XTF >=0.0))) )
4281 UserError0(*
this) <<
"ADMSvbic: Parameter XTF value " <<
XTF <<
" out of range [ 0.0, (+inf) [";
4285 if ( (!((
VTF >=0.0))) )
4287 UserError0(*
this) <<
"ADMSvbic: Parameter VTF value " <<
VTF <<
" out of range [ 0.0, (+inf) [";
4291 if ( (!((
ITF >=0.0))) )
4293 UserError0(*
this) <<
"ADMSvbic: Parameter ITF value " <<
ITF <<
" out of range [ 0.0, (+inf) [";
4297 if ( (!((
TR >=0.0))) )
4299 UserError0(*
this) <<
"ADMSvbic: Parameter TR value " <<
TR <<
" out of range [ 0.0, (+inf) [";
4303 if ( (!((
TD >=0.0))) )
4305 UserError0(*
this) <<
"ADMSvbic: Parameter TD value " <<
TD <<
" out of range [ 0.0, (+inf) [";
4309 if ( (!((
KFN >=0.0))) )
4311 UserError0(*
this) <<
"ADMSvbic: Parameter KFN value " <<
KFN <<
" out of range [ 0.0, (+inf) [";
4315 if ( (!((
AFN >0.0))) )
4317 UserError0(*
this) <<
"ADMSvbic: Parameter AFN value " <<
AFN <<
" out of range ] 0.0, (+inf) [";
4321 if ( (!((
BFN >0.0))) )
4323 UserError0(*
this) <<
"ADMSvbic: Parameter BFN value " <<
BFN <<
" out of range ] 0.0, (+inf) [";
4327 if ( (!((
RTH >=0.0))) )
4329 UserError0(*
this) <<
"ADMSvbic: Parameter RTH value " <<
RTH <<
" out of range [ 0.0, (+inf) [";
4333 if ( (!((
CTH >=0.0))) )
4335 UserError0(*
this) <<
"ADMSvbic: Parameter CTH value " <<
CTH <<
" out of range [ 0.0, (+inf) [";
4339 if ( (!((
VRT >=0.0))) )
4341 UserError0(*
this) <<
"ADMSvbic: Parameter VRT value " <<
VRT <<
" out of range [ 0.0, (+inf) [";
4345 if ( (!((
ART >0.0))) )
4347 UserError0(*
this) <<
"ADMSvbic: Parameter ART value " <<
ART <<
" out of range ] 0.0, (+inf) [";
4351 if ( (!((
CCSO >=0.0))) )
4353 UserError0(*
this) <<
"ADMSvbic: Parameter CCSO value " <<
CCSO <<
" out of range [ 0.0, (+inf) [";
4357 if ( (!((
NKF >0.0))) )
4359 UserError0(*
this) <<
"ADMSvbic: Parameter NKF value " <<
NKF <<
" out of range ] 0.0, (+inf) [";
4363 if ( (!((
ISRR >0.0))) )
4365 UserError0(*
this) <<
"ADMSvbic: Parameter ISRR value " <<
ISRR <<
" out of range ] 0.0, (+inf) [";
4369 if ( (!((
NBBE >0.0))) )
4371 UserError0(*
this) <<
"ADMSvbic: Parameter NBBE value " <<
NBBE <<
" out of range ] 0.0, (+inf) [";
4377 UserError0(*
this) <<
"ADMSvbic: Parameter dtype value " <<
dtype <<
" out of range [ (-1), 1 ] or in excluded range [ 0, 0 ]";
4398 std::vector<Instance*>::iterator iter;
4402 for (iter=first; iter!=last; ++iter)
4404 (*iter)->processParams();
4422 :
DeviceModel(model_block, configuration.getModelParameters(), factory_block),
4544 if (!
given(
"XYCEADMSMODTEMP"))
4575 std::vector<Instance*>::iterator iterI;
4580 for (iterI = firstI; iterI != lastI; ++iterI)
4596 std::vector<Instance*>::const_iterator iter;
4602 os <<
" name model name Parameters" << std::endl;
4603 for (i=0, iter=first; iter!=last; ++iter, ++i)
4605 os <<
" " << i <<
": " << (*iter)->getName() <<
" ";
4609 os <<
"DTEMP = " << (*iter)->DTEMP << std::endl;
4610 os <<
"M = " << (*iter)->M << std::endl;
4635 for (std::vector<Instance *>::const_iterator it = instanceContainer.begin(); it != instanceContainer.end(); ++it)
4647 .registerDevice(
"q", 10)
4648 .registerModelType(
"npn", 10)
4649 .registerModelType(
"pnp", 10);
4666 bool instancePar_given_DTEMP,
4669 bool instancePar_given_M,
4673 bool modelPar_given_TNOM,
4675 bool modelPar_given_RCX,
4677 bool modelPar_given_RCI,
4679 bool modelPar_given_VO,
4681 bool modelPar_given_GAMM,
4683 bool modelPar_given_HRCF,
4685 bool modelPar_given_RBX,
4687 bool modelPar_given_RBI,
4689 bool modelPar_given_RE,
4691 bool modelPar_given_RS,
4693 bool modelPar_given_RBP,
4695 bool modelPar_given_IS,
4697 bool modelPar_given_NF,
4699 bool modelPar_given_NR,
4701 bool modelPar_given_FC,
4703 bool modelPar_given_CBEO,
4705 bool modelPar_given_CJE,
4707 bool modelPar_given_PE,
4709 bool modelPar_given_ME,
4711 bool modelPar_given_AJE,
4713 bool modelPar_given_CBCO,
4715 bool modelPar_given_CJC,
4717 bool modelPar_given_QCO,
4719 bool modelPar_given_CJEP,
4721 bool modelPar_given_PC,
4723 bool modelPar_given_MC,
4725 bool modelPar_given_AJC,
4727 bool modelPar_given_CJCP,
4729 bool modelPar_given_PS,
4731 bool modelPar_given_MS,
4733 bool modelPar_given_AJS,
4735 bool modelPar_given_IBEI,
4737 bool modelPar_given_WBE,
4739 bool modelPar_given_NEI,
4741 bool modelPar_given_IBEN,
4743 bool modelPar_given_NEN,
4745 bool modelPar_given_IBCI,
4747 bool modelPar_given_NCI,
4749 bool modelPar_given_IBCN,
4751 bool modelPar_given_NCN,
4753 bool modelPar_given_AVC1,
4755 bool modelPar_given_AVC2,
4757 bool modelPar_given_ISP,
4759 bool modelPar_given_WSP,
4761 bool modelPar_given_NFP,
4763 bool modelPar_given_IBEIP,
4765 bool modelPar_given_IBENP,
4767 bool modelPar_given_IBCIP,
4769 bool modelPar_given_NCIP,
4771 bool modelPar_given_IBCNP,
4773 bool modelPar_given_NCNP,
4775 bool modelPar_given_VEF,
4777 bool modelPar_given_VER,
4779 bool modelPar_given_IKF,
4781 bool modelPar_given_IKR,
4783 bool modelPar_given_IKP,
4785 bool modelPar_given_TF,
4787 bool modelPar_given_QTF,
4789 bool modelPar_given_XTF,
4791 bool modelPar_given_VTF,
4793 bool modelPar_given_ITF,
4795 bool modelPar_given_TR,
4797 bool modelPar_given_TD,
4799 bool modelPar_given_KFN,
4801 bool modelPar_given_AFN,
4803 bool modelPar_given_BFN,
4805 bool modelPar_given_XRE,
4807 bool modelPar_given_XRBI,
4809 bool modelPar_given_XRCI,
4811 bool modelPar_given_XRS,
4813 bool modelPar_given_XVO,
4815 bool modelPar_given_EA,
4817 bool modelPar_given_EAIE,
4819 bool modelPar_given_EAIC,
4821 bool modelPar_given_EAIS,
4823 bool modelPar_given_EANE,
4825 bool modelPar_given_EANC,
4827 bool modelPar_given_EANS,
4829 bool modelPar_given_XIS,
4831 bool modelPar_given_XII,
4833 bool modelPar_given_XIN,
4835 bool modelPar_given_TNF,
4837 bool modelPar_given_TAVC,
4839 bool modelPar_given_RTH,
4841 bool modelPar_given_CTH,
4843 bool modelPar_given_VRT,
4845 bool modelPar_given_ART,
4847 bool modelPar_given_CCSO,
4849 bool modelPar_given_QBM,
4851 bool modelPar_given_NKF,
4853 bool modelPar_given_XIKF,
4855 bool modelPar_given_XRCX,
4857 bool modelPar_given_XRBX,
4859 bool modelPar_given_XRBP,
4861 bool modelPar_given_ISRR,
4863 bool modelPar_given_XISR,
4865 bool modelPar_given_DEAR,
4867 bool modelPar_given_EAP,
4869 bool modelPar_given_VBBE,
4871 bool modelPar_given_NBBE,
4873 bool modelPar_given_IBBE,
4875 bool modelPar_given_TVBBE1,
4877 bool modelPar_given_TVBBE2,
4879 bool modelPar_given_TNBBE,
4881 bool modelPar_given_EBBE,
4883 bool modelPar_given_DTEMP,
4885 bool modelPar_given_VERS,
4887 bool modelPar_given_VREV,
4890 double admsTemperature,
double adms_vt_nom)
4908 bool modelPar_given_TNOM,
4910 bool modelPar_given_RCX,
4912 bool modelPar_given_RCI,
4914 bool modelPar_given_VO,
4916 bool modelPar_given_GAMM,
4918 bool modelPar_given_HRCF,
4920 bool modelPar_given_RBX,
4922 bool modelPar_given_RBI,
4924 bool modelPar_given_RE,
4926 bool modelPar_given_RS,
4928 bool modelPar_given_RBP,
4930 bool modelPar_given_IS,
4932 bool modelPar_given_NF,
4934 bool modelPar_given_NR,
4936 bool modelPar_given_FC,
4938 bool modelPar_given_CBEO,
4940 bool modelPar_given_CJE,
4942 bool modelPar_given_PE,
4944 bool modelPar_given_ME,
4946 bool modelPar_given_AJE,
4948 bool modelPar_given_CBCO,
4950 bool modelPar_given_CJC,
4952 bool modelPar_given_QCO,
4954 bool modelPar_given_CJEP,
4956 bool modelPar_given_PC,
4958 bool modelPar_given_MC,
4960 bool modelPar_given_AJC,
4962 bool modelPar_given_CJCP,
4964 bool modelPar_given_PS,
4966 bool modelPar_given_MS,
4968 bool modelPar_given_AJS,
4970 bool modelPar_given_IBEI,
4972 bool modelPar_given_WBE,
4974 bool modelPar_given_NEI,
4976 bool modelPar_given_IBEN,
4978 bool modelPar_given_NEN,
4980 bool modelPar_given_IBCI,
4982 bool modelPar_given_NCI,
4984 bool modelPar_given_IBCN,
4986 bool modelPar_given_NCN,
4988 bool modelPar_given_AVC1,
4990 bool modelPar_given_AVC2,
4992 bool modelPar_given_ISP,
4994 bool modelPar_given_WSP,
4996 bool modelPar_given_NFP,
4998 bool modelPar_given_IBEIP,
5000 bool modelPar_given_IBENP,
5002 bool modelPar_given_IBCIP,
5004 bool modelPar_given_NCIP,
5006 bool modelPar_given_IBCNP,
5008 bool modelPar_given_NCNP,
5010 bool modelPar_given_VEF,
5012 bool modelPar_given_VER,
5014 bool modelPar_given_IKF,
5016 bool modelPar_given_IKR,
5018 bool modelPar_given_IKP,
5020 bool modelPar_given_TF,
5022 bool modelPar_given_QTF,
5024 bool modelPar_given_XTF,
5026 bool modelPar_given_VTF,
5028 bool modelPar_given_ITF,
5030 bool modelPar_given_TR,
5032 bool modelPar_given_TD,
5034 bool modelPar_given_KFN,
5036 bool modelPar_given_AFN,
5038 bool modelPar_given_BFN,
5040 bool modelPar_given_XRE,
5042 bool modelPar_given_XRBI,
5044 bool modelPar_given_XRCI,
5046 bool modelPar_given_XRS,
5048 bool modelPar_given_XVO,
5050 bool modelPar_given_EA,
5052 bool modelPar_given_EAIE,
5054 bool modelPar_given_EAIC,
5056 bool modelPar_given_EAIS,
5058 bool modelPar_given_EANE,
5060 bool modelPar_given_EANC,
5062 bool modelPar_given_EANS,
5064 bool modelPar_given_XIS,
5066 bool modelPar_given_XII,
5068 bool modelPar_given_XIN,
5070 bool modelPar_given_TNF,
5072 bool modelPar_given_TAVC,
5074 bool modelPar_given_RTH,
5076 bool modelPar_given_CTH,
5078 bool modelPar_given_VRT,
5080 bool modelPar_given_ART,
5082 bool modelPar_given_CCSO,
5084 bool modelPar_given_QBM,
5086 bool modelPar_given_NKF,
5088 bool modelPar_given_XIKF,
5090 bool modelPar_given_XRCX,
5092 bool modelPar_given_XRBX,
5094 bool modelPar_given_XRBP,
5096 bool modelPar_given_ISRR,
5098 bool modelPar_given_XISR,
5100 bool modelPar_given_DEAR,
5102 bool modelPar_given_EAP,
5104 bool modelPar_given_VBBE,
5106 bool modelPar_given_NBBE,
5108 bool modelPar_given_IBBE,
5110 bool modelPar_given_TVBBE1,
5112 bool modelPar_given_TVBBE2,
5114 bool modelPar_given_TNBBE,
5116 bool modelPar_given_EBBE,
5118 bool modelPar_given_DTEMP,
5120 bool modelPar_given_VERS,
5122 bool modelPar_given_VREV,
5125 double admsTemperature)
5143 std::vector <double> & probeVars,
5145 const int admsProbeID_V_ci_ei,
5146 const int admsProbeID_V_b_c,
5147 const int admsProbeID_V_bp_cx,
5148 const int admsProbeID_V_e_ei,
5149 const int admsProbeID_V_b_bx,
5150 const int admsProbeID_V_bx_bi,
5151 const int admsProbeID_V_cx_ci,
5152 const int admsProbeID_V_c_cx,
5153 const int admsProbeID_V_b_e,
5154 const int admsProbeID_V_dt_GND,
5155 const int admsProbeID_V_bx_bp,
5156 const int admsProbeID_V_bi_cx,
5157 const int admsProbeID_V_bx_ei,
5158 const int admsProbeID_V_bi_ci,
5159 const int admsProbeID_V_bi_ei,
5161 const int admsNodeID_c,
5162 const int admsNodeID_b,
5163 const int admsNodeID_e,
5164 const int admsNodeID_dt,
5165 const int admsNodeID_cx,
5166 const int admsNodeID_ci,
5167 const int admsNodeID_bx,
5168 const int admsNodeID_bi,
5169 const int admsNodeID_ei,
5170 const int admsNodeID_bp,
5174 bool instancePar_given_DTEMP,
5177 bool instancePar_given_M,
5181 bool modelPar_given_TNOM,
5183 bool modelPar_given_RCX,
5185 bool modelPar_given_RCI,
5187 bool modelPar_given_VO,
5189 bool modelPar_given_GAMM,
5191 bool modelPar_given_HRCF,
5193 bool modelPar_given_RBX,
5195 bool modelPar_given_RBI,
5197 bool modelPar_given_RE,
5199 bool modelPar_given_RS,
5201 bool modelPar_given_RBP,
5203 bool modelPar_given_IS,
5205 bool modelPar_given_NF,
5207 bool modelPar_given_NR,
5209 bool modelPar_given_FC,
5211 bool modelPar_given_CBEO,
5213 bool modelPar_given_CJE,
5215 bool modelPar_given_PE,
5217 bool modelPar_given_ME,
5219 bool modelPar_given_AJE,
5221 bool modelPar_given_CBCO,
5223 bool modelPar_given_CJC,
5225 bool modelPar_given_QCO,
5227 bool modelPar_given_CJEP,
5229 bool modelPar_given_PC,
5231 bool modelPar_given_MC,
5233 bool modelPar_given_AJC,
5235 bool modelPar_given_CJCP,
5237 bool modelPar_given_PS,
5239 bool modelPar_given_MS,
5241 bool modelPar_given_AJS,
5243 bool modelPar_given_IBEI,
5245 bool modelPar_given_WBE,
5247 bool modelPar_given_NEI,
5249 bool modelPar_given_IBEN,
5251 bool modelPar_given_NEN,
5253 bool modelPar_given_IBCI,
5255 bool modelPar_given_NCI,
5257 bool modelPar_given_IBCN,
5259 bool modelPar_given_NCN,
5261 bool modelPar_given_AVC1,
5263 bool modelPar_given_AVC2,
5265 bool modelPar_given_ISP,
5267 bool modelPar_given_WSP,
5269 bool modelPar_given_NFP,
5271 bool modelPar_given_IBEIP,
5273 bool modelPar_given_IBENP,
5275 bool modelPar_given_IBCIP,
5277 bool modelPar_given_NCIP,
5279 bool modelPar_given_IBCNP,
5281 bool modelPar_given_NCNP,
5283 bool modelPar_given_VEF,
5285 bool modelPar_given_VER,
5287 bool modelPar_given_IKF,
5289 bool modelPar_given_IKR,
5291 bool modelPar_given_IKP,
5293 bool modelPar_given_TF,
5295 bool modelPar_given_QTF,
5297 bool modelPar_given_XTF,
5299 bool modelPar_given_VTF,
5301 bool modelPar_given_ITF,
5303 bool modelPar_given_TR,
5305 bool modelPar_given_TD,
5307 bool modelPar_given_KFN,
5309 bool modelPar_given_AFN,
5311 bool modelPar_given_BFN,
5313 bool modelPar_given_XRE,
5315 bool modelPar_given_XRBI,
5317 bool modelPar_given_XRCI,
5319 bool modelPar_given_XRS,
5321 bool modelPar_given_XVO,
5323 bool modelPar_given_EA,
5325 bool modelPar_given_EAIE,
5327 bool modelPar_given_EAIC,
5329 bool modelPar_given_EAIS,
5331 bool modelPar_given_EANE,
5333 bool modelPar_given_EANC,
5335 bool modelPar_given_EANS,
5337 bool modelPar_given_XIS,
5339 bool modelPar_given_XII,
5341 bool modelPar_given_XIN,
5343 bool modelPar_given_TNF,
5345 bool modelPar_given_TAVC,
5347 bool modelPar_given_RTH,
5349 bool modelPar_given_CTH,
5351 bool modelPar_given_VRT,
5353 bool modelPar_given_ART,
5355 bool modelPar_given_CCSO,
5357 bool modelPar_given_QBM,
5359 bool modelPar_given_NKF,
5361 bool modelPar_given_XIKF,
5363 bool modelPar_given_XRCX,
5365 bool modelPar_given_XRBX,
5367 bool modelPar_given_XRBP,
5369 bool modelPar_given_ISRR,
5371 bool modelPar_given_XISR,
5373 bool modelPar_given_DEAR,
5375 bool modelPar_given_EAP,
5377 bool modelPar_given_VBBE,
5379 bool modelPar_given_NBBE,
5381 bool modelPar_given_IBBE,
5383 bool modelPar_given_TVBBE1,
5385 bool modelPar_given_TVBBE2,
5387 bool modelPar_given_TNBBE,
5389 bool modelPar_given_EBBE,
5391 bool modelPar_given_DTEMP,
5393 bool modelPar_given_VERS,
5395 bool modelPar_given_VREV,
5399 double admsTemperature,
double adms_vt_nom,
double gmin, std::vector <AdmsSensFadType> & staticContributions, std::vector <AdmsSensFadType> & dynamicContributions,
const Instance & theInstance)
5590 tVCrit = (
adms_vt(admsTemperature)*log((
adms_vt(admsTemperature)/(1.41421356237309504880*modelPar_IS))));
5591 Vbei = probeVars[admsProbeID_V_bi_ei];
5593 Vbci = probeVars[admsProbeID_V_bi_ci];
5595 Vbex = probeVars[admsProbeID_V_bx_ei];
5597 Vbcx = probeVars[admsProbeID_V_bi_cx];
5599 Vbep = probeVars[admsProbeID_V_bx_bp];
5601 Vrth = probeVars[admsProbeID_V_dt_GND];
5603 Vbe = probeVars[admsProbeID_V_b_e];
5605 Vrcx = (modelPar_dtype*(probeVars[admsProbeID_V_c_cx]));
5606 Vrci = (modelPar_dtype*(probeVars[admsProbeID_V_cx_ci]));
5607 Vrbi = (modelPar_dtype*(probeVars[admsProbeID_V_bx_bi]));
5608 Vrbx = (modelPar_dtype*(probeVars[admsProbeID_V_b_bx]));
5609 Vre = (modelPar_dtype*(probeVars[admsProbeID_V_e_ei]));
5610 Vrbp = (modelPar_dtype*(probeVars[admsProbeID_V_bp_cx]));
5611 Vbc = (modelPar_dtype*(probeVars[admsProbeID_V_b_c]));
5612 Vcei = (modelPar_dtype*(probeVars[admsProbeID_V_ci_ei]));
5613 Tini = (2.731500e+02+modelPar_TNOM);
5614 Tdev = ((admsTemperature+instancePar_DTEMP)+Vrth);
5615 Vtv = ((1.380662e-23*Tdev)/1.602189e-19);
5618 IKFatT = (modelPar_IKF*pow(rT,modelPar_XIKF));
5619 RCXatT = (modelPar_RCX*pow(rT,modelPar_XRCX));
5620 RCIatT = (modelPar_RCI*pow(rT,modelPar_XRCI));
5621 RBXatT = (modelPar_RBX*pow(rT,modelPar_XRBX));
5622 RBIatT = (modelPar_RBI*pow(rT,modelPar_XRBI));
5623 REatT = (modelPar_RE*pow(rT,modelPar_XRE));
5624 RSatT = (modelPar_RS*pow(rT,modelPar_XRS));
5625 RBPatT = (modelPar_RBP*pow(rT,modelPar_XRBP));
5626 ISatT = (modelPar_IS*pow((pow(rT,modelPar_XIS)*exp((((-modelPar_EA)*(1.0-rT))/Vtv))),(1.0/modelPar_NF)));
5627 ISRRatT = (modelPar_ISRR*pow((pow(rT,modelPar_XISR)*exp((((-modelPar_DEAR)*(1.0-rT))/Vtv))),(1.0/modelPar_NR)));
5628 ISPatT = (modelPar_ISP*pow((pow(rT,modelPar_XIS)*exp((((-modelPar_EAP)*(1.0-rT))/Vtv))),(1.0/modelPar_NFP)));
5629 IBEIatT = (modelPar_IBEI*pow((pow(rT,modelPar_XII)*exp((((-modelPar_EAIE)*(1.0-rT))/Vtv))),(1.0/modelPar_NEI)));
5630 IBENatT = (modelPar_IBEN*pow((pow(rT,modelPar_XIN)*exp((((-modelPar_EANE)*(1.0-rT))/Vtv))),(1.0/modelPar_NEN)));
5631 IBCIatT = (modelPar_IBCI*pow((pow(rT,modelPar_XII)*exp((((-modelPar_EAIC)*(1.0-rT))/Vtv))),(1.0/modelPar_NCI)));
5632 IBCNatT = (modelPar_IBCN*pow((pow(rT,modelPar_XIN)*exp((((-modelPar_EANC)*(1.0-rT))/Vtv))),(1.0/modelPar_NCN)));
5633 IBEIPatT = (modelPar_IBEIP*pow((pow(rT,modelPar_XII)*exp((((-modelPar_EAIC)*(1.0-rT))/Vtv))),(1.0/modelPar_NCI)));
5634 IBENPatT = (modelPar_IBENP*pow((pow(rT,modelPar_XIN)*exp((((-modelPar_EANC)*(1.0-rT))/Vtv))),(1.0/modelPar_NCN)));
5635 IBCIPatT = (modelPar_IBCIP*pow((pow(rT,modelPar_XII)*exp((((-modelPar_EAIS)*(1.0-rT))/Vtv))),(1.0/modelPar_NCIP)));
5636 IBCNPatT = (modelPar_IBCNP*pow((pow(rT,modelPar_XIN)*exp((((-modelPar_EANS)*(1.0-rT))/Vtv))),(1.0/modelPar_NCNP)));
5637 NFatT = (modelPar_NF*(1.0+(dT*modelPar_TNF)));
5638 NRatT = (modelPar_NR*(1.0+(dT*modelPar_TNF)));
5639 AVC2atT = (modelPar_AVC2*(1.0+(dT*modelPar_TAVC)));
5640 VBBEatT = (modelPar_VBBE*(1.0+(dT*(modelPar_TVBBE1+(dT*modelPar_TVBBE2)))));
5641 NBBEatT = (modelPar_NBBE*(1.0+(dT*modelPar_TNBBE)));
5642 psiio = ((2.0*(Vtv/rT))*log((exp((((0.5*modelPar_PE)*rT)/Vtv))-exp(((((-0.5)*modelPar_PE)*rT)/Vtv)))));
5643 psiin = (((psiio*rT)-((3.0*Vtv)*log(rT)))-(modelPar_EAIE*(rT-1.0)));
5644 PEatT = (psiin+((2.0*Vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/Vtv))))))))));
5645 psiio = ((2.0*(Vtv/rT))*log((exp((((0.5*modelPar_PC)*rT)/Vtv))-exp(((((-0.5)*modelPar_PC)*rT)/Vtv)))));
5646 psiin = (((psiio*rT)-((3.0*Vtv)*log(rT)))-(modelPar_EAIC*(rT-1.0)));
5647 PCatT = (psiin+((2.0*Vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/Vtv))))))))));
5648 psiio = ((2.0*(Vtv/rT))*log((exp((((0.5*modelPar_PS)*rT)/Vtv))-exp(((((-0.5)*modelPar_PS)*rT)/Vtv)))));
5649 psiin = (((psiio*rT)-((3.0*Vtv)*log(rT)))-(modelPar_EAIS*(rT-1.0)));
5650 PSatT = (psiin+((2.0*Vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/Vtv))))))))));
5651 CJEatT = (modelPar_CJE*pow((modelPar_PE/PEatT),modelPar_ME));
5652 CJCatT = (modelPar_CJC*pow((modelPar_PC/PCatT),modelPar_MC));
5653 CJEPatT = (modelPar_CJEP*pow((modelPar_PC/PCatT),modelPar_MC));
5654 CJCPatT = (modelPar_CJCP*pow((modelPar_PS/PSatT),modelPar_MS));
5655 GAMMatT = ((modelPar_GAMM*pow(rT,modelPar_XIS))*exp((((-modelPar_EA)*(1.0-rT))/Vtv)));
5656 VOatT = (modelPar_VO*pow(rT,modelPar_XVO));
5657 EBBEatT = exp(((-VBBEatT)/(NBBEatT*Vtv)));
5658 IVEF = adms_ternary_op<AdmsSensFadType>((modelPar_VEF>0.0),(1.0/modelPar_VEF),0.0);
5659 IVER = adms_ternary_op<AdmsSensFadType>((modelPar_VER>0.0),(1.0/modelPar_VER),0.0);
5661 if ((modelPar_IKF>0.0))
5663 IIKF = (1.0/IKFatT);
5665 IIKR = adms_ternary_op<AdmsSensFadType>((modelPar_IKR>0.0),(1.0/modelPar_IKR),0.0);
5666 IIKP = adms_ternary_op<AdmsSensFadType>((modelPar_IKP>0.0),(1.0/modelPar_IKP),0.0);
5668 if ((modelPar_VO>0.0))
5672 IHRCF = adms_ternary_op<AdmsSensFadType>((modelPar_HRCF>0.0),(1.0/modelPar_HRCF),0.0);
5673 IVTF = adms_ternary_op<AdmsSensFadType>((modelPar_VTF>0.0),(1.0/modelPar_VTF),0.0);
5674 IITF = adms_ternary_op<AdmsSensFadType>((modelPar_ITF>0.0),(1.0/modelPar_ITF),0.0);
5675 slTF = ((modelPar_ITF>0.0)?0.0:1.0);
5676 dv0 = ((-PEatT)*modelPar_FC);
5677 if ((modelPar_AJE<=0.0))
5679 dvh_vbei = (Vbei+dv0);
5682 pwq = pow((1.0-modelPar_FC),((-1.0)-modelPar_ME));
5683 qlo_vbei = ((PEatT*(1.0-((pwq*(1.0-modelPar_FC))*(1.0-modelPar_FC))))/(1.0-modelPar_ME));
5684 qhi_vbei = ((dvh_vbei*((1.0-modelPar_FC)+(((0.5*modelPar_ME)*dvh_vbei)/PEatT)))*pwq);
5688 qlo_vbei = ((PEatT*(1.0-pow((1.0-(Vbei/PEatT)),(1.0-modelPar_ME))))/(1.0-modelPar_ME));
5691 qdbe = (qlo_vbei+qhi_vbei);
5695 mv0 = sqrt(((dv0*dv0)+((4*modelPar_AJE)*modelPar_AJE)));
5696 vl0 = ((-0.5)*(dv0+mv0));
5697 q0 = (((-PEatT)*pow((1.0-(vl0/PEatT)),(1.0-modelPar_ME)))/(1.0-modelPar_ME));
5698 dv_vbei = (Vbei+dv0);
5699 mv_vbei = sqrt(((dv_vbei*dv_vbei)+((4*modelPar_AJE)*modelPar_AJE)));
5700 vl_vbei = ((0.5*(dv_vbei-mv_vbei))-dv0);
5701 qlo_vbei = (((-PEatT)*pow((1.0-(vl_vbei/PEatT)),(1.0-modelPar_ME)))/(1.0-modelPar_ME));
5702 qdbe = ((qlo_vbei+(pow((1.0-modelPar_FC),(-modelPar_ME))*((Vbei-vl_vbei)+vl0)))-q0);
5704 dv0 = ((-PEatT)*modelPar_FC);
5705 if ((modelPar_AJE<=0.0))
5707 dvh_vbex = (Vbex+dv0);
5710 pwq = pow((1.0-modelPar_FC),((-1.0)-modelPar_ME));
5711 qlo_vbex = ((PEatT*(1.0-((pwq*(1.0-modelPar_FC))*(1.0-modelPar_FC))))/(1.0-modelPar_ME));
5712 qhi_vbex = ((dvh_vbex*((1.0-modelPar_FC)+(((0.5*modelPar_ME)*dvh_vbex)/PEatT)))*pwq);
5716 qlo_vbex = ((PEatT*(1.0-pow((1.0-(Vbex/PEatT)),(1.0-modelPar_ME))))/(1.0-modelPar_ME));
5719 qdbex = (qlo_vbex+qhi_vbex);
5723 mv0 = sqrt(((dv0*dv0)+((4*modelPar_AJE)*modelPar_AJE)));
5724 vl0 = ((-0.5)*(dv0+mv0));
5725 q0 = (((-PEatT)*pow((1.0-(vl0/PEatT)),(1.0-modelPar_ME)))/(1.0-modelPar_ME));
5726 dv_vbex = (Vbex+dv0);
5727 mv_vbex = sqrt(((dv_vbex*dv_vbex)+((4*modelPar_AJE)*modelPar_AJE)));
5728 vl_vbex = ((0.5*(dv_vbex-mv_vbex))-dv0);
5729 qlo_vbex = (((-PEatT)*pow((1.0-(vl_vbex/PEatT)),(1.0-modelPar_ME)))/(1.0-modelPar_ME));
5730 qdbex = ((qlo_vbex+(pow((1.0-modelPar_FC),(-modelPar_ME))*((Vbex-vl_vbex)+vl0)))-q0);
5732 dv0 = ((-PCatT)*modelPar_FC);
5733 if ((modelPar_AJC<=0.0))
5735 dvh_vbci = (Vbci+dv0);
5738 pwq = pow((1.0-modelPar_FC),((-1.0)-modelPar_MC));
5739 qlo_vbci = ((PCatT*(1.0-((pwq*(1.0-modelPar_FC))*(1.0-modelPar_FC))))/(1.0-modelPar_MC));
5740 qhi_vbci = ((dvh_vbci*((1.0-modelPar_FC)+(((0.5*modelPar_MC)*dvh_vbci)/PCatT)))*pwq);
5744 if (((modelPar_VRT>0.0)&&(Vbci<(-modelPar_VRT))))
5746 qlo_vbci = ((PCatT*(1.0-(pow((1.0+(modelPar_VRT/PCatT)),(1.0-modelPar_MC))*(1.0-(((1.0-modelPar_MC)*(Vbci+modelPar_VRT))/(PCatT+modelPar_VRT))))))/(1.0-modelPar_MC));
5750 qlo_vbci = ((PCatT*(1.0-pow((1.0-(Vbci/PCatT)),(1.0-modelPar_MC))))/(1.0-modelPar_MC));
5754 qdbc = (qlo_vbci+qhi_vbci);
5758 if (((modelPar_VRT>0.0)&&(modelPar_ART>0.0)))
5760 vn0 = ((modelPar_VRT+dv0)/(modelPar_VRT-dv0));
5761 vnl0 = ((2.0*vn0)/(sqrt((((vn0-1.0)*(vn0-1))+((4*modelPar_AJC)*modelPar_AJC)))+sqrt((((vn0+1.0)*(vn0+1))+((4*modelPar_ART)*modelPar_ART)))));
5762 vl0 = (0.5*(((vnl0*(modelPar_VRT-dv0))-modelPar_VRT)-dv0));
5763 qlo0 = ((PCatT*(1.0-pow((1.0-(vl0/PCatT)),(1.0-modelPar_MC))))/(1.0-modelPar_MC));
5764 vn_vbci = ((((2*Vbci)+modelPar_VRT)+dv0)/(modelPar_VRT-dv0));
5765 vnl_vbci = ((2.0*vn_vbci)/(sqrt((((vn_vbci-1.0)*(vn_vbci-1))+((4*modelPar_AJC)*modelPar_AJC)))+sqrt((((vn_vbci+1.0)*(vn_vbci+1))+((4*modelPar_ART)*modelPar_ART)))));
5766 vl_vbci = (0.5*(((vnl_vbci*(modelPar_VRT-dv0))-modelPar_VRT)-dv0));
5767 qlo_vbci = ((PCatT*(1.0-pow((1.0-(vl_vbci/PCatT)),(1.0-modelPar_MC))))/(1.0-modelPar_MC));
5768 sel_vbci = (0.5*(vnl_vbci+1.0));
5769 crt = pow((1.0+(modelPar_VRT/PCatT)),(-modelPar_MC));
5770 cmx = pow((1.0+(dv0/PCatT)),(-modelPar_MC));
5771 cl_vbci = (((1.0-sel_vbci)*crt)+(sel_vbci*cmx));
5772 ql_vbci = (((Vbci-vl_vbci)+vl0)*cl_vbci);
5773 qdbc = ((ql_vbci+qlo_vbci)-qlo0);
5777 mv0 = sqrt(((dv0*dv0)+((4*modelPar_AJC)*modelPar_AJC)));
5778 vl0 = ((-0.5)*(dv0+mv0));
5779 q0 = (((-PCatT)*pow((1.0-(vl0/PCatT)),(1.0-modelPar_MC)))/(1.0-modelPar_MC));
5780 dv_vbci = (Vbci+dv0);
5781 mv_vbci = sqrt(((dv_vbci*dv_vbci)+((4*modelPar_AJC)*modelPar_AJC)));
5782 vl_vbci = ((0.5*(dv_vbci-mv_vbci))-dv0);
5783 qlo_vbci = (((-PCatT)*pow((1.0-(vl_vbci/PCatT)),(1.0-modelPar_MC)))/(1.0-modelPar_MC));
5784 qdbc = ((qlo_vbci+(pow((1.0-modelPar_FC),(-modelPar_MC))*((Vbci-vl_vbci)+vl0)))-q0);
5787 dv0 = ((-PCatT)*modelPar_FC);
5788 if ((modelPar_AJC<=0.0))
5790 dvh_vbep = (Vbep+dv0);
5793 pwq = pow((1.0-modelPar_FC),((-1.0)-modelPar_MC));
5794 qlo_vbep = ((PCatT*(1.0-((pwq*(1.0-modelPar_FC))*(1.0-modelPar_FC))))/(1.0-modelPar_MC));
5795 qhi_vbep = ((dvh_vbep*((1.0-modelPar_FC)+(((0.5*modelPar_MC)*dvh_vbep)/PCatT)))*pwq);
5799 if (((modelPar_VRT>0.0)&&(Vbep<(-modelPar_VRT))))
5801 qlo_vbep = ((PCatT*(1.0-(pow((1.0+(modelPar_VRT/PCatT)),(1.0-modelPar_MC))*(1.0-(((1.0-modelPar_MC)*(Vbep+modelPar_VRT))/(PCatT+modelPar_VRT))))))/(1.0-modelPar_MC));
5805 qlo_vbep = ((PCatT*(1.0-pow((1.0-(Vbep/PCatT)),(1.0-modelPar_MC))))/(1.0-modelPar_MC));
5809 qdbep = (qlo_vbep+qhi_vbep);
5813 if (((modelPar_VRT>0.0)&&(modelPar_ART>0.0)))
5815 vn0 = ((modelPar_VRT+dv0)/(modelPar_VRT-dv0));
5816 vnl0 = ((2.0*vn0)/(sqrt((((vn0-1.0)*(vn0-1))+((4*modelPar_AJC)*modelPar_AJC)))+sqrt((((vn0+1.0)*(vn0+1))+((4*modelPar_ART)*modelPar_ART)))));
5817 vl0 = (0.5*(((vnl0*(modelPar_VRT-dv0))-modelPar_VRT)-dv0));
5818 qlo0 = ((PCatT*(1.0-pow((1.0-(vl0/PCatT)),(1.0-modelPar_MC))))/(1.0-modelPar_MC));
5819 vn_vbep = ((((2*Vbep)+modelPar_VRT)+dv0)/(modelPar_VRT-dv0));
5820 vnl_vbep = ((2.0*vn_vbep)/(sqrt((((vn_vbep-1.0)*(vn_vbep-1))+((4*modelPar_AJC)*modelPar_AJC)))+sqrt((((vn_vbep+1.0)*(vn_vbep+1))+((4*modelPar_ART)*modelPar_ART)))));
5821 vl_vbep = (0.5*(((vnl_vbep*(modelPar_VRT-dv0))-modelPar_VRT)-dv0));
5822 qlo_vbep = ((PCatT*(1.0-pow((1.0-(vl_vbep/PCatT)),(1.0-modelPar_MC))))/(1.0-modelPar_MC));
5823 sel_vbep = (0.5*(vnl_vbep+1.0));
5824 crt = pow((1.0+(modelPar_VRT/PCatT)),(-modelPar_MC));
5825 cmx = pow((1.0+(dv0/PCatT)),(-modelPar_MC));
5826 cl_vbep = (((1.0-sel_vbep)*crt)+(sel_vbep*cmx));
5827 ql_vbep = (((Vbep-vl_vbep)+vl0)*cl_vbep);
5828 qdbep = ((ql_vbep+qlo_vbep)-qlo0);
5832 mv0 = sqrt(((dv0*dv0)+((4*modelPar_AJC)*modelPar_AJC)));
5833 vl0 = ((-0.5)*(dv0+mv0));
5834 q0 = (((-PCatT)*pow((1.0-(vl0/PCatT)),(1.0-modelPar_MC)))/(1.0-modelPar_MC));
5835 dv_vbep = (Vbep+dv0);
5836 mv_vbep = sqrt(((dv_vbep*dv_vbep)+((4*modelPar_AJC)*modelPar_AJC)));
5837 vl_vbep = ((0.5*(dv_vbep-mv_vbep))-dv0);
5838 qlo_vbep = (((-PCatT)*pow((1.0-(vl_vbep/PCatT)),(1.0-modelPar_MC)))/(1.0-modelPar_MC));
5839 qdbep = ((qlo_vbep+(pow((1.0-modelPar_FC),(-modelPar_MC))*((Vbep-vl_vbep)+vl0)))-q0);
5842 argi_vbei = (Vbei/(NFatT*Vtv));
5843 expi_vbei = limexp<AdmsSensFadType>(argi_vbei);
5844 Ifi = (ISatT*(expi_vbei-1.0));
5845 argi_vbci = (Vbci/(NRatT*Vtv));
5846 expi_vbci = limexp<AdmsSensFadType>(argi_vbci);
5847 Iri = ((ISatT*ISRRatT)*(expi_vbci-1.0));
5848 q1z = ((1.0+(qdbe*IVER))+(qdbc*IVEF));
5849 q1 = ((0.5*((sqrt((((q1z-1.0e-4)*(q1z-1.0e-4))+1.0e-8))+q1z)-1.0e-4))+1.0e-4);
5850 q2 = ((Ifi*IIKF)+(Iri*IIKR));
5853 if ((modelPar_QBM<0.5))
5855 qb = (0.5*(q1+pow((pow(q1,(1.0/modelPar_NKF))+(4.0*q2)),modelPar_NKF)));
5859 qb = ((0.5*q1)*(1.0+pow((1.0+(4.0*q2)),modelPar_NKF)));
5868 if ((modelPar_ISP>0.0))
5870 argi_vbep = (Vbep/(modelPar_NFP*Vtv));
5871 expi_vbep = limexp<AdmsSensFadType>(argi_vbep);
5872 argx_vbci = (Vbci/(modelPar_NFP*Vtv));
5873 expx_vbci = limexp<AdmsSensFadType>(argx_vbci);
5874 Ifp = (ISPatT*(((modelPar_WSP*expi_vbep)+((1.0-modelPar_WSP)*expx_vbci))-1.0));
5876 qbp = (0.5*(1.0+sqrt((1.0+(4.0*q2p)))));
5883 if ((modelPar_WBE==1.0))
5885 argi_vbei = (Vbei/(modelPar_NEI*Vtv));
5886 expi_vbei = limexp<AdmsSensFadType>(argi_vbei);
5887 argn_vbei = (Vbei/(modelPar_NEN*Vtv));
5888 expn_vbei = limexp<AdmsSensFadType>(argn_vbei);
5889 if ((modelPar_VBBE>0.0))
5891 argx_vbei = (((-VBBEatT)-Vbei)/(NBBEatT*Vtv));
5892 expx_vbei = limexp<AdmsSensFadType>(argx_vbei);
5893 Ibe = (((IBEIatT*(expi_vbei-1.0))+(IBENatT*(expn_vbei-1.0)))-(modelPar_IBBE*(expx_vbei-EBBEatT)));
5897 Ibe = ((IBEIatT*(expi_vbei-1.0))+(IBENatT*(expn_vbei-1.0)));
5903 if ((modelPar_WBE==0.0))
5906 argi_vbex = (Vbex/(modelPar_NEI*Vtv));
5907 expi_vbex = limexp<AdmsSensFadType>(argi_vbex);
5908 argn_vbex = (Vbex/(modelPar_NEN*Vtv));
5909 expn_vbex = limexp<AdmsSensFadType>(argn_vbex);
5910 if ((modelPar_VBBE>0.0))
5912 argx_vbex = (((-VBBEatT)-Vbex)/(NBBEatT*Vtv));
5913 expx_vbex = limexp<AdmsSensFadType>(argx_vbex);
5914 Ibex = (((IBEIatT*(expi_vbex-1.0))+(IBENatT*(expn_vbex-1.0)))-(modelPar_IBBE*(expx_vbex-EBBEatT)));
5918 Ibex = ((IBEIatT*(expi_vbex-1.0))+(IBENatT*(expn_vbex-1.0)));
5923 argi_vbei = (Vbei/(modelPar_NEI*Vtv));
5924 expi_vbei = limexp<AdmsSensFadType>(argi_vbei);
5925 argn_vbei = (Vbei/(modelPar_NEN*Vtv));
5926 expn_vbei = limexp<AdmsSensFadType>(argn_vbei);
5927 if ((modelPar_VBBE>0.0))
5929 argx_vbei = (((-VBBEatT)-Vbei)/(NBBEatT*Vtv));
5930 expx_vbei = limexp<AdmsSensFadType>(argx_vbei);
5931 Ibe = (modelPar_WBE*(((IBEIatT*(expi_vbei-1.0))+(IBENatT*(expn_vbei-1.0)))-(modelPar_IBBE*(expx_vbei-EBBEatT))));
5935 Ibe = (modelPar_WBE*((IBEIatT*(expi_vbei-1.0))+(IBENatT*(expn_vbei-1.0))));
5937 argi_vbex = (Vbex/(modelPar_NEI*Vtv));
5938 expi_vbex = limexp<AdmsSensFadType>(argi_vbex);
5939 argn_vbex = (Vbex/(modelPar_NEN*Vtv));
5940 expn_vbex = limexp<AdmsSensFadType>(argn_vbex);
5941 if ((modelPar_VBBE>0.0))
5943 argx_vbex = (((-VBBEatT)-Vbex)/(NBBEatT*Vtv));
5944 expx_vbex = limexp<AdmsSensFadType>(argx_vbex);
5945 Ibex = ((1.0-modelPar_WBE)*(((IBEIatT*(expi_vbex-1.0))+(IBENatT*(expn_vbex-1.0)))-(modelPar_IBBE*(expx_vbex-EBBEatT))));
5949 Ibex = ((1.0-modelPar_WBE)*((IBEIatT*(expi_vbex-1.0))+(IBENatT*(expn_vbex-1.0))));
5953 argi_vbci = (Vbci/(modelPar_NCI*Vtv));
5954 expi_vbci = limexp<AdmsSensFadType>(argi_vbci);
5955 argn_vbci = (Vbci/(modelPar_NCN*Vtv));
5956 expn_vbci = limexp<AdmsSensFadType>(argn_vbci);
5957 Ibcj = ((IBCIatT*(expi_vbci-1.0))+(IBCNatT*(expn_vbci-1.0)));
5958 if (((modelPar_IBEIP>0.0)||(modelPar_IBENP>0.0)))
5960 argi_vbep = (Vbep/(modelPar_NCI*Vtv));
5961 expi_vbep = limexp<AdmsSensFadType>(argi_vbep);
5962 argn_vbep = (Vbep/(modelPar_NCN*Vtv));
5963 expn_vbep = limexp<AdmsSensFadType>(argn_vbep);
5964 Ibep = ((IBEIPatT*(expi_vbep-1.0))+(IBENPatT*(expn_vbep-1.0)));
5970 if ((modelPar_AVC1>0.0))
5972 vl_vbci = (0.5*(sqrt((((PCatT-Vbci)*(PCatT-Vbci))+0.01))+(PCatT-Vbci)));
5973 avalf_exparg = ((-AVC2atT)*pow(vl_vbci,(modelPar_MC-1.0)));
5974 avalf = ((modelPar_AVC1*vl_vbci)*limexp<AdmsSensFadType>(avalf_exparg));
5975 Igc = (((Itzf-Itzr)-Ibcj)*avalf);
5982 if ((modelPar_RCX>0.0))
5984 Ircx = (Vrcx/RCXatT);
5990 argi_vbci = (Vbci/Vtv);
5991 expi_vbci = limexp<AdmsSensFadType>(argi_vbci);
5992 argx_vbcx = (Vbcx/Vtv);
5993 expx_vbcx = limexp<AdmsSensFadType>(argx_vbcx);
5994 Kbci = sqrt((1.0+(GAMMatT*expi_vbci)));
5995 Kbcx = sqrt((1.0+(GAMMatT*expx_vbcx)));
5996 if ((modelPar_RCI>0.0))
5998 rKp1 = ((Kbci+1.0)/(Kbcx+1.0));
5999 Iohm = ((Vrci+(Vtv*((Kbci-Kbcx)-log(rKp1))))/RCIatT);
6000 derf = (((IVO*RCIatT)*Iohm)/(1.0+(((0.5*IVO)*IHRCF)*sqrt(((Vrci*Vrci)+0.01)))));
6001 Irci = (Iohm/sqrt((1+(derf*derf))));
6007 if ((modelPar_RBX>0.0))
6009 Irbx = (Vrbx/RBXatT);
6015 if ((modelPar_RBI>0.0))
6017 Irbi = ((Vrbi*qb)/RBIatT);
6023 if ((modelPar_RE>0.0))
6031 if ((modelPar_RBP>0.0))
6033 Irbp = ((Vrbp*qbp)/RBPatT);
6039 sgIf = ((Ifi>0.0)?1.0:0.0);
6040 rIf = ((Ifi*sgIf)*IITF);
6041 mIf = (rIf/(rIf+1.0));
6042 tff_exparg = ((Vbci*IVTF)/1.44);
6043 tff = ((modelPar_TF*(1.0+(modelPar_QTF*q1)))*(1.0+(((modelPar_XTF*limexp<AdmsSensFadType>(tff_exparg))*(slTF+(mIf*mIf)))*sgIf)));
6044 Qbe = (((CJEatT*qdbe)*modelPar_WBE)+((tff*Ifi)/qb));
6045 Qbex = ((CJEatT*qdbex)*(1.0-modelPar_WBE));
6046 Qbc = (((CJCatT*qdbc)+(modelPar_TR*Iri))+(modelPar_QCO*Kbci));
6047 Qbcx = (modelPar_QCO*Kbcx);
6048 Qbep = ((CJEPatT*qdbep)+(modelPar_TR*Ifp));
6049 Qbeo = (Vbe*modelPar_CBEO);
6050 Qbco = (Vbc*modelPar_CBCO);
6051 Ith = (-(((((((((((Ibe*Vbei)+(Ibc*Vbci))+((Itzf-Itzr)*Vcei))+(Ibex*Vbex))+(Ibep*Vbep))+(Ircx*Vrcx))+(Irci*Vrci))+(Irbx*Vrbx))+(Irbi*Vrbi))+(Ire*Vre))+(Irbp*Vrbp)));
6052 if ((modelPar_RTH>0.0))
6054 Irth = (Vrth/modelPar_RTH);
6060 Qcth = (Vrth*modelPar_CTH);
6062 staticContributions[admsNodeID_bi] += ((instancePar_M*modelPar_dtype)*(Ibe+(gmin*Vbei)));
6063 staticContributions[admsNodeID_ei] -= ((instancePar_M*modelPar_dtype)*(Ibe+(gmin*Vbei)));
6065 staticContributions[admsNodeID_bx] += ((instancePar_M*modelPar_dtype)*(Ibex+(gmin*Vbex)));
6066 staticContributions[admsNodeID_ei] -= ((instancePar_M*modelPar_dtype)*(Ibex+(gmin*Vbex)));
6068 staticContributions[admsNodeID_ci] += ((instancePar_M*modelPar_dtype)*Itzf);
6069 staticContributions[admsNodeID_ei] -= ((instancePar_M*modelPar_dtype)*Itzf);
6071 staticContributions[admsNodeID_ei] += ((instancePar_M*modelPar_dtype)*Itzr);
6072 staticContributions[admsNodeID_ci] -= ((instancePar_M*modelPar_dtype)*Itzr);
6074 staticContributions[admsNodeID_bi] += ((instancePar_M*modelPar_dtype)*(Ibc+(gmin*Vbci)));
6075 staticContributions[admsNodeID_ci] -= ((instancePar_M*modelPar_dtype)*(Ibc+(gmin*Vbci)));
6077 staticContributions[admsNodeID_bx] += ((instancePar_M*modelPar_dtype)*(Ibep+(gmin*Vbep)));
6078 staticContributions[admsNodeID_bp] -= ((instancePar_M*modelPar_dtype)*(Ibep+(gmin*Vbep)));
6079 if ((modelPar_RCX>0))
6082 staticContributions[admsNodeID_c] += ((instancePar_M*modelPar_dtype)*Ircx);
6083 staticContributions[admsNodeID_cx] -= ((instancePar_M*modelPar_dtype)*Ircx);
6091 staticContributions[admsNodeID_cx] += ((instancePar_M*modelPar_dtype)*(Irci+(gmin*Vrci)));
6092 staticContributions[admsNodeID_ci] -= ((instancePar_M*modelPar_dtype)*(Irci+(gmin*Vrci)));
6093 if ((modelPar_RBX>0))
6096 staticContributions[admsNodeID_b] += ((instancePar_M*modelPar_dtype)*Irbx);
6097 staticContributions[admsNodeID_bx] -= ((instancePar_M*modelPar_dtype)*Irbx);
6105 staticContributions[admsNodeID_bx] += ((instancePar_M*modelPar_dtype)*Irbi);
6106 staticContributions[admsNodeID_bi] -= ((instancePar_M*modelPar_dtype)*Irbi);
6107 if ((modelPar_RE>0))
6110 staticContributions[admsNodeID_e] += ((instancePar_M*modelPar_dtype)*Ire);
6111 staticContributions[admsNodeID_ei] -= ((instancePar_M*modelPar_dtype)*Ire);
6119 staticContributions[admsNodeID_bp] += ((instancePar_M*modelPar_dtype)*Irbp);
6120 staticContributions[admsNodeID_cx] -= ((instancePar_M*modelPar_dtype)*Irbp);
6122 dynamicContributions[admsNodeID_bi] += ((instancePar_M*modelPar_dtype)*(Qbe));
6123 dynamicContributions[admsNodeID_ei] -= ((instancePar_M*modelPar_dtype)*(Qbe));
6125 dynamicContributions[admsNodeID_bx] += ((instancePar_M*modelPar_dtype)*(Qbex));
6126 dynamicContributions[admsNodeID_ei] -= ((instancePar_M*modelPar_dtype)*(Qbex));
6128 dynamicContributions[admsNodeID_bi] += ((instancePar_M*modelPar_dtype)*(Qbc));
6129 dynamicContributions[admsNodeID_ci] -= ((instancePar_M*modelPar_dtype)*(Qbc));
6131 dynamicContributions[admsNodeID_bi] += ((instancePar_M*modelPar_dtype)*(Qbcx));
6132 dynamicContributions[admsNodeID_cx] -= ((instancePar_M*modelPar_dtype)*(Qbcx));
6134 dynamicContributions[admsNodeID_bx] += ((instancePar_M*modelPar_dtype)*(Qbep));
6135 dynamicContributions[admsNodeID_bp] -= ((instancePar_M*modelPar_dtype)*(Qbep));
6137 dynamicContributions[admsNodeID_b] += ((instancePar_M*modelPar_dtype)*(Qbeo));
6138 dynamicContributions[admsNodeID_e] -= ((instancePar_M*modelPar_dtype)*(Qbeo));
6140 dynamicContributions[admsNodeID_b] += ((instancePar_M*modelPar_dtype)*(Qbco));
6141 dynamicContributions[admsNodeID_c] -= ((instancePar_M*modelPar_dtype)*(Qbco));
6143 staticContributions[admsNodeID_dt] += Irth;
6145 staticContributions[admsNodeID_dt] += Ith;
6147 dynamicContributions[admsNodeID_dt] += (Qcth);
6174 void InstanceSensitivity::operator()
6177 const std::string &name,
6178 std::vector<double> & dfdp,
6179 std::vector<double> & dqdp,
6180 std::vector<double> & dbdp,
6181 std::vector<int> & Findices,
6182 std::vector<int> & Qindices,
6183 std::vector<int> & Bindices
6192 Findices.resize(10+0);
6193 Qindices.resize(10+0);
6195 std::vector <double> probeVars(15);
6196 std::vector <AdmsSensFadType> staticContributions(10+0);
6197 std::vector <AdmsSensFadType> dynamicContributions(10+0);
6201 for (
int i=0; i < 10+0 ; ++i)
6203 staticContributions[i]=0;
6204 dynamicContributions[i]=0;
6210 bool modelPar_given_TNOM=mod.
given(
"TNOM");
6212 bool modelPar_given_RCX=mod.
given(
"RCX");
6214 bool modelPar_given_RCI=mod.
given(
"RCI");
6216 bool modelPar_given_VO=mod.
given(
"VO");
6218 bool modelPar_given_GAMM=mod.
given(
"GAMM");
6220 bool modelPar_given_HRCF=mod.
given(
"HRCF");
6222 bool modelPar_given_RBX=mod.
given(
"RBX");
6224 bool modelPar_given_RBI=mod.
given(
"RBI");
6226 bool modelPar_given_RE=mod.
given(
"RE");
6228 bool modelPar_given_RS=mod.
given(
"RS");
6230 bool modelPar_given_RBP=mod.
given(
"RBP");
6232 bool modelPar_given_IS=mod.
given(
"IS");
6234 bool modelPar_given_NF=mod.
given(
"NF");
6236 bool modelPar_given_NR=mod.
given(
"NR");
6238 bool modelPar_given_FC=mod.
given(
"FC");
6240 bool modelPar_given_CBEO=mod.
given(
"CBEO");
6242 bool modelPar_given_CJE=mod.
given(
"CJE");
6244 bool modelPar_given_PE=mod.
given(
"PE");
6246 bool modelPar_given_ME=mod.
given(
"ME");
6248 bool modelPar_given_AJE=mod.
given(
"AJE");
6250 bool modelPar_given_CBCO=mod.
given(
"CBCO");
6252 bool modelPar_given_CJC=mod.
given(
"CJC");
6254 bool modelPar_given_QCO=mod.
given(
"QCO");
6256 bool modelPar_given_CJEP=mod.
given(
"CJEP");
6258 bool modelPar_given_PC=mod.
given(
"PC");
6260 bool modelPar_given_MC=mod.
given(
"MC");
6262 bool modelPar_given_AJC=mod.
given(
"AJC");
6264 bool modelPar_given_CJCP=mod.
given(
"CJCP");
6266 bool modelPar_given_PS=mod.
given(
"PS");
6268 bool modelPar_given_MS=mod.
given(
"MS");
6270 bool modelPar_given_AJS=mod.
given(
"AJS");
6272 bool modelPar_given_IBEI=mod.
given(
"IBEI");
6274 bool modelPar_given_WBE=mod.
given(
"WBE");
6276 bool modelPar_given_NEI=mod.
given(
"NEI");
6278 bool modelPar_given_IBEN=mod.
given(
"IBEN");
6280 bool modelPar_given_NEN=mod.
given(
"NEN");
6282 bool modelPar_given_IBCI=mod.
given(
"IBCI");
6284 bool modelPar_given_NCI=mod.
given(
"NCI");
6286 bool modelPar_given_IBCN=mod.
given(
"IBCN");
6288 bool modelPar_given_NCN=mod.
given(
"NCN");
6290 bool modelPar_given_AVC1=mod.
given(
"AVC1");
6292 bool modelPar_given_AVC2=mod.
given(
"AVC2");
6294 bool modelPar_given_ISP=mod.
given(
"ISP");
6296 bool modelPar_given_WSP=mod.
given(
"WSP");
6298 bool modelPar_given_NFP=mod.
given(
"NFP");
6300 bool modelPar_given_IBEIP=mod.
given(
"IBEIP");
6302 bool modelPar_given_IBENP=mod.
given(
"IBENP");
6304 bool modelPar_given_IBCIP=mod.
given(
"IBCIP");
6306 bool modelPar_given_NCIP=mod.
given(
"NCIP");
6308 bool modelPar_given_IBCNP=mod.
given(
"IBCNP");
6310 bool modelPar_given_NCNP=mod.
given(
"NCNP");
6312 bool modelPar_given_VEF=mod.
given(
"VEF");
6314 bool modelPar_given_VER=mod.
given(
"VER");
6316 bool modelPar_given_IKF=mod.
given(
"IKF");
6318 bool modelPar_given_IKR=mod.
given(
"IKR");
6320 bool modelPar_given_IKP=mod.
given(
"IKP");
6322 bool modelPar_given_TF=mod.
given(
"TF");
6324 bool modelPar_given_QTF=mod.
given(
"QTF");
6326 bool modelPar_given_XTF=mod.
given(
"XTF");
6328 bool modelPar_given_VTF=mod.
given(
"VTF");
6330 bool modelPar_given_ITF=mod.
given(
"ITF");
6332 bool modelPar_given_TR=mod.
given(
"TR");
6334 bool modelPar_given_TD=mod.
given(
"TD");
6336 bool modelPar_given_KFN=mod.
given(
"KFN");
6338 bool modelPar_given_AFN=mod.
given(
"AFN");
6340 bool modelPar_given_BFN=mod.
given(
"BFN");
6342 bool modelPar_given_XRE=mod.
given(
"XRE");
6344 bool modelPar_given_XRBI=mod.
given(
"XRBI");
6346 bool modelPar_given_XRCI=mod.
given(
"XRCI");
6348 bool modelPar_given_XRS=mod.
given(
"XRS");
6350 bool modelPar_given_XVO=mod.
given(
"XVO");
6352 bool modelPar_given_EA=mod.
given(
"EA");
6354 bool modelPar_given_EAIE=mod.
given(
"EAIE");
6356 bool modelPar_given_EAIC=mod.
given(
"EAIC");
6358 bool modelPar_given_EAIS=mod.
given(
"EAIS");
6360 bool modelPar_given_EANE=mod.
given(
"EANE");
6362 bool modelPar_given_EANC=mod.
given(
"EANC");
6364 bool modelPar_given_EANS=mod.
given(
"EANS");
6366 bool modelPar_given_XIS=mod.
given(
"XIS");
6368 bool modelPar_given_XII=mod.
given(
"XII");
6370 bool modelPar_given_XIN=mod.
given(
"XIN");
6372 bool modelPar_given_TNF=mod.
given(
"TNF");
6374 bool modelPar_given_TAVC=mod.
given(
"TAVC");
6376 bool modelPar_given_RTH=mod.
given(
"RTH");
6378 bool modelPar_given_CTH=mod.
given(
"CTH");
6380 bool modelPar_given_VRT=mod.
given(
"VRT");
6382 bool modelPar_given_ART=mod.
given(
"ART");
6384 bool modelPar_given_CCSO=mod.
given(
"CCSO");
6386 bool modelPar_given_QBM=mod.
given(
"QBM");
6388 bool modelPar_given_NKF=mod.
given(
"NKF");
6390 bool modelPar_given_XIKF=mod.
given(
"XIKF");
6392 bool modelPar_given_XRCX=mod.
given(
"XRCX");
6394 bool modelPar_given_XRBX=mod.
given(
"XRBX");
6396 bool modelPar_given_XRBP=mod.
given(
"XRBP");
6398 bool modelPar_given_ISRR=mod.
given(
"ISRR");
6400 bool modelPar_given_XISR=mod.
given(
"XISR");
6402 bool modelPar_given_DEAR=mod.
given(
"DEAR");
6404 bool modelPar_given_EAP=mod.
given(
"EAP");
6406 bool modelPar_given_VBBE=mod.
given(
"VBBE");
6408 bool modelPar_given_NBBE=mod.
given(
"NBBE");
6410 bool modelPar_given_IBBE=mod.
given(
"IBBE");
6412 bool modelPar_given_TVBBE1=mod.
given(
"TVBBE1");
6414 bool modelPar_given_TVBBE2=mod.
given(
"TVBBE2");
6416 bool modelPar_given_TNBBE=mod.
given(
"TNBBE");
6418 bool modelPar_given_EBBE=mod.
given(
"EBBE");
6420 bool modelPar_given_DTEMP=mod.
given(
"DTEMP");
6422 bool modelPar_given_VERS=mod.
given(
"VERS");
6424 bool modelPar_given_VREV=mod.
given(
"VREV");
6431 int modelPar_dtype=mod.
dtype;
6439 unordered_map <std::string,AdmsSensFadType*,HashNoCase,EqualNoCase> inParamMap;
6443 bool instancePar_given_DTEMP=in.
given(
"DTEMP");
6444 inParamMap[
"DTEMP"] = &instancePar_DTEMP;
6452 int instancePar_M=in.
M;
6453 bool instancePar_given_M=in.
given(
"M");
6460 inParamMap[name]->diff(0,1);
6541 instancePar_given_DTEMP,
6544 instancePar_given_M,
6548 modelPar_given_TNOM,
6556 modelPar_given_GAMM,
6558 modelPar_given_HRCF,
6578 modelPar_given_CBEO,
6588 modelPar_given_CBCO,
6594 modelPar_given_CJEP,
6602 modelPar_given_CJCP,
6610 modelPar_given_IBEI,
6616 modelPar_given_IBEN,
6620 modelPar_given_IBCI,
6624 modelPar_given_IBCN,
6628 modelPar_given_AVC1,
6630 modelPar_given_AVC2,
6638 modelPar_given_IBEIP,
6640 modelPar_given_IBENP,
6642 modelPar_given_IBCIP,
6644 modelPar_given_NCIP,
6646 modelPar_given_IBCNP,
6648 modelPar_given_NCNP,
6682 modelPar_given_XRBI,
6684 modelPar_given_XRCI,
6692 modelPar_given_EAIE,
6694 modelPar_given_EAIC,
6696 modelPar_given_EAIS,
6698 modelPar_given_EANE,
6700 modelPar_given_EANC,
6702 modelPar_given_EANS,
6712 modelPar_given_TAVC,
6722 modelPar_given_CCSO,
6728 modelPar_given_XIKF,
6730 modelPar_given_XRCX,
6732 modelPar_given_XRBX,
6734 modelPar_given_XRBP,
6736 modelPar_given_ISRR,
6738 modelPar_given_XISR,
6740 modelPar_given_DEAR,
6744 modelPar_given_VBBE,
6746 modelPar_given_NBBE,
6748 modelPar_given_IBBE,
6750 modelPar_given_TVBBE1,
6752 modelPar_given_TVBBE2,
6754 modelPar_given_TNBBE,
6756 modelPar_given_EBBE,
6758 modelPar_given_DTEMP,
6760 modelPar_given_VERS,
6762 modelPar_given_VREV,
6768 staticContributions,
6769 dynamicContributions,
6841 void ModelSensitivity::operator()
6844 const std::string &name,
6845 std::vector<double> & dfdp,
6846 std::vector<double> & dqdp,
6847 std::vector<double> & dbdp,
6848 std::vector<int> & Findices,
6849 std::vector<int> & Qindices,
6850 std::vector<int> & Bindices
6854 const Model & mod = *(
dynamic_cast<const Model *
> (e1));
6857 dfdp.resize((10+0)*sizeInstance);
6858 dqdp.resize((10+0)*sizeInstance);
6859 Findices.resize((10+0)*sizeInstance);
6860 Qindices.resize((10+0)*sizeInstance);
6862 std::vector <double> probeVars(15);
6863 std::vector <AdmsSensFadType> staticContributions(10+0);
6864 std::vector <AdmsSensFadType> dynamicContributions(10+0);
6871 unordered_map <std::string,AdmsSensFadType*,HashNoCase,EqualNoCase> modParamMap;
6875 bool modelPar_given_TNOM=mod.
given(
"TNOM");
6876 modParamMap[
"TNOM"] = &modelPar_TNOM;
6878 bool modelPar_given_RCX=mod.
given(
"RCX");
6879 modParamMap[
"RCX"] = &modelPar_RCX;
6881 bool modelPar_given_RCI=mod.
given(
"RCI");
6882 modParamMap[
"RCI"] = &modelPar_RCI;
6884 bool modelPar_given_VO=mod.
given(
"VO");
6885 modParamMap[
"VO"] = &modelPar_VO;
6887 bool modelPar_given_GAMM=mod.
given(
"GAMM");
6888 modParamMap[
"GAMM"] = &modelPar_GAMM;
6890 bool modelPar_given_HRCF=mod.
given(
"HRCF");
6891 modParamMap[
"HRCF"] = &modelPar_HRCF;
6893 bool modelPar_given_RBX=mod.
given(
"RBX");
6894 modParamMap[
"RBX"] = &modelPar_RBX;
6896 bool modelPar_given_RBI=mod.
given(
"RBI");
6897 modParamMap[
"RBI"] = &modelPar_RBI;
6899 bool modelPar_given_RE=mod.
given(
"RE");
6900 modParamMap[
"RE"] = &modelPar_RE;
6902 bool modelPar_given_RS=mod.
given(
"RS");
6903 modParamMap[
"RS"] = &modelPar_RS;
6905 bool modelPar_given_RBP=mod.
given(
"RBP");
6906 modParamMap[
"RBP"] = &modelPar_RBP;
6908 bool modelPar_given_IS=mod.
given(
"IS");
6909 modParamMap[
"IS"] = &modelPar_IS;
6911 bool modelPar_given_NF=mod.
given(
"NF");
6912 modParamMap[
"NF"] = &modelPar_NF;
6914 bool modelPar_given_NR=mod.
given(
"NR");
6915 modParamMap[
"NR"] = &modelPar_NR;
6917 bool modelPar_given_FC=mod.
given(
"FC");
6918 modParamMap[
"FC"] = &modelPar_FC;
6920 bool modelPar_given_CBEO=mod.
given(
"CBEO");
6921 modParamMap[
"CBEO"] = &modelPar_CBEO;
6923 bool modelPar_given_CJE=mod.
given(
"CJE");
6924 modParamMap[
"CJE"] = &modelPar_CJE;
6926 bool modelPar_given_PE=mod.
given(
"PE");
6927 modParamMap[
"PE"] = &modelPar_PE;
6929 bool modelPar_given_ME=mod.
given(
"ME");
6930 modParamMap[
"ME"] = &modelPar_ME;
6932 bool modelPar_given_AJE=mod.
given(
"AJE");
6933 modParamMap[
"AJE"] = &modelPar_AJE;
6935 bool modelPar_given_CBCO=mod.
given(
"CBCO");
6936 modParamMap[
"CBCO"] = &modelPar_CBCO;
6938 bool modelPar_given_CJC=mod.
given(
"CJC");
6939 modParamMap[
"CJC"] = &modelPar_CJC;
6941 bool modelPar_given_QCO=mod.
given(
"QCO");
6942 modParamMap[
"QCO"] = &modelPar_QCO;
6944 bool modelPar_given_CJEP=mod.
given(
"CJEP");
6945 modParamMap[
"CJEP"] = &modelPar_CJEP;
6947 bool modelPar_given_PC=mod.
given(
"PC");
6948 modParamMap[
"PC"] = &modelPar_PC;
6950 bool modelPar_given_MC=mod.
given(
"MC");
6951 modParamMap[
"MC"] = &modelPar_MC;
6953 bool modelPar_given_AJC=mod.
given(
"AJC");
6954 modParamMap[
"AJC"] = &modelPar_AJC;
6956 bool modelPar_given_CJCP=mod.
given(
"CJCP");
6957 modParamMap[
"CJCP"] = &modelPar_CJCP;
6959 bool modelPar_given_PS=mod.
given(
"PS");
6960 modParamMap[
"PS"] = &modelPar_PS;
6962 bool modelPar_given_MS=mod.
given(
"MS");
6963 modParamMap[
"MS"] = &modelPar_MS;
6965 bool modelPar_given_AJS=mod.
given(
"AJS");
6966 modParamMap[
"AJS"] = &modelPar_AJS;
6968 bool modelPar_given_IBEI=mod.
given(
"IBEI");
6969 modParamMap[
"IBEI"] = &modelPar_IBEI;
6971 bool modelPar_given_WBE=mod.
given(
"WBE");
6972 modParamMap[
"WBE"] = &modelPar_WBE;
6974 bool modelPar_given_NEI=mod.
given(
"NEI");
6975 modParamMap[
"NEI"] = &modelPar_NEI;
6977 bool modelPar_given_IBEN=mod.
given(
"IBEN");
6978 modParamMap[
"IBEN"] = &modelPar_IBEN;
6980 bool modelPar_given_NEN=mod.
given(
"NEN");
6981 modParamMap[
"NEN"] = &modelPar_NEN;
6983 bool modelPar_given_IBCI=mod.
given(
"IBCI");
6984 modParamMap[
"IBCI"] = &modelPar_IBCI;
6986 bool modelPar_given_NCI=mod.
given(
"NCI");
6987 modParamMap[
"NCI"] = &modelPar_NCI;
6989 bool modelPar_given_IBCN=mod.
given(
"IBCN");
6990 modParamMap[
"IBCN"] = &modelPar_IBCN;
6992 bool modelPar_given_NCN=mod.
given(
"NCN");
6993 modParamMap[
"NCN"] = &modelPar_NCN;
6995 bool modelPar_given_AVC1=mod.
given(
"AVC1");
6996 modParamMap[
"AVC1"] = &modelPar_AVC1;
6998 bool modelPar_given_AVC2=mod.
given(
"AVC2");
6999 modParamMap[
"AVC2"] = &modelPar_AVC2;
7001 bool modelPar_given_ISP=mod.
given(
"ISP");
7002 modParamMap[
"ISP"] = &modelPar_ISP;
7004 bool modelPar_given_WSP=mod.
given(
"WSP");
7005 modParamMap[
"WSP"] = &modelPar_WSP;
7007 bool modelPar_given_NFP=mod.
given(
"NFP");
7008 modParamMap[
"NFP"] = &modelPar_NFP;
7010 bool modelPar_given_IBEIP=mod.
given(
"IBEIP");
7011 modParamMap[
"IBEIP"] = &modelPar_IBEIP;
7013 bool modelPar_given_IBENP=mod.
given(
"IBENP");
7014 modParamMap[
"IBENP"] = &modelPar_IBENP;
7016 bool modelPar_given_IBCIP=mod.
given(
"IBCIP");
7017 modParamMap[
"IBCIP"] = &modelPar_IBCIP;
7019 bool modelPar_given_NCIP=mod.
given(
"NCIP");
7020 modParamMap[
"NCIP"] = &modelPar_NCIP;
7022 bool modelPar_given_IBCNP=mod.
given(
"IBCNP");
7023 modParamMap[
"IBCNP"] = &modelPar_IBCNP;
7025 bool modelPar_given_NCNP=mod.
given(
"NCNP");
7026 modParamMap[
"NCNP"] = &modelPar_NCNP;
7028 bool modelPar_given_VEF=mod.
given(
"VEF");
7029 modParamMap[
"VEF"] = &modelPar_VEF;
7031 bool modelPar_given_VER=mod.
given(
"VER");
7032 modParamMap[
"VER"] = &modelPar_VER;
7034 bool modelPar_given_IKF=mod.
given(
"IKF");
7035 modParamMap[
"IKF"] = &modelPar_IKF;
7037 bool modelPar_given_IKR=mod.
given(
"IKR");
7038 modParamMap[
"IKR"] = &modelPar_IKR;
7040 bool modelPar_given_IKP=mod.
given(
"IKP");
7041 modParamMap[
"IKP"] = &modelPar_IKP;
7043 bool modelPar_given_TF=mod.
given(
"TF");
7044 modParamMap[
"TF"] = &modelPar_TF;
7046 bool modelPar_given_QTF=mod.
given(
"QTF");
7047 modParamMap[
"QTF"] = &modelPar_QTF;
7049 bool modelPar_given_XTF=mod.
given(
"XTF");
7050 modParamMap[
"XTF"] = &modelPar_XTF;
7052 bool modelPar_given_VTF=mod.
given(
"VTF");
7053 modParamMap[
"VTF"] = &modelPar_VTF;
7055 bool modelPar_given_ITF=mod.
given(
"ITF");
7056 modParamMap[
"ITF"] = &modelPar_ITF;
7058 bool modelPar_given_TR=mod.
given(
"TR");
7059 modParamMap[
"TR"] = &modelPar_TR;
7061 bool modelPar_given_TD=mod.
given(
"TD");
7062 modParamMap[
"TD"] = &modelPar_TD;
7064 bool modelPar_given_KFN=mod.
given(
"KFN");
7065 modParamMap[
"KFN"] = &modelPar_KFN;
7067 bool modelPar_given_AFN=mod.
given(
"AFN");
7068 modParamMap[
"AFN"] = &modelPar_AFN;
7070 bool modelPar_given_BFN=mod.
given(
"BFN");
7071 modParamMap[
"BFN"] = &modelPar_BFN;
7073 bool modelPar_given_XRE=mod.
given(
"XRE");
7074 modParamMap[
"XRE"] = &modelPar_XRE;
7076 bool modelPar_given_XRBI=mod.
given(
"XRBI");
7077 modParamMap[
"XRBI"] = &modelPar_XRBI;
7079 bool modelPar_given_XRCI=mod.
given(
"XRCI");
7080 modParamMap[
"XRCI"] = &modelPar_XRCI;
7082 bool modelPar_given_XRS=mod.
given(
"XRS");
7083 modParamMap[
"XRS"] = &modelPar_XRS;
7085 bool modelPar_given_XVO=mod.
given(
"XVO");
7086 modParamMap[
"XVO"] = &modelPar_XVO;
7088 bool modelPar_given_EA=mod.
given(
"EA");
7089 modParamMap[
"EA"] = &modelPar_EA;
7091 bool modelPar_given_EAIE=mod.
given(
"EAIE");
7092 modParamMap[
"EAIE"] = &modelPar_EAIE;
7094 bool modelPar_given_EAIC=mod.
given(
"EAIC");
7095 modParamMap[
"EAIC"] = &modelPar_EAIC;
7097 bool modelPar_given_EAIS=mod.
given(
"EAIS");
7098 modParamMap[
"EAIS"] = &modelPar_EAIS;
7100 bool modelPar_given_EANE=mod.
given(
"EANE");
7101 modParamMap[
"EANE"] = &modelPar_EANE;
7103 bool modelPar_given_EANC=mod.
given(
"EANC");
7104 modParamMap[
"EANC"] = &modelPar_EANC;
7106 bool modelPar_given_EANS=mod.
given(
"EANS");
7107 modParamMap[
"EANS"] = &modelPar_EANS;
7109 bool modelPar_given_XIS=mod.
given(
"XIS");
7110 modParamMap[
"XIS"] = &modelPar_XIS;
7112 bool modelPar_given_XII=mod.
given(
"XII");
7113 modParamMap[
"XII"] = &modelPar_XII;
7115 bool modelPar_given_XIN=mod.
given(
"XIN");
7116 modParamMap[
"XIN"] = &modelPar_XIN;
7118 bool modelPar_given_TNF=mod.
given(
"TNF");
7119 modParamMap[
"TNF"] = &modelPar_TNF;
7121 bool modelPar_given_TAVC=mod.
given(
"TAVC");
7122 modParamMap[
"TAVC"] = &modelPar_TAVC;
7124 bool modelPar_given_RTH=mod.
given(
"RTH");
7125 modParamMap[
"RTH"] = &modelPar_RTH;
7127 bool modelPar_given_CTH=mod.
given(
"CTH");
7128 modParamMap[
"CTH"] = &modelPar_CTH;
7130 bool modelPar_given_VRT=mod.
given(
"VRT");
7131 modParamMap[
"VRT"] = &modelPar_VRT;
7133 bool modelPar_given_ART=mod.
given(
"ART");
7134 modParamMap[
"ART"] = &modelPar_ART;
7136 bool modelPar_given_CCSO=mod.
given(
"CCSO");
7137 modParamMap[
"CCSO"] = &modelPar_CCSO;
7139 bool modelPar_given_QBM=mod.
given(
"QBM");
7140 modParamMap[
"QBM"] = &modelPar_QBM;
7142 bool modelPar_given_NKF=mod.
given(
"NKF");
7143 modParamMap[
"NKF"] = &modelPar_NKF;
7145 bool modelPar_given_XIKF=mod.
given(
"XIKF");
7146 modParamMap[
"XIKF"] = &modelPar_XIKF;
7148 bool modelPar_given_XRCX=mod.
given(
"XRCX");
7149 modParamMap[
"XRCX"] = &modelPar_XRCX;
7151 bool modelPar_given_XRBX=mod.
given(
"XRBX");
7152 modParamMap[
"XRBX"] = &modelPar_XRBX;
7154 bool modelPar_given_XRBP=mod.
given(
"XRBP");
7155 modParamMap[
"XRBP"] = &modelPar_XRBP;
7157 bool modelPar_given_ISRR=mod.
given(
"ISRR");
7158 modParamMap[
"ISRR"] = &modelPar_ISRR;
7160 bool modelPar_given_XISR=mod.
given(
"XISR");
7161 modParamMap[
"XISR"] = &modelPar_XISR;
7163 bool modelPar_given_DEAR=mod.
given(
"DEAR");
7164 modParamMap[
"DEAR"] = &modelPar_DEAR;
7166 bool modelPar_given_EAP=mod.
given(
"EAP");
7167 modParamMap[
"EAP"] = &modelPar_EAP;
7169 bool modelPar_given_VBBE=mod.
given(
"VBBE");
7170 modParamMap[
"VBBE"] = &modelPar_VBBE;
7172 bool modelPar_given_NBBE=mod.
given(
"NBBE");
7173 modParamMap[
"NBBE"] = &modelPar_NBBE;
7175 bool modelPar_given_IBBE=mod.
given(
"IBBE");
7176 modParamMap[
"IBBE"] = &modelPar_IBBE;
7178 bool modelPar_given_TVBBE1=mod.
given(
"TVBBE1");
7179 modParamMap[
"TVBBE1"] = &modelPar_TVBBE1;
7181 bool modelPar_given_TVBBE2=mod.
given(
"TVBBE2");
7182 modParamMap[
"TVBBE2"] = &modelPar_TVBBE2;
7184 bool modelPar_given_TNBBE=mod.
given(
"TNBBE");
7185 modParamMap[
"TNBBE"] = &modelPar_TNBBE;
7187 bool modelPar_given_EBBE=mod.
given(
"EBBE");
7188 modParamMap[
"EBBE"] = &modelPar_EBBE;
7190 bool modelPar_given_DTEMP=mod.
given(
"DTEMP");
7191 modParamMap[
"DTEMP"] = &modelPar_DTEMP;
7193 bool modelPar_given_VERS=mod.
given(
"VERS");
7194 modParamMap[
"VERS"] = &modelPar_VERS;
7196 bool modelPar_given_VREV=mod.
given(
"VREV");
7197 modParamMap[
"VREV"] = &modelPar_VREV;
7204 int modelPar_dtype=mod.
dtype;
7211 modParamMap[name]->diff(0,1);
7228 for (
int i=0; i < 10+0 ; ++i)
7230 staticContributions[i]=0;
7231 dynamicContributions[i]=0;
7239 bool instancePar_given_DTEMP=in.
given(
"DTEMP");
7246 int instancePar_M=in.
M;
7247 bool instancePar_given_M=in.
given(
"M");
7257 if (!(in.
given(
"DTEMP")))
7259 instancePar_DTEMP = modelPar_DTEMP;
7335 instancePar_given_DTEMP,
7338 instancePar_given_M,
7342 modelPar_given_TNOM,
7350 modelPar_given_GAMM,
7352 modelPar_given_HRCF,
7372 modelPar_given_CBEO,
7382 modelPar_given_CBCO,
7388 modelPar_given_CJEP,
7396 modelPar_given_CJCP,
7404 modelPar_given_IBEI,
7410 modelPar_given_IBEN,
7414 modelPar_given_IBCI,
7418 modelPar_given_IBCN,
7422 modelPar_given_AVC1,
7424 modelPar_given_AVC2,
7432 modelPar_given_IBEIP,
7434 modelPar_given_IBENP,
7436 modelPar_given_IBCIP,
7438 modelPar_given_NCIP,
7440 modelPar_given_IBCNP,
7442 modelPar_given_NCNP,
7476 modelPar_given_XRBI,
7478 modelPar_given_XRCI,
7486 modelPar_given_EAIE,
7488 modelPar_given_EAIC,
7490 modelPar_given_EAIS,
7492 modelPar_given_EANE,
7494 modelPar_given_EANC,
7496 modelPar_given_EANS,
7506 modelPar_given_TAVC,
7516 modelPar_given_CCSO,
7522 modelPar_given_XIKF,
7524 modelPar_given_XRCX,
7526 modelPar_given_XRBX,
7528 modelPar_given_XRBP,
7530 modelPar_given_ISRR,
7532 modelPar_given_XISR,
7534 modelPar_given_DEAR,
7538 modelPar_given_VBBE,
7540 modelPar_given_NBBE,
7542 modelPar_given_IBBE,
7544 modelPar_given_TVBBE1,
7546 modelPar_given_TVBBE2,
7548 modelPar_given_TNBBE,
7550 modelPar_given_EBBE,
7552 modelPar_given_DTEMP,
7554 modelPar_given_VERS,
7556 modelPar_given_VREV,
7562 staticContributions,
7563 dynamicContributions,
const InstanceName & getName() const
double * f_ei_Equ_bi_Node_Ptr
double * q_b_Equ_c_Node_Ptr
double * f_b_Equ_b_Node_Ptr
double * f_ei_Equ_ci_Node_Ptr
double * f_bp_Equ_cx_Node_Ptr
double * q_ei_Equ_dt_Node_Ptr
double * q_bi_Equ_cx_Node_Ptr
double * q_bp_Equ_bx_Node_Ptr
static T adms_vt(const T temp)
bool updateDependentParameters()
std::vector< double > Jdxp_dynamic
int li_state_admsProbeID_V_b_e
void registerLIDs(const LocalIdVector &intLIDVecRef, const LocalIdVector &extLIDVecRef)
double * f_cx_Equ_bp_Node_Ptr
double * q_cx_Equ_bi_Node_Ptr
double * f_bp_Equ_bi_Node_Ptr
const SolverState & solverState_
double * q_dt_Equ_b_Node_Ptr
double * f_dt_Equ_bi_Node_Ptr
static const int admsNodeID_b
Descriptor & addPar(const char *parName, T default_value, T U::*varPtr)
Adds the parameter description to the parameter map.
double * q_b_Equ_bx_Node_Ptr
double pnjlim_new(double vnew, double vold, double vt, double vcrit, int *icheck)
double * q_bi_Equ_ci_Node_Ptr
double * q_ei_Equ_ei_Node_Ptr
double * dFdxdVpVectorRawPtr
bool updatePrimaryState()
Linear::Vector * nextSolVectorPtr
double * q_cx_Equ_bp_Node_Ptr
bool processParams()
processParams
std::vector< int > devConMap
static const int admsProbeID_V_ci_ei
bool given(const std::string ¶meter_name) const
Linear::Vector * daeQVectorPtr
double * f_c_Equ_dt_Node_Ptr
static InstanceSensitivity instSens
double * q_ci_Equ_dt_Node_Ptr
Pure virtual class to augment a linear system.
double * q_bp_Equ_dt_Node_Ptr
double * q_bi_Equ_dt_Node_Ptr
double * f_bp_Equ_dt_Node_Ptr
double * q_bx_Equ_bp_Node_Ptr
double * f_b_Equ_c_Node_Ptr
static const int admsNodeID_cx
void addInternalNode(Util::SymbolTable &symbol_table, int index, const InstanceName &instance_name, const std::string &lead_name)
static const int admsProbeID_V_bp_cx
double * q_b_Equ_b_Node_Ptr
double * f_bp_Equ_bx_Node_Ptr
double * f_ci_Equ_bi_Node_Ptr
static const int admsProbeID_V_c_cx
double * f_dt_Equ_bp_Node_Ptr
static ModelSensitivity modSens
double * q_dt_Equ_ci_Node_Ptr
double * f_cx_Equ_bi_Node_Ptr
bool updateSecondaryState()
double * f_ci_Equ_cx_Node_Ptr
double * f_e_Equ_ei_Node_Ptr
double * f_bi_Equ_ci_Node_Ptr
static const int admsProbeID_V_bi_ei
Base class for all parameters.
double * q_c_Equ_b_Node_Ptr
double * q_dt_Equ_bi_Node_Ptr
double * f_bi_Equ_ei_Node_Ptr
double * q_e_Equ_dt_Node_Ptr
Parameter is subject to being set to minimum junction capacitance.
double * f_dt_Equ_e_Node_Ptr
void jacStampMap_fixOrder(const JacobianStamp &stamp_parent, JacobianStamp &map2_parent, JacobianStamp &stamp, JacobianStamp &map2)
virtual void registerJacLIDs(const JacobianStamp &jacLIDVec)
double * f_e_Equ_b_Node_Ptr
Parameter is subject to being set to minimum lead resistance.
bool updateIntermediateVars()
double * q_bp_Equ_cx_Node_Ptr
std::vector< AdmsFadType > staticContributions
static void loadModelParameters(ParametricData< Model > &model_parameters)
double * f_ei_Equ_e_Node_Ptr
double * f_dt_Equ_cx_Node_Ptr
virtual void forEachInstance(DeviceInstanceOp &op) const
Apply a device instance "op" to all instances associated with this model.
double * f_b_Equ_e_Node_Ptr
Instance(const Configuration &configuration, const InstanceBlock &instance_block, Model &model, const FactoryBlock &factory_block)
double * q_bx_Equ_bi_Node_Ptr
double * f_ei_Equ_bx_Node_Ptr
double * q_dt_Equ_dt_Node_Ptr
double * f_cx_Equ_dt_Node_Ptr
double * f_cx_Equ_ci_Node_Ptr
int li_state_admsProbeID_V_bx_ei
static const int admsNodeID_dt
double * q_bi_Equ_ei_Node_Ptr
double * q_bx_Equ_bx_Node_Ptr
std::vector< Param > params
Parameters from the line.
double * f_ci_Equ_ei_Node_Ptr
static const int admsProbeID_V_dt_GND
double * q_ei_Equ_e_Node_Ptr
std::vector< std::vector< int > > jacMap2
double * f_dt_Equ_b_Node_Ptr
void setParams(const std::vector< Param > ¶ms)
void evaluateInitialInstance(AdmsSensFadType &instancePar_DTEMP, bool instancePar_given_DTEMP, int instancePar_M, bool instancePar_given_M, AdmsSensFadType &modelPar_TNOM, bool modelPar_given_TNOM, AdmsSensFadType &modelPar_RCX, bool modelPar_given_RCX, AdmsSensFadType &modelPar_RCI, bool modelPar_given_RCI, AdmsSensFadType &modelPar_VO, bool modelPar_given_VO, AdmsSensFadType &modelPar_GAMM, bool modelPar_given_GAMM, AdmsSensFadType &modelPar_HRCF, bool modelPar_given_HRCF, AdmsSensFadType &modelPar_RBX, bool modelPar_given_RBX, AdmsSensFadType &modelPar_RBI, bool modelPar_given_RBI, AdmsSensFadType &modelPar_RE, bool modelPar_given_RE, AdmsSensFadType &modelPar_RS, bool modelPar_given_RS, AdmsSensFadType &modelPar_RBP, bool modelPar_given_RBP, AdmsSensFadType &modelPar_IS, bool modelPar_given_IS, AdmsSensFadType &modelPar_NF, bool modelPar_given_NF, AdmsSensFadType &modelPar_NR, bool modelPar_given_NR, AdmsSensFadType &modelPar_FC, bool modelPar_given_FC, AdmsSensFadType &modelPar_CBEO, bool modelPar_given_CBEO, AdmsSensFadType &modelPar_CJE, bool modelPar_given_CJE, AdmsSensFadType &modelPar_PE, bool modelPar_given_PE, AdmsSensFadType &modelPar_ME, bool modelPar_given_ME, AdmsSensFadType &modelPar_AJE, bool modelPar_given_AJE, AdmsSensFadType &modelPar_CBCO, bool modelPar_given_CBCO, AdmsSensFadType &modelPar_CJC, bool modelPar_given_CJC, AdmsSensFadType &modelPar_QCO, bool modelPar_given_QCO, AdmsSensFadType &modelPar_CJEP, bool modelPar_given_CJEP, AdmsSensFadType &modelPar_PC, bool modelPar_given_PC, AdmsSensFadType &modelPar_MC, bool modelPar_given_MC, AdmsSensFadType &modelPar_AJC, bool modelPar_given_AJC, AdmsSensFadType &modelPar_CJCP, bool modelPar_given_CJCP, AdmsSensFadType &modelPar_PS, bool modelPar_given_PS, AdmsSensFadType &modelPar_MS, bool modelPar_given_MS, AdmsSensFadType &modelPar_AJS, bool modelPar_given_AJS, AdmsSensFadType &modelPar_IBEI, bool modelPar_given_IBEI, AdmsSensFadType &modelPar_WBE, bool modelPar_given_WBE, AdmsSensFadType &modelPar_NEI, bool modelPar_given_NEI, AdmsSensFadType &modelPar_IBEN, bool modelPar_given_IBEN, AdmsSensFadType &modelPar_NEN, bool modelPar_given_NEN, AdmsSensFadType &modelPar_IBCI, bool modelPar_given_IBCI, AdmsSensFadType &modelPar_NCI, bool modelPar_given_NCI, AdmsSensFadType &modelPar_IBCN, bool modelPar_given_IBCN, AdmsSensFadType &modelPar_NCN, bool modelPar_given_NCN, AdmsSensFadType &modelPar_AVC1, bool modelPar_given_AVC1, AdmsSensFadType &modelPar_AVC2, bool modelPar_given_AVC2, AdmsSensFadType &modelPar_ISP, bool modelPar_given_ISP, AdmsSensFadType &modelPar_WSP, bool modelPar_given_WSP, AdmsSensFadType &modelPar_NFP, bool modelPar_given_NFP, AdmsSensFadType &modelPar_IBEIP, bool modelPar_given_IBEIP, AdmsSensFadType &modelPar_IBENP, bool modelPar_given_IBENP, AdmsSensFadType &modelPar_IBCIP, bool modelPar_given_IBCIP, AdmsSensFadType &modelPar_NCIP, bool modelPar_given_NCIP, AdmsSensFadType &modelPar_IBCNP, bool modelPar_given_IBCNP, AdmsSensFadType &modelPar_NCNP, bool modelPar_given_NCNP, AdmsSensFadType &modelPar_VEF, bool modelPar_given_VEF, AdmsSensFadType &modelPar_VER, bool modelPar_given_VER, AdmsSensFadType &modelPar_IKF, bool modelPar_given_IKF, AdmsSensFadType &modelPar_IKR, bool modelPar_given_IKR, AdmsSensFadType &modelPar_IKP, bool modelPar_given_IKP, AdmsSensFadType &modelPar_TF, bool modelPar_given_TF, AdmsSensFadType &modelPar_QTF, bool modelPar_given_QTF, AdmsSensFadType &modelPar_XTF, bool modelPar_given_XTF, AdmsSensFadType &modelPar_VTF, bool modelPar_given_VTF, AdmsSensFadType &modelPar_ITF, bool modelPar_given_ITF, AdmsSensFadType &modelPar_TR, bool modelPar_given_TR, AdmsSensFadType &modelPar_TD, bool modelPar_given_TD, AdmsSensFadType &modelPar_KFN, bool modelPar_given_KFN, AdmsSensFadType &modelPar_AFN, bool modelPar_given_AFN, AdmsSensFadType &modelPar_BFN, bool modelPar_given_BFN, AdmsSensFadType &modelPar_XRE, bool modelPar_given_XRE, AdmsSensFadType &modelPar_XRBI, bool modelPar_given_XRBI, AdmsSensFadType &modelPar_XRCI, bool modelPar_given_XRCI, AdmsSensFadType &modelPar_XRS, bool modelPar_given_XRS, AdmsSensFadType &modelPar_XVO, bool modelPar_given_XVO, AdmsSensFadType &modelPar_EA, bool modelPar_given_EA, AdmsSensFadType &modelPar_EAIE, bool modelPar_given_EAIE, AdmsSensFadType &modelPar_EAIC, bool modelPar_given_EAIC, AdmsSensFadType &modelPar_EAIS, bool modelPar_given_EAIS, AdmsSensFadType &modelPar_EANE, bool modelPar_given_EANE, AdmsSensFadType &modelPar_EANC, bool modelPar_given_EANC, AdmsSensFadType &modelPar_EANS, bool modelPar_given_EANS, AdmsSensFadType &modelPar_XIS, bool modelPar_given_XIS, AdmsSensFadType &modelPar_XII, bool modelPar_given_XII, AdmsSensFadType &modelPar_XIN, bool modelPar_given_XIN, AdmsSensFadType &modelPar_TNF, bool modelPar_given_TNF, AdmsSensFadType &modelPar_TAVC, bool modelPar_given_TAVC, AdmsSensFadType &modelPar_RTH, bool modelPar_given_RTH, AdmsSensFadType &modelPar_CTH, bool modelPar_given_CTH, AdmsSensFadType &modelPar_VRT, bool modelPar_given_VRT, AdmsSensFadType &modelPar_ART, bool modelPar_given_ART, AdmsSensFadType &modelPar_CCSO, bool modelPar_given_CCSO, AdmsSensFadType &modelPar_QBM, bool modelPar_given_QBM, AdmsSensFadType &modelPar_NKF, bool modelPar_given_NKF, AdmsSensFadType &modelPar_XIKF, bool modelPar_given_XIKF, AdmsSensFadType &modelPar_XRCX, bool modelPar_given_XRCX, AdmsSensFadType &modelPar_XRBX, bool modelPar_given_XRBX, AdmsSensFadType &modelPar_XRBP, bool modelPar_given_XRBP, AdmsSensFadType &modelPar_ISRR, bool modelPar_given_ISRR, AdmsSensFadType &modelPar_XISR, bool modelPar_given_XISR, AdmsSensFadType &modelPar_DEAR, bool modelPar_given_DEAR, AdmsSensFadType &modelPar_EAP, bool modelPar_given_EAP, AdmsSensFadType &modelPar_VBBE, bool modelPar_given_VBBE, AdmsSensFadType &modelPar_NBBE, bool modelPar_given_NBBE, AdmsSensFadType &modelPar_IBBE, bool modelPar_given_IBBE, AdmsSensFadType &modelPar_TVBBE1, bool modelPar_given_TVBBE1, AdmsSensFadType &modelPar_TVBBE2, bool modelPar_given_TVBBE2, AdmsSensFadType &modelPar_TNBBE, bool modelPar_given_TNBBE, AdmsSensFadType &modelPar_EBBE, bool modelPar_given_EBBE, AdmsSensFadType &modelPar_DTEMP, bool modelPar_given_DTEMP, AdmsSensFadType &modelPar_VERS, bool modelPar_given_VERS, AdmsSensFadType &modelPar_VREV, bool modelPar_given_VREV, int modelPar_dtype, double admsTemperature)
const std::string & getName() const
double * q_cx_Equ_cx_Node_Ptr
double * f_dt_Equ_c_Node_Ptr
The FactoryBlock contains parameters needed by the device, instance and model creation functions...
double * f_bp_Equ_bp_Node_Ptr
int li_state_admsProbeID_V_bx_bp
double * f_dt_Equ_ei_Node_Ptr
double * f_dt_Equ_dt_Node_Ptr
Sacado::Fad::SFad< double, 1 > AdmsSensFadType
void registerJacLIDs(const JacobianStamp &jacLIDVec)
double * q_c_Equ_dt_Node_Ptr
const DeviceOptions & getDeviceOptions() const
static void loadInstanceParameters(ParametricData< Instance > &instance_parameters)
double * f_bx_Equ_bx_Node_Ptr
Parameter is not to be documented.
static const int admsProbeID_V_b_bx
double * q_e_Equ_ei_Node_Ptr
const DeviceOptions & deviceOptions_
std::vector< std::vector< int > > JacobianStamp
double * f_bi_Equ_cx_Node_Ptr
double * q_b_Equ_e_Node_Ptr
double * q_bp_Equ_bi_Node_Ptr
static const int admsProbeID_V_bx_bp
Linear::Vector * nextStaVectorPtr
static Config< T > & addConfiguration()
Adds the device to the Xyce device configuration.
static const int admsProbeID_V_b_c
Model(const Configuration &configuration, const ModelBlock &model_block, const FactoryBlock &factory_block)
double * f_bp_Equ_ci_Node_Ptr
Linear::Matrix * dFdxMatrixPtr
double * q_dt_Equ_c_Node_Ptr
double * q_bx_Equ_ei_Node_Ptr
double * q_dt_Equ_ei_Node_Ptr
ScalarT limRTH(ScalarT orig, ScalarT old)
double * q_ci_Equ_bi_Node_Ptr
The Device class is an interface for device implementations.
double * q_bp_Equ_bp_Node_Ptr
double * f_cx_Equ_bx_Node_Ptr
double * q_bp_Equ_ci_Node_Ptr
double * q_ei_Equ_bx_Node_Ptr
void loadNodeSymbols(Util::SymbolTable &symbol_table) const
Populates and returns the store name map.
int li_state_admsProbeID_V_bi_cx
double * q_dt_Equ_bp_Node_Ptr
std::vector< double > probeDiffs
static const int admsNodeID_bi
Sacado::Fad::SFad< double, 15 > AdmsFadType
static const int admsProbeID_V_bi_cx
static const int admsNodeID_e
int li_state_admsProbeID_V_dt_GND
double * q_ei_Equ_ci_Node_Ptr
static const int admsNodeID_bx
std::vector< AdmsFadType > probeVars
double * dQdxdVpVectorRawPtr
Class Configuration contains device configuration data.
double * f_ci_Equ_dt_Node_Ptr
double * f_b_Equ_dt_Node_Ptr
bool processInstanceParams()
processInstanceParams
int li_state_admsProbeID_V_bi_ei
const JacobianStamp & jacobianStamp() const
double * f_ei_Equ_dt_Node_Ptr
std::vector< double > Jdxp_static
double * f_cx_Equ_c_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_cx_Equ_ci_Node_Ptr
static const int admsNodeID_c
const SolverState & getSolverState() const
double * f_ci_Equ_ci_Node_Ptr
double * q_ci_Equ_ci_Node_Ptr
double * q_dt_Equ_e_Node_Ptr
double * f_bx_Equ_bp_Node_Ptr
double * f_bi_Equ_dt_Node_Ptr
std::vector< Instance * > instanceContainer
void registerStateLIDs(const LocalIdVector &staLIDVecRef)
static const int admsProbeID_V_cx_ci
virtual std::ostream & printOutInstances(std::ostream &os) const
double * q_b_Equ_dt_Node_Ptr
double * q_bx_Equ_b_Node_Ptr
static Device * factory(const Configuration &configuration, const FactoryBlock &factory_block)
Linear::Vector * currStaVectorPtr
static const int admsProbeID_V_e_ei
double * nextStaVectorRawPtr
double * q_bi_Equ_bi_Node_Ptr
Linear::Vector * daeFVectorPtr
double * f_e_Equ_e_Node_Ptr
double * f_dt_Equ_ci_Node_Ptr
double * q_ci_Equ_ei_Node_Ptr
double * f_bx_Equ_dt_Node_Ptr
const std::string & getType() const
double * q_bx_Equ_ci_Node_Ptr
double * q_cx_Equ_bx_Node_Ptr
double * f_c_Equ_cx_Node_Ptr
std::vector< AdmsFadType > dynamicContributions
double * q_cx_Equ_dt_Node_Ptr
double * q_bx_Equ_dt_Node_Ptr
static const int admsNodeID_ci
double * f_ei_Equ_ei_Node_Ptr
double * q_e_Equ_e_Node_Ptr
double * q_ei_Equ_bi_Node_Ptr
double * f_bi_Equ_bx_Node_Ptr
double * q_c_Equ_cx_Node_Ptr
static const int admsProbeID_V_bi_ci
const ExternData & extData
double * f_c_Equ_c_Node_Ptr
ModelBlock represents a .MODEL line from the netlist.
double * q_c_Equ_c_Node_Ptr
double * f_e_Equ_dt_Node_Ptr
double * q_dt_Equ_bx_Node_Ptr
Manages parameter binding for class C.
double * f_bx_Equ_b_Node_Ptr
InstanceBlock represent a device instance line from the netlist.
double * q_e_Equ_b_Node_Ptr
static const int admsProbeID_V_bx_ei
double * f_bi_Equ_bi_Node_Ptr
std::vector< Param > params
static const int admsNodeID_bp
bool updateTemperature(const double &temp=-999.0)
double * f_b_Equ_bx_Node_Ptr
double * f_c_Equ_b_Node_Ptr
double * f_cx_Equ_cx_Node_Ptr
Linear::Matrix * dQdxMatrixPtr
double * f_dt_Equ_bx_Node_Ptr
double * f_bx_Equ_ci_Node_Ptr
double * f_bx_Equ_ei_Node_Ptr
double * q_bi_Equ_bx_Node_Ptr
int li_state_admsProbeID_V_bi_ci
double * q_ci_Equ_cx_Node_Ptr
double * q_cx_Equ_c_Node_Ptr
Linear::Vector * flagSolVectorPtr
static const int admsNodeID_ei
static const int admsProbeID_V_b_e
std::vector< int > jacMap
std::vector< std::vector< int > > jacStamp
void setModParams(const std::vector< Param > ¶ms)
void evaluateModelEquations(std::vector< double > &probeVars, const int admsProbeID_V_ci_ei, const int admsProbeID_V_b_c, const int admsProbeID_V_bp_cx, const int admsProbeID_V_e_ei, const int admsProbeID_V_b_bx, const int admsProbeID_V_bx_bi, const int admsProbeID_V_cx_ci, const int admsProbeID_V_c_cx, const int admsProbeID_V_b_e, const int admsProbeID_V_dt_GND, const int admsProbeID_V_bx_bp, const int admsProbeID_V_bi_cx, const int admsProbeID_V_bx_ei, const int admsProbeID_V_bi_ci, const int admsProbeID_V_bi_ei, const int admsNodeID_c, const int admsNodeID_b, const int admsNodeID_e, const int admsNodeID_dt, const int admsNodeID_cx, const int admsNodeID_ci, const int admsNodeID_bx, const int admsNodeID_bi, const int admsNodeID_ei, const int admsNodeID_bp, AdmsSensFadType &instancePar_DTEMP, bool instancePar_given_DTEMP, int instancePar_M, bool instancePar_given_M, AdmsSensFadType &modelPar_TNOM, bool modelPar_given_TNOM, AdmsSensFadType &modelPar_RCX, bool modelPar_given_RCX, AdmsSensFadType &modelPar_RCI, bool modelPar_given_RCI, AdmsSensFadType &modelPar_VO, bool modelPar_given_VO, AdmsSensFadType &modelPar_GAMM, bool modelPar_given_GAMM, AdmsSensFadType &modelPar_HRCF, bool modelPar_given_HRCF, AdmsSensFadType &modelPar_RBX, bool modelPar_given_RBX, AdmsSensFadType &modelPar_RBI, bool modelPar_given_RBI, AdmsSensFadType &modelPar_RE, bool modelPar_given_RE, AdmsSensFadType &modelPar_RS, bool modelPar_given_RS, AdmsSensFadType &modelPar_RBP, bool modelPar_given_RBP, AdmsSensFadType &modelPar_IS, bool modelPar_given_IS, AdmsSensFadType &modelPar_NF, bool modelPar_given_NF, AdmsSensFadType &modelPar_NR, bool modelPar_given_NR, AdmsSensFadType &modelPar_FC, bool modelPar_given_FC, AdmsSensFadType &modelPar_CBEO, bool modelPar_given_CBEO, AdmsSensFadType &modelPar_CJE, bool modelPar_given_CJE, AdmsSensFadType &modelPar_PE, bool modelPar_given_PE, AdmsSensFadType &modelPar_ME, bool modelPar_given_ME, AdmsSensFadType &modelPar_AJE, bool modelPar_given_AJE, AdmsSensFadType &modelPar_CBCO, bool modelPar_given_CBCO, AdmsSensFadType &modelPar_CJC, bool modelPar_given_CJC, AdmsSensFadType &modelPar_QCO, bool modelPar_given_QCO, AdmsSensFadType &modelPar_CJEP, bool modelPar_given_CJEP, AdmsSensFadType &modelPar_PC, bool modelPar_given_PC, AdmsSensFadType &modelPar_MC, bool modelPar_given_MC, AdmsSensFadType &modelPar_AJC, bool modelPar_given_AJC, AdmsSensFadType &modelPar_CJCP, bool modelPar_given_CJCP, AdmsSensFadType &modelPar_PS, bool modelPar_given_PS, AdmsSensFadType &modelPar_MS, bool modelPar_given_MS, AdmsSensFadType &modelPar_AJS, bool modelPar_given_AJS, AdmsSensFadType &modelPar_IBEI, bool modelPar_given_IBEI, AdmsSensFadType &modelPar_WBE, bool modelPar_given_WBE, AdmsSensFadType &modelPar_NEI, bool modelPar_given_NEI, AdmsSensFadType &modelPar_IBEN, bool modelPar_given_IBEN, AdmsSensFadType &modelPar_NEN, bool modelPar_given_NEN, AdmsSensFadType &modelPar_IBCI, bool modelPar_given_IBCI, AdmsSensFadType &modelPar_NCI, bool modelPar_given_NCI, AdmsSensFadType &modelPar_IBCN, bool modelPar_given_IBCN, AdmsSensFadType &modelPar_NCN, bool modelPar_given_NCN, AdmsSensFadType &modelPar_AVC1, bool modelPar_given_AVC1, AdmsSensFadType &modelPar_AVC2, bool modelPar_given_AVC2, AdmsSensFadType &modelPar_ISP, bool modelPar_given_ISP, AdmsSensFadType &modelPar_WSP, bool modelPar_given_WSP, AdmsSensFadType &modelPar_NFP, bool modelPar_given_NFP, AdmsSensFadType &modelPar_IBEIP, bool modelPar_given_IBEIP, AdmsSensFadType &modelPar_IBENP, bool modelPar_given_IBENP, AdmsSensFadType &modelPar_IBCIP, bool modelPar_given_IBCIP, AdmsSensFadType &modelPar_NCIP, bool modelPar_given_NCIP, AdmsSensFadType &modelPar_IBCNP, bool modelPar_given_IBCNP, AdmsSensFadType &modelPar_NCNP, bool modelPar_given_NCNP, AdmsSensFadType &modelPar_VEF, bool modelPar_given_VEF, AdmsSensFadType &modelPar_VER, bool modelPar_given_VER, AdmsSensFadType &modelPar_IKF, bool modelPar_given_IKF, AdmsSensFadType &modelPar_IKR, bool modelPar_given_IKR, AdmsSensFadType &modelPar_IKP, bool modelPar_given_IKP, AdmsSensFadType &modelPar_TF, bool modelPar_given_TF, AdmsSensFadType &modelPar_QTF, bool modelPar_given_QTF, AdmsSensFadType &modelPar_XTF, bool modelPar_given_XTF, AdmsSensFadType &modelPar_VTF, bool modelPar_given_VTF, AdmsSensFadType &modelPar_ITF, bool modelPar_given_ITF, AdmsSensFadType &modelPar_TR, bool modelPar_given_TR, AdmsSensFadType &modelPar_TD, bool modelPar_given_TD, AdmsSensFadType &modelPar_KFN, bool modelPar_given_KFN, AdmsSensFadType &modelPar_AFN, bool modelPar_given_AFN, AdmsSensFadType &modelPar_BFN, bool modelPar_given_BFN, AdmsSensFadType &modelPar_XRE, bool modelPar_given_XRE, AdmsSensFadType &modelPar_XRBI, bool modelPar_given_XRBI, AdmsSensFadType &modelPar_XRCI, bool modelPar_given_XRCI, AdmsSensFadType &modelPar_XRS, bool modelPar_given_XRS, AdmsSensFadType &modelPar_XVO, bool modelPar_given_XVO, AdmsSensFadType &modelPar_EA, bool modelPar_given_EA, AdmsSensFadType &modelPar_EAIE, bool modelPar_given_EAIE, AdmsSensFadType &modelPar_EAIC, bool modelPar_given_EAIC, AdmsSensFadType &modelPar_EAIS, bool modelPar_given_EAIS, AdmsSensFadType &modelPar_EANE, bool modelPar_given_EANE, AdmsSensFadType &modelPar_EANC, bool modelPar_given_EANC, AdmsSensFadType &modelPar_EANS, bool modelPar_given_EANS, AdmsSensFadType &modelPar_XIS, bool modelPar_given_XIS, AdmsSensFadType &modelPar_XII, bool modelPar_given_XII, AdmsSensFadType &modelPar_XIN, bool modelPar_given_XIN, AdmsSensFadType &modelPar_TNF, bool modelPar_given_TNF, AdmsSensFadType &modelPar_TAVC, bool modelPar_given_TAVC, AdmsSensFadType &modelPar_RTH, bool modelPar_given_RTH, AdmsSensFadType &modelPar_CTH, bool modelPar_given_CTH, AdmsSensFadType &modelPar_VRT, bool modelPar_given_VRT, AdmsSensFadType &modelPar_ART, bool modelPar_given_ART, AdmsSensFadType &modelPar_CCSO, bool modelPar_given_CCSO, AdmsSensFadType &modelPar_QBM, bool modelPar_given_QBM, AdmsSensFadType &modelPar_NKF, bool modelPar_given_NKF, AdmsSensFadType &modelPar_XIKF, bool modelPar_given_XIKF, AdmsSensFadType &modelPar_XRCX, bool modelPar_given_XRCX, AdmsSensFadType &modelPar_XRBX, bool modelPar_given_XRBX, AdmsSensFadType &modelPar_XRBP, bool modelPar_given_XRBP, AdmsSensFadType &modelPar_ISRR, bool modelPar_given_ISRR, AdmsSensFadType &modelPar_XISR, bool modelPar_given_XISR, AdmsSensFadType &modelPar_DEAR, bool modelPar_given_DEAR, AdmsSensFadType &modelPar_EAP, bool modelPar_given_EAP, AdmsSensFadType &modelPar_VBBE, bool modelPar_given_VBBE, AdmsSensFadType &modelPar_NBBE, bool modelPar_given_NBBE, AdmsSensFadType &modelPar_IBBE, bool modelPar_given_IBBE, AdmsSensFadType &modelPar_TVBBE1, bool modelPar_given_TVBBE1, AdmsSensFadType &modelPar_TVBBE2, bool modelPar_given_TVBBE2, AdmsSensFadType &modelPar_TNBBE, bool modelPar_given_TNBBE, AdmsSensFadType &modelPar_EBBE, bool modelPar_given_EBBE, AdmsSensFadType &modelPar_DTEMP, bool modelPar_given_DTEMP, AdmsSensFadType &modelPar_VERS, bool modelPar_given_VERS, AdmsSensFadType &modelPar_VREV, bool modelPar_given_VREV, int modelPar_dtype, double admsTemperature, double adms_vt_nom, double gmin, std::vector< AdmsSensFadType > &staticContributions, std::vector< AdmsSensFadType > &dynamicContributions, const Instance &theInstance)
double * f_bx_Equ_bi_Node_Ptr
double * q_dt_Equ_cx_Node_Ptr
static const int admsProbeID_V_bx_bi
void evaluateInitialModel(AdmsSensFadType &modelPar_TNOM, bool modelPar_given_TNOM, AdmsSensFadType &modelPar_RCX, bool modelPar_given_RCX, AdmsSensFadType &modelPar_RCI, bool modelPar_given_RCI, AdmsSensFadType &modelPar_VO, bool modelPar_given_VO, AdmsSensFadType &modelPar_GAMM, bool modelPar_given_GAMM, AdmsSensFadType &modelPar_HRCF, bool modelPar_given_HRCF, AdmsSensFadType &modelPar_RBX, bool modelPar_given_RBX, AdmsSensFadType &modelPar_RBI, bool modelPar_given_RBI, AdmsSensFadType &modelPar_RE, bool modelPar_given_RE, AdmsSensFadType &modelPar_RS, bool modelPar_given_RS, AdmsSensFadType &modelPar_RBP, bool modelPar_given_RBP, AdmsSensFadType &modelPar_IS, bool modelPar_given_IS, AdmsSensFadType &modelPar_NF, bool modelPar_given_NF, AdmsSensFadType &modelPar_NR, bool modelPar_given_NR, AdmsSensFadType &modelPar_FC, bool modelPar_given_FC, AdmsSensFadType &modelPar_CBEO, bool modelPar_given_CBEO, AdmsSensFadType &modelPar_CJE, bool modelPar_given_CJE, AdmsSensFadType &modelPar_PE, bool modelPar_given_PE, AdmsSensFadType &modelPar_ME, bool modelPar_given_ME, AdmsSensFadType &modelPar_AJE, bool modelPar_given_AJE, AdmsSensFadType &modelPar_CBCO, bool modelPar_given_CBCO, AdmsSensFadType &modelPar_CJC, bool modelPar_given_CJC, AdmsSensFadType &modelPar_QCO, bool modelPar_given_QCO, AdmsSensFadType &modelPar_CJEP, bool modelPar_given_CJEP, AdmsSensFadType &modelPar_PC, bool modelPar_given_PC, AdmsSensFadType &modelPar_MC, bool modelPar_given_MC, AdmsSensFadType &modelPar_AJC, bool modelPar_given_AJC, AdmsSensFadType &modelPar_CJCP, bool modelPar_given_CJCP, AdmsSensFadType &modelPar_PS, bool modelPar_given_PS, AdmsSensFadType &modelPar_MS, bool modelPar_given_MS, AdmsSensFadType &modelPar_AJS, bool modelPar_given_AJS, AdmsSensFadType &modelPar_IBEI, bool modelPar_given_IBEI, AdmsSensFadType &modelPar_WBE, bool modelPar_given_WBE, AdmsSensFadType &modelPar_NEI, bool modelPar_given_NEI, AdmsSensFadType &modelPar_IBEN, bool modelPar_given_IBEN, AdmsSensFadType &modelPar_NEN, bool modelPar_given_NEN, AdmsSensFadType &modelPar_IBCI, bool modelPar_given_IBCI, AdmsSensFadType &modelPar_NCI, bool modelPar_given_NCI, AdmsSensFadType &modelPar_IBCN, bool modelPar_given_IBCN, AdmsSensFadType &modelPar_NCN, bool modelPar_given_NCN, AdmsSensFadType &modelPar_AVC1, bool modelPar_given_AVC1, AdmsSensFadType &modelPar_AVC2, bool modelPar_given_AVC2, AdmsSensFadType &modelPar_ISP, bool modelPar_given_ISP, AdmsSensFadType &modelPar_WSP, bool modelPar_given_WSP, AdmsSensFadType &modelPar_NFP, bool modelPar_given_NFP, AdmsSensFadType &modelPar_IBEIP, bool modelPar_given_IBEIP, AdmsSensFadType &modelPar_IBENP, bool modelPar_given_IBENP, AdmsSensFadType &modelPar_IBCIP, bool modelPar_given_IBCIP, AdmsSensFadType &modelPar_NCIP, bool modelPar_given_NCIP, AdmsSensFadType &modelPar_IBCNP, bool modelPar_given_IBCNP, AdmsSensFadType &modelPar_NCNP, bool modelPar_given_NCNP, AdmsSensFadType &modelPar_VEF, bool modelPar_given_VEF, AdmsSensFadType &modelPar_VER, bool modelPar_given_VER, AdmsSensFadType &modelPar_IKF, bool modelPar_given_IKF, AdmsSensFadType &modelPar_IKR, bool modelPar_given_IKR, AdmsSensFadType &modelPar_IKP, bool modelPar_given_IKP, AdmsSensFadType &modelPar_TF, bool modelPar_given_TF, AdmsSensFadType &modelPar_QTF, bool modelPar_given_QTF, AdmsSensFadType &modelPar_XTF, bool modelPar_given_XTF, AdmsSensFadType &modelPar_VTF, bool modelPar_given_VTF, AdmsSensFadType &modelPar_ITF, bool modelPar_given_ITF, AdmsSensFadType &modelPar_TR, bool modelPar_given_TR, AdmsSensFadType &modelPar_TD, bool modelPar_given_TD, AdmsSensFadType &modelPar_KFN, bool modelPar_given_KFN, AdmsSensFadType &modelPar_AFN, bool modelPar_given_AFN, AdmsSensFadType &modelPar_BFN, bool modelPar_given_BFN, AdmsSensFadType &modelPar_XRE, bool modelPar_given_XRE, AdmsSensFadType &modelPar_XRBI, bool modelPar_given_XRBI, AdmsSensFadType &modelPar_XRCI, bool modelPar_given_XRCI, AdmsSensFadType &modelPar_XRS, bool modelPar_given_XRS, AdmsSensFadType &modelPar_XVO, bool modelPar_given_XVO, AdmsSensFadType &modelPar_EA, bool modelPar_given_EA, AdmsSensFadType &modelPar_EAIE, bool modelPar_given_EAIE, AdmsSensFadType &modelPar_EAIC, bool modelPar_given_EAIC, AdmsSensFadType &modelPar_EAIS, bool modelPar_given_EAIS, AdmsSensFadType &modelPar_EANE, bool modelPar_given_EANE, AdmsSensFadType &modelPar_EANC, bool modelPar_given_EANC, AdmsSensFadType &modelPar_EANS, bool modelPar_given_EANS, AdmsSensFadType &modelPar_XIS, bool modelPar_given_XIS, AdmsSensFadType &modelPar_XII, bool modelPar_given_XII, AdmsSensFadType &modelPar_XIN, bool modelPar_given_XIN, AdmsSensFadType &modelPar_TNF, bool modelPar_given_TNF, AdmsSensFadType &modelPar_TAVC, bool modelPar_given_TAVC, AdmsSensFadType &modelPar_RTH, bool modelPar_given_RTH, AdmsSensFadType &modelPar_CTH, bool modelPar_given_CTH, AdmsSensFadType &modelPar_VRT, bool modelPar_given_VRT, AdmsSensFadType &modelPar_ART, bool modelPar_given_ART, AdmsSensFadType &modelPar_CCSO, bool modelPar_given_CCSO, AdmsSensFadType &modelPar_QBM, bool modelPar_given_QBM, AdmsSensFadType &modelPar_NKF, bool modelPar_given_NKF, AdmsSensFadType &modelPar_XIKF, bool modelPar_given_XIKF, AdmsSensFadType &modelPar_XRCX, bool modelPar_given_XRCX, AdmsSensFadType &modelPar_XRBX, bool modelPar_given_XRBX, AdmsSensFadType &modelPar_XRBP, bool modelPar_given_XRBP, AdmsSensFadType &modelPar_ISRR, bool modelPar_given_ISRR, AdmsSensFadType &modelPar_XISR, bool modelPar_given_XISR, AdmsSensFadType &modelPar_DEAR, bool modelPar_given_DEAR, AdmsSensFadType &modelPar_EAP, bool modelPar_given_EAP, AdmsSensFadType &modelPar_VBBE, bool modelPar_given_VBBE, AdmsSensFadType &modelPar_NBBE, bool modelPar_given_NBBE, AdmsSensFadType &modelPar_IBBE, bool modelPar_given_IBBE, AdmsSensFadType &modelPar_TVBBE1, bool modelPar_given_TVBBE1, AdmsSensFadType &modelPar_TVBBE2, bool modelPar_given_TVBBE2, AdmsSensFadType &modelPar_TNBBE, bool modelPar_given_TNBBE, AdmsSensFadType &modelPar_EBBE, bool modelPar_given_EBBE, AdmsSensFadType &modelPar_DTEMP, bool modelPar_given_DTEMP, AdmsSensFadType &modelPar_VERS, bool modelPar_given_VERS, AdmsSensFadType &modelPar_VREV, bool modelPar_given_VREV, int modelPar_dtype, double admsTemperature)