49 #include <Xyce_config.h>
61 #include <N_LAS_Matrix.h>
62 #include <N_LAS_Vector.h>
64 #include <N_UTL_FeatureTest.h>
65 #if defined(HAVE_UNORDERED_MAP)
66 #include <unordered_map>
67 using std::unordered_map;
68 #elif defined(HAVE_TR1_UNORDERED_MAP)
69 #include <tr1/unordered_map>
70 using std::tr1::unordered_map;
72 #error neither unordered_map or tr1/unordered_map found
77 namespace ADMSvbic13_4t {
93 .setExpressionAccess(
NO_DOC)
96 .setDescription(
"Internal-use parameter for setting device instance temperature");
99 .setDescription(
"multiplicity factor")
100 #ifdef Xyce_ADMS_SENSITIVITIES
101 .setAnalyticSensitivityAvailable(
true)
102 .setSensitivityFunctor(&instSens)
103 #endif // Xyce_ADMS_SENSITIVITIES
107 .setDescription(
"local temperature delta to ambient (before self-heating)")
108 #ifdef Xyce_ADMS_SENSITIVITIES
109 .setAnalyticSensitivityAvailable(
true)
110 .setSensitivityFunctor(&instSens)
111 #endif // Xyce_ADMS_SENSITIVITIES
115 .setDescription(
" Alias for trise")
116 #ifdef Xyce_ADMS_SENSITIVITIES
117 .setAnalyticSensitivityAvailable(
true)
118 .setSensitivityFunctor(&instSens)
119 #endif // Xyce_ADMS_SENSITIVITIES
123 .setDescription(
" Alias for trise")
124 #ifdef Xyce_ADMS_SENSITIVITIES
125 .setAnalyticSensitivityAvailable(
true)
126 .setSensitivityFunctor(&instSens)
127 #endif // Xyce_ADMS_SENSITIVITIES
131 .setDescription(
"switch for including noise: 0=no and 1=yes");
134 .setDescription(
"switch for self-heating: 0=no and 1=yes");
148 .setExpressionAccess(
NO_DOC)
151 .setDescription(
"Internal-use parameter for setting device model temperature");
154 .setDescription(
"npn transistor type")
155 #ifdef Xyce_ADMS_SENSITIVITIES
156 .setAnalyticSensitivityAvailable(
true)
157 .setSensitivityFunctor(&modSens)
158 #endif // Xyce_ADMS_SENSITIVITIES
162 .setDescription(
"pnp transistor type")
163 #ifdef Xyce_ADMS_SENSITIVITIES
164 .setAnalyticSensitivityAvailable(
true)
165 .setSensitivityFunctor(&modSens)
166 #endif // Xyce_ADMS_SENSITIVITIES
170 .setDescription(
"transistor type: -1=npn and +1=pnp (overriden by npn or pnp)");
174 .setDescription(
"scale factor for instance geometries")
175 #ifdef Xyce_ADMS_SENSITIVITIES
176 .setAnalyticSensitivityAvailable(
true)
177 .setSensitivityFunctor(&modSens)
178 #endif // Xyce_ADMS_SENSITIVITIES
182 .setDescription(
"shrink percentage for instance geometries")
183 #ifdef Xyce_ADMS_SENSITIVITIES
184 .setAnalyticSensitivityAvailable(
true)
185 .setSensitivityFunctor(&modSens)
186 #endif // Xyce_ADMS_SENSITIVITIES
190 .setDescription(
"minimum ambient temperature")
191 #ifdef Xyce_ADMS_SENSITIVITIES
192 .setAnalyticSensitivityAvailable(
true)
193 .setSensitivityFunctor(&modSens)
194 #endif // Xyce_ADMS_SENSITIVITIES
198 .setDescription(
"maximum ambient temperature")
199 #ifdef Xyce_ADMS_SENSITIVITIES
200 .setAnalyticSensitivityAvailable(
true)
201 .setSensitivityFunctor(&modSens)
202 #endif // Xyce_ADMS_SENSITIVITIES
206 .setDescription(
"minimum conductance")
207 #ifdef Xyce_ADMS_SENSITIVITIES
208 .setAnalyticSensitivityAvailable(
true)
209 .setSensitivityFunctor(&modSens)
210 #endif // Xyce_ADMS_SENSITIVITIES
214 .setDescription(
"current at which to linearize diode currents")
215 #ifdef Xyce_ADMS_SENSITIVITIES
216 .setAnalyticSensitivityAvailable(
true)
217 .setSensitivityFunctor(&modSens)
218 #endif // Xyce_ADMS_SENSITIVITIES
222 .setDescription(
"argument at which to linearize general exponentials")
223 #ifdef Xyce_ADMS_SENSITIVITIES
224 .setAnalyticSensitivityAvailable(
true)
225 .setSensitivityFunctor(&modSens)
226 #endif // Xyce_ADMS_SENSITIVITIES
230 .setDescription(
"nominal (reference) temperature")
231 #ifdef Xyce_ADMS_SENSITIVITIES
232 .setAnalyticSensitivityAvailable(
true)
233 .setSensitivityFunctor(&modSens)
234 #endif // Xyce_ADMS_SENSITIVITIES
238 .setDescription(
"clip minimum temperature")
239 #ifdef Xyce_ADMS_SENSITIVITIES
240 .setAnalyticSensitivityAvailable(
true)
241 .setSensitivityFunctor(&modSens)
242 #endif // Xyce_ADMS_SENSITIVITIES
246 .setDescription(
"clip maximum temperature")
247 #ifdef Xyce_ADMS_SENSITIVITIES
248 .setAnalyticSensitivityAvailable(
true)
249 .setSensitivityFunctor(&modSens)
250 #endif // Xyce_ADMS_SENSITIVITIES
254 .setDescription(
"extrinsic collector resistance")
255 #ifdef Xyce_ADMS_SENSITIVITIES
256 .setAnalyticSensitivityAvailable(
true)
257 .setSensitivityFunctor(&modSens)
258 #endif // Xyce_ADMS_SENSITIVITIES
262 .setDescription(
"intrinsic collector resistance")
263 #ifdef Xyce_ADMS_SENSITIVITIES
264 .setAnalyticSensitivityAvailable(
true)
265 .setSensitivityFunctor(&modSens)
266 #endif // Xyce_ADMS_SENSITIVITIES
270 .setDescription(
"epi drift saturation voltage")
271 #ifdef Xyce_ADMS_SENSITIVITIES
272 .setAnalyticSensitivityAvailable(
true)
273 .setSensitivityFunctor(&modSens)
274 #endif // Xyce_ADMS_SENSITIVITIES
278 .setDescription(
"epi doping parameter")
279 #ifdef Xyce_ADMS_SENSITIVITIES
280 .setAnalyticSensitivityAvailable(
true)
281 .setSensitivityFunctor(&modSens)
282 #endif // Xyce_ADMS_SENSITIVITIES
286 .setDescription(
"high current collector resistance factor")
287 #ifdef Xyce_ADMS_SENSITIVITIES
288 .setAnalyticSensitivityAvailable(
true)
289 .setSensitivityFunctor(&modSens)
290 #endif // Xyce_ADMS_SENSITIVITIES
294 .setDescription(
"extrinsic base resistance")
295 #ifdef Xyce_ADMS_SENSITIVITIES
296 .setAnalyticSensitivityAvailable(
true)
297 .setSensitivityFunctor(&modSens)
298 #endif // Xyce_ADMS_SENSITIVITIES
302 .setDescription(
"intrinsic base resistance")
303 #ifdef Xyce_ADMS_SENSITIVITIES
304 .setAnalyticSensitivityAvailable(
true)
305 .setSensitivityFunctor(&modSens)
306 #endif // Xyce_ADMS_SENSITIVITIES
310 .setDescription(
"extrinsic emitter resistance")
311 #ifdef Xyce_ADMS_SENSITIVITIES
312 .setAnalyticSensitivityAvailable(
true)
313 .setSensitivityFunctor(&modSens)
314 #endif // Xyce_ADMS_SENSITIVITIES
318 .setDescription(
"extrinsic substrate resistance")
319 #ifdef Xyce_ADMS_SENSITIVITIES
320 .setAnalyticSensitivityAvailable(
true)
321 .setSensitivityFunctor(&modSens)
322 #endif // Xyce_ADMS_SENSITIVITIES
326 .setDescription(
"parasitic transistor base resistance")
327 #ifdef Xyce_ADMS_SENSITIVITIES
328 .setAnalyticSensitivityAvailable(
true)
329 .setSensitivityFunctor(&modSens)
330 #endif // Xyce_ADMS_SENSITIVITIES
334 .setDescription(
"transport saturation current")
335 #ifdef Xyce_ADMS_SENSITIVITIES
336 .setAnalyticSensitivityAvailable(
true)
337 .setSensitivityFunctor(&modSens)
338 #endif // Xyce_ADMS_SENSITIVITIES
342 .setDescription(
"ratio of is(reverse) to is(forward)")
343 #ifdef Xyce_ADMS_SENSITIVITIES
344 .setAnalyticSensitivityAvailable(
true)
345 .setSensitivityFunctor(&modSens)
346 #endif // Xyce_ADMS_SENSITIVITIES
350 .setDescription(
"fwd emission coefficient (ideality factor)")
351 #ifdef Xyce_ADMS_SENSITIVITIES
352 .setAnalyticSensitivityAvailable(
true)
353 .setSensitivityFunctor(&modSens)
354 #endif // Xyce_ADMS_SENSITIVITIES
358 .setDescription(
"rev emission coefficient (ideality factor)")
359 #ifdef Xyce_ADMS_SENSITIVITIES
360 .setAnalyticSensitivityAvailable(
true)
361 .setSensitivityFunctor(&modSens)
362 #endif // Xyce_ADMS_SENSITIVITIES
366 .setDescription(
"base charge model selection switch: 0=GP and 1=SGP");
369 .setDescription(
"parasitic transport saturation current")
370 #ifdef Xyce_ADMS_SENSITIVITIES
371 .setAnalyticSensitivityAvailable(
true)
372 .setSensitivityFunctor(&modSens)
373 #endif // Xyce_ADMS_SENSITIVITIES
377 .setDescription(
"partitioning of Iccp between Vbep and Vbci")
378 #ifdef Xyce_ADMS_SENSITIVITIES
379 .setAnalyticSensitivityAvailable(
true)
380 .setSensitivityFunctor(&modSens)
381 #endif // Xyce_ADMS_SENSITIVITIES
385 .setDescription(
"parasitic emission coeff (ideality factor)")
386 #ifdef Xyce_ADMS_SENSITIVITIES
387 .setAnalyticSensitivityAvailable(
true)
388 .setSensitivityFunctor(&modSens)
389 #endif // Xyce_ADMS_SENSITIVITIES
393 .setDescription(
"forward bias depletion capacitance limit")
394 #ifdef Xyce_ADMS_SENSITIVITIES
395 .setAnalyticSensitivityAvailable(
true)
396 .setSensitivityFunctor(&modSens)
397 #endif // Xyce_ADMS_SENSITIVITIES
401 .setDescription(
"extrinsic b-e overlap capacitance")
402 #ifdef Xyce_ADMS_SENSITIVITIES
403 .setAnalyticSensitivityAvailable(
true)
404 .setSensitivityFunctor(&modSens)
405 #endif // Xyce_ADMS_SENSITIVITIES
409 .setDescription(
"zero-bias b-e depletion capacitance")
410 #ifdef Xyce_ADMS_SENSITIVITIES
411 .setAnalyticSensitivityAvailable(
true)
412 .setSensitivityFunctor(&modSens)
413 #endif // Xyce_ADMS_SENSITIVITIES
417 .setDescription(
"b-e built-in potential")
418 #ifdef Xyce_ADMS_SENSITIVITIES
419 .setAnalyticSensitivityAvailable(
true)
420 .setSensitivityFunctor(&modSens)
421 #endif // Xyce_ADMS_SENSITIVITIES
425 .setDescription(
"b-e grading coefficient")
426 #ifdef Xyce_ADMS_SENSITIVITIES
427 .setAnalyticSensitivityAvailable(
true)
428 .setSensitivityFunctor(&modSens)
429 #endif // Xyce_ADMS_SENSITIVITIES
433 .setDescription(
"b-e capacitance smoothing factor")
434 #ifdef Xyce_ADMS_SENSITIVITIES
435 .setAnalyticSensitivityAvailable(
true)
436 .setSensitivityFunctor(&modSens)
437 #endif // Xyce_ADMS_SENSITIVITIES
441 .setDescription(
"extrinsic b-c overlap capacitance")
442 #ifdef Xyce_ADMS_SENSITIVITIES
443 .setAnalyticSensitivityAvailable(
true)
444 .setSensitivityFunctor(&modSens)
445 #endif // Xyce_ADMS_SENSITIVITIES
449 .setDescription(
"zero-bias b-c depletion capacitance")
450 #ifdef Xyce_ADMS_SENSITIVITIES
451 .setAnalyticSensitivityAvailable(
true)
452 .setSensitivityFunctor(&modSens)
453 #endif // Xyce_ADMS_SENSITIVITIES
457 .setDescription(
"b-c built-in potential")
458 #ifdef Xyce_ADMS_SENSITIVITIES
459 .setAnalyticSensitivityAvailable(
true)
460 .setSensitivityFunctor(&modSens)
461 #endif // Xyce_ADMS_SENSITIVITIES
465 .setDescription(
"b-c grading coefficient")
466 #ifdef Xyce_ADMS_SENSITIVITIES
467 .setAnalyticSensitivityAvailable(
true)
468 .setSensitivityFunctor(&modSens)
469 #endif // Xyce_ADMS_SENSITIVITIES
473 .setDescription(
"b-c capacitance smoothing factor")
474 #ifdef Xyce_ADMS_SENSITIVITIES
475 .setAnalyticSensitivityAvailable(
true)
476 .setSensitivityFunctor(&modSens)
477 #endif // Xyce_ADMS_SENSITIVITIES
481 .setDescription(
"reach-through voltage for Cbc limiting")
482 #ifdef Xyce_ADMS_SENSITIVITIES
483 .setAnalyticSensitivityAvailable(
true)
484 .setSensitivityFunctor(&modSens)
485 #endif // Xyce_ADMS_SENSITIVITIES
489 .setDescription(
"smoothing parameter for reach-through")
490 #ifdef Xyce_ADMS_SENSITIVITIES
491 .setAnalyticSensitivityAvailable(
true)
492 .setSensitivityFunctor(&modSens)
493 #endif // Xyce_ADMS_SENSITIVITIES
497 .setDescription(
"epi charge parameter")
498 #ifdef Xyce_ADMS_SENSITIVITIES
499 .setAnalyticSensitivityAvailable(
true)
500 .setSensitivityFunctor(&modSens)
501 #endif // Xyce_ADMS_SENSITIVITIES
505 .setDescription(
"zero-bias extrinsic b-c depletion capacitance")
506 #ifdef Xyce_ADMS_SENSITIVITIES
507 .setAnalyticSensitivityAvailable(
true)
508 .setSensitivityFunctor(&modSens)
509 #endif // Xyce_ADMS_SENSITIVITIES
513 .setDescription(
"zero-bias extrinsic c-s depletion capacitance")
514 #ifdef Xyce_ADMS_SENSITIVITIES
515 .setAnalyticSensitivityAvailable(
true)
516 .setSensitivityFunctor(&modSens)
517 #endif // Xyce_ADMS_SENSITIVITIES
521 .setDescription(
"c-s built-in potential")
522 #ifdef Xyce_ADMS_SENSITIVITIES
523 .setAnalyticSensitivityAvailable(
true)
524 .setSensitivityFunctor(&modSens)
525 #endif // Xyce_ADMS_SENSITIVITIES
529 .setDescription(
"c-s grading coefficient")
530 #ifdef Xyce_ADMS_SENSITIVITIES
531 .setAnalyticSensitivityAvailable(
true)
532 .setSensitivityFunctor(&modSens)
533 #endif // Xyce_ADMS_SENSITIVITIES
537 .setDescription(
"c-s capacitance smoothing factor")
538 #ifdef Xyce_ADMS_SENSITIVITIES
539 .setAnalyticSensitivityAvailable(
true)
540 .setSensitivityFunctor(&modSens)
541 #endif // Xyce_ADMS_SENSITIVITIES
545 .setDescription(
"extrinsic c-s overlap capacitance")
546 #ifdef Xyce_ADMS_SENSITIVITIES
547 .setAnalyticSensitivityAvailable(
true)
548 .setSensitivityFunctor(&modSens)
549 #endif // Xyce_ADMS_SENSITIVITIES
553 .setDescription(
"ideal b-e saturation current")
554 #ifdef Xyce_ADMS_SENSITIVITIES
555 .setAnalyticSensitivityAvailable(
true)
556 .setSensitivityFunctor(&modSens)
557 #endif // Xyce_ADMS_SENSITIVITIES
561 .setDescription(
"partitioning of Ibe/Ibex and Qbe/Qbex")
562 #ifdef Xyce_ADMS_SENSITIVITIES
563 .setAnalyticSensitivityAvailable(
true)
564 .setSensitivityFunctor(&modSens)
565 #endif // Xyce_ADMS_SENSITIVITIES
569 .setDescription(
"ideal b-e emission coefficient")
570 #ifdef Xyce_ADMS_SENSITIVITIES
571 .setAnalyticSensitivityAvailable(
true)
572 .setSensitivityFunctor(&modSens)
573 #endif // Xyce_ADMS_SENSITIVITIES
577 .setDescription(
"ideal b-e quasi-neutral base recombination parameter")
578 #ifdef Xyce_ADMS_SENSITIVITIES
579 .setAnalyticSensitivityAvailable(
true)
580 .setSensitivityFunctor(&modSens)
581 #endif // Xyce_ADMS_SENSITIVITIES
585 .setDescription(
"non-ideal b-e saturation current")
586 #ifdef Xyce_ADMS_SENSITIVITIES
587 .setAnalyticSensitivityAvailable(
true)
588 .setSensitivityFunctor(&modSens)
589 #endif // Xyce_ADMS_SENSITIVITIES
593 .setDescription(
"non-ideal b-e emission coefficient")
594 #ifdef Xyce_ADMS_SENSITIVITIES
595 .setAnalyticSensitivityAvailable(
true)
596 .setSensitivityFunctor(&modSens)
597 #endif // Xyce_ADMS_SENSITIVITIES
601 .setDescription(
"ideal b-c saturation current")
602 #ifdef Xyce_ADMS_SENSITIVITIES
603 .setAnalyticSensitivityAvailable(
true)
604 .setSensitivityFunctor(&modSens)
605 #endif // Xyce_ADMS_SENSITIVITIES
609 .setDescription(
"ideal b-c emission coefficient")
610 #ifdef Xyce_ADMS_SENSITIVITIES
611 .setAnalyticSensitivityAvailable(
true)
612 .setSensitivityFunctor(&modSens)
613 #endif // Xyce_ADMS_SENSITIVITIES
617 .setDescription(
"non-ideal b-c saturation current")
618 #ifdef Xyce_ADMS_SENSITIVITIES
619 .setAnalyticSensitivityAvailable(
true)
620 .setSensitivityFunctor(&modSens)
621 #endif // Xyce_ADMS_SENSITIVITIES
625 .setDescription(
"non-ideal b-c emission coefficient")
626 #ifdef Xyce_ADMS_SENSITIVITIES
627 .setAnalyticSensitivityAvailable(
true)
628 .setSensitivityFunctor(&modSens)
629 #endif // Xyce_ADMS_SENSITIVITIES
633 .setDescription(
"ideal parasitic b-e saturation current")
634 #ifdef Xyce_ADMS_SENSITIVITIES
635 .setAnalyticSensitivityAvailable(
true)
636 .setSensitivityFunctor(&modSens)
637 #endif // Xyce_ADMS_SENSITIVITIES
641 .setDescription(
"non-ideal parasitic b-e saturation current")
642 #ifdef Xyce_ADMS_SENSITIVITIES
643 .setAnalyticSensitivityAvailable(
true)
644 .setSensitivityFunctor(&modSens)
645 #endif // Xyce_ADMS_SENSITIVITIES
649 .setDescription(
"ideal parasitic b-c saturation current")
650 #ifdef Xyce_ADMS_SENSITIVITIES
651 .setAnalyticSensitivityAvailable(
true)
652 .setSensitivityFunctor(&modSens)
653 #endif // Xyce_ADMS_SENSITIVITIES
657 .setDescription(
"ideal parasitic b-c emission coefficient")
658 #ifdef Xyce_ADMS_SENSITIVITIES
659 .setAnalyticSensitivityAvailable(
true)
660 .setSensitivityFunctor(&modSens)
661 #endif // Xyce_ADMS_SENSITIVITIES
665 .setDescription(
"non-ideal parasitic b-c saturation current")
666 #ifdef Xyce_ADMS_SENSITIVITIES
667 .setAnalyticSensitivityAvailable(
true)
668 .setSensitivityFunctor(&modSens)
669 #endif // Xyce_ADMS_SENSITIVITIES
673 .setDescription(
"non-ideal parasitic b-c emission coefficient")
674 #ifdef Xyce_ADMS_SENSITIVITIES
675 .setAnalyticSensitivityAvailable(
true)
676 .setSensitivityFunctor(&modSens)
677 #endif // Xyce_ADMS_SENSITIVITIES
681 .setDescription(
"forward Early voltage (zero=infinite)")
682 #ifdef Xyce_ADMS_SENSITIVITIES
683 .setAnalyticSensitivityAvailable(
true)
684 .setSensitivityFunctor(&modSens)
685 #endif // Xyce_ADMS_SENSITIVITIES
689 .setDescription(
"reverse Early voltage (zero=infinite)")
690 #ifdef Xyce_ADMS_SENSITIVITIES
691 .setAnalyticSensitivityAvailable(
true)
692 .setSensitivityFunctor(&modSens)
693 #endif // Xyce_ADMS_SENSITIVITIES
697 .setDescription(
"forward knee current (zero=infinite)")
698 #ifdef Xyce_ADMS_SENSITIVITIES
699 .setAnalyticSensitivityAvailable(
true)
700 .setSensitivityFunctor(&modSens)
701 #endif // Xyce_ADMS_SENSITIVITIES
705 .setDescription(
"high current beta roll-off parameter")
706 #ifdef Xyce_ADMS_SENSITIVITIES
707 .setAnalyticSensitivityAvailable(
true)
708 .setSensitivityFunctor(&modSens)
709 #endif // Xyce_ADMS_SENSITIVITIES
713 .setDescription(
"reverse knee current (zero=infinite)")
714 #ifdef Xyce_ADMS_SENSITIVITIES
715 .setAnalyticSensitivityAvailable(
true)
716 .setSensitivityFunctor(&modSens)
717 #endif // Xyce_ADMS_SENSITIVITIES
721 .setDescription(
"parasitic knee current (zero=infinite)")
722 #ifdef Xyce_ADMS_SENSITIVITIES
723 .setAnalyticSensitivityAvailable(
true)
724 .setSensitivityFunctor(&modSens)
725 #endif // Xyce_ADMS_SENSITIVITIES
729 .setDescription(
"forward transit time")
730 #ifdef Xyce_ADMS_SENSITIVITIES
731 .setAnalyticSensitivityAvailable(
true)
732 .setSensitivityFunctor(&modSens)
733 #endif // Xyce_ADMS_SENSITIVITIES
737 .setDescription(
"variation of tf with base-width modulation")
738 #ifdef Xyce_ADMS_SENSITIVITIES
739 .setAnalyticSensitivityAvailable(
true)
740 .setSensitivityFunctor(&modSens)
741 #endif // Xyce_ADMS_SENSITIVITIES
745 .setDescription(
"tf bias dependence coefficient")
746 #ifdef Xyce_ADMS_SENSITIVITIES
747 .setAnalyticSensitivityAvailable(
true)
748 .setSensitivityFunctor(&modSens)
749 #endif // Xyce_ADMS_SENSITIVITIES
753 .setDescription(
"tf coefficient of Vbci dependence")
754 #ifdef Xyce_ADMS_SENSITIVITIES
755 .setAnalyticSensitivityAvailable(
true)
756 .setSensitivityFunctor(&modSens)
757 #endif // Xyce_ADMS_SENSITIVITIES
761 .setDescription(
"tf coefficient of Ic dependence")
762 #ifdef Xyce_ADMS_SENSITIVITIES
763 .setAnalyticSensitivityAvailable(
true)
764 .setSensitivityFunctor(&modSens)
765 #endif // Xyce_ADMS_SENSITIVITIES
769 .setDescription(
"reverse transit time")
770 #ifdef Xyce_ADMS_SENSITIVITIES
771 .setAnalyticSensitivityAvailable(
true)
772 .setSensitivityFunctor(&modSens)
773 #endif // Xyce_ADMS_SENSITIVITIES
777 .setDescription(
"forward excess-phase delay time")
778 #ifdef Xyce_ADMS_SENSITIVITIES
779 .setAnalyticSensitivityAvailable(
true)
780 .setSensitivityFunctor(&modSens)
781 #endif // Xyce_ADMS_SENSITIVITIES
785 .setDescription(
"b-c weak avalanche parameter 1")
786 #ifdef Xyce_ADMS_SENSITIVITIES
787 .setAnalyticSensitivityAvailable(
true)
788 .setSensitivityFunctor(&modSens)
789 #endif // Xyce_ADMS_SENSITIVITIES
793 .setDescription(
"b-c weak avalanche parameter 2")
794 #ifdef Xyce_ADMS_SENSITIVITIES
795 .setAnalyticSensitivityAvailable(
true)
796 .setSensitivityFunctor(&modSens)
797 #endif // Xyce_ADMS_SENSITIVITIES
801 .setDescription(
"bx-cx weak avalanche parameter 1")
802 #ifdef Xyce_ADMS_SENSITIVITIES
803 .setAnalyticSensitivityAvailable(
true)
804 .setSensitivityFunctor(&modSens)
805 #endif // Xyce_ADMS_SENSITIVITIES
809 .setDescription(
"bx-cx weak avalanche parameter 2")
810 #ifdef Xyce_ADMS_SENSITIVITIES
811 .setAnalyticSensitivityAvailable(
true)
812 .setSensitivityFunctor(&modSens)
813 #endif // Xyce_ADMS_SENSITIVITIES
817 .setDescription(
"bx-cx grading coefficient for avalanche")
818 #ifdef Xyce_ADMS_SENSITIVITIES
819 .setAnalyticSensitivityAvailable(
true)
820 .setSensitivityFunctor(&modSens)
821 #endif // Xyce_ADMS_SENSITIVITIES
825 .setDescription(
"b-e breakdown voltage")
826 #ifdef Xyce_ADMS_SENSITIVITIES
827 .setAnalyticSensitivityAvailable(
true)
828 .setSensitivityFunctor(&modSens)
829 #endif // Xyce_ADMS_SENSITIVITIES
833 .setDescription(
"b-e breakdown emission coefficient")
834 #ifdef Xyce_ADMS_SENSITIVITIES
835 .setAnalyticSensitivityAvailable(
true)
836 .setSensitivityFunctor(&modSens)
837 #endif // Xyce_ADMS_SENSITIVITIES
841 .setDescription(
"b-e breakdown current")
842 #ifdef Xyce_ADMS_SENSITIVITIES
843 .setAnalyticSensitivityAvailable(
true)
844 .setSensitivityFunctor(&modSens)
845 #endif // Xyce_ADMS_SENSITIVITIES
849 .setDescription(
"linear temperature coefficient of vbbe")
850 #ifdef Xyce_ADMS_SENSITIVITIES
851 .setAnalyticSensitivityAvailable(
true)
852 .setSensitivityFunctor(&modSens)
853 #endif // Xyce_ADMS_SENSITIVITIES
857 .setDescription(
"quadratic temperature coefficient of vbbe")
858 #ifdef Xyce_ADMS_SENSITIVITIES
859 .setAnalyticSensitivityAvailable(
true)
860 .setSensitivityFunctor(&modSens)
861 #endif // Xyce_ADMS_SENSITIVITIES
865 .setDescription(
"temperature coefficient of nbbe")
866 #ifdef Xyce_ADMS_SENSITIVITIES
867 .setAnalyticSensitivityAvailable(
true)
868 .setSensitivityFunctor(&modSens)
869 #endif // Xyce_ADMS_SENSITIVITIES
873 .setDescription(
"SiGe base current kink voltage")
874 #ifdef Xyce_ADMS_SENSITIVITIES
875 .setAnalyticSensitivityAvailable(
true)
876 .setSensitivityFunctor(&modSens)
877 #endif // Xyce_ADMS_SENSITIVITIES
881 .setDescription(
"SiGe base current kink current reference")
882 #ifdef Xyce_ADMS_SENSITIVITIES
883 .setAnalyticSensitivityAvailable(
true)
884 .setSensitivityFunctor(&modSens)
885 #endif // Xyce_ADMS_SENSITIVITIES
889 .setDescription(
"SiGe base current kink exponent")
890 #ifdef Xyce_ADMS_SENSITIVITIES
891 .setAnalyticSensitivityAvailable(
true)
892 .setSensitivityFunctor(&modSens)
893 #endif // Xyce_ADMS_SENSITIVITIES
897 .setDescription(
"SiGe base current kink current factor")
898 #ifdef Xyce_ADMS_SENSITIVITIES
899 .setAnalyticSensitivityAvailable(
true)
900 .setSensitivityFunctor(&modSens)
901 #endif // Xyce_ADMS_SENSITIVITIES
905 .setDescription(
"b-e flicker noise constant")
906 #ifdef Xyce_ADMS_SENSITIVITIES
907 .setAnalyticSensitivityAvailable(
true)
908 .setSensitivityFunctor(&modSens)
909 #endif // Xyce_ADMS_SENSITIVITIES
913 .setDescription(
"b-e flicker noise current exponent")
914 #ifdef Xyce_ADMS_SENSITIVITIES
915 .setAnalyticSensitivityAvailable(
true)
916 .setSensitivityFunctor(&modSens)
917 #endif // Xyce_ADMS_SENSITIVITIES
921 .setDescription(
"b-e flicker noise 1/f exponent")
922 #ifdef Xyce_ADMS_SENSITIVITIES
923 .setAnalyticSensitivityAvailable(
true)
924 .setSensitivityFunctor(&modSens)
925 #endif // Xyce_ADMS_SENSITIVITIES
929 .setDescription(
"thermal resistance")
930 #ifdef Xyce_ADMS_SENSITIVITIES
931 .setAnalyticSensitivityAvailable(
true)
932 .setSensitivityFunctor(&modSens)
933 #endif // Xyce_ADMS_SENSITIVITIES
937 .setDescription(
"thermal capacitance")
938 #ifdef Xyce_ADMS_SENSITIVITIES
939 .setAnalyticSensitivityAvailable(
true)
940 .setSensitivityFunctor(&modSens)
941 #endif // Xyce_ADMS_SENSITIVITIES
945 .setDescription(
"temperature exponent of re")
946 #ifdef Xyce_ADMS_SENSITIVITIES
947 .setAnalyticSensitivityAvailable(
true)
948 .setSensitivityFunctor(&modSens)
949 #endif // Xyce_ADMS_SENSITIVITIES
953 .setDescription(
"temperature exponent of rbx and rbi")
954 #ifdef Xyce_ADMS_SENSITIVITIES
955 .setAnalyticSensitivityAvailable(
true)
956 .setSensitivityFunctor(&modSens)
957 #endif // Xyce_ADMS_SENSITIVITIES
961 .setDescription(
"temperature exponent of rbi (overrides xrb)")
962 #ifdef Xyce_ADMS_SENSITIVITIES
963 .setAnalyticSensitivityAvailable(
true)
964 .setSensitivityFunctor(&modSens)
965 #endif // Xyce_ADMS_SENSITIVITIES
969 .setDescription(
"temperature exponent of rbx (overrides xrb)")
970 #ifdef Xyce_ADMS_SENSITIVITIES
971 .setAnalyticSensitivityAvailable(
true)
972 .setSensitivityFunctor(&modSens)
973 #endif // Xyce_ADMS_SENSITIVITIES
977 .setDescription(
"temperature exponent of rci and rcx and rbp")
978 #ifdef Xyce_ADMS_SENSITIVITIES
979 .setAnalyticSensitivityAvailable(
true)
980 .setSensitivityFunctor(&modSens)
981 #endif // Xyce_ADMS_SENSITIVITIES
985 .setDescription(
"temperature exponent of rci (overrides xrc)")
986 #ifdef Xyce_ADMS_SENSITIVITIES
987 .setAnalyticSensitivityAvailable(
true)
988 .setSensitivityFunctor(&modSens)
989 #endif // Xyce_ADMS_SENSITIVITIES
993 .setDescription(
"temperature exponent of rcx (overrides xrc)")
994 #ifdef Xyce_ADMS_SENSITIVITIES
995 .setAnalyticSensitivityAvailable(
true)
996 .setSensitivityFunctor(&modSens)
997 #endif // Xyce_ADMS_SENSITIVITIES
1001 .setDescription(
"temperature exponent of rbp (overrides xrc)")
1002 #ifdef Xyce_ADMS_SENSITIVITIES
1003 .setAnalyticSensitivityAvailable(
true)
1004 .setSensitivityFunctor(&modSens)
1005 #endif // Xyce_ADMS_SENSITIVITIES
1009 .setDescription(
"temperature exponent of rs")
1010 #ifdef Xyce_ADMS_SENSITIVITIES
1011 .setAnalyticSensitivityAvailable(
true)
1012 .setSensitivityFunctor(&modSens)
1013 #endif // Xyce_ADMS_SENSITIVITIES
1017 .setDescription(
"temperature exponent of vo")
1018 #ifdef Xyce_ADMS_SENSITIVITIES
1019 .setAnalyticSensitivityAvailable(
true)
1020 .setSensitivityFunctor(&modSens)
1021 #endif // Xyce_ADMS_SENSITIVITIES
1025 .setDescription(
"activation energy for is")
1026 #ifdef Xyce_ADMS_SENSITIVITIES
1027 .setAnalyticSensitivityAvailable(
true)
1028 .setSensitivityFunctor(&modSens)
1029 #endif // Xyce_ADMS_SENSITIVITIES
1033 .setDescription(
"activation energy for ibei")
1034 #ifdef Xyce_ADMS_SENSITIVITIES
1035 .setAnalyticSensitivityAvailable(
true)
1036 .setSensitivityFunctor(&modSens)
1037 #endif // Xyce_ADMS_SENSITIVITIES
1041 .setDescription(
"activation energy for ibci and ibeip")
1042 #ifdef Xyce_ADMS_SENSITIVITIES
1043 .setAnalyticSensitivityAvailable(
true)
1044 .setSensitivityFunctor(&modSens)
1045 #endif // Xyce_ADMS_SENSITIVITIES
1049 .setDescription(
"activation energy for ibcip")
1050 #ifdef Xyce_ADMS_SENSITIVITIES
1051 .setAnalyticSensitivityAvailable(
true)
1052 .setSensitivityFunctor(&modSens)
1053 #endif // Xyce_ADMS_SENSITIVITIES
1057 .setDescription(
"activation energy for iben")
1058 #ifdef Xyce_ADMS_SENSITIVITIES
1059 .setAnalyticSensitivityAvailable(
true)
1060 .setSensitivityFunctor(&modSens)
1061 #endif // Xyce_ADMS_SENSITIVITIES
1065 .setDescription(
"activation energy for ibcn and ibenp")
1066 #ifdef Xyce_ADMS_SENSITIVITIES
1067 .setAnalyticSensitivityAvailable(
true)
1068 .setSensitivityFunctor(&modSens)
1069 #endif // Xyce_ADMS_SENSITIVITIES
1073 .setDescription(
"activation energy for ibcnp")
1074 #ifdef Xyce_ADMS_SENSITIVITIES
1075 .setAnalyticSensitivityAvailable(
true)
1076 .setSensitivityFunctor(&modSens)
1077 #endif // Xyce_ADMS_SENSITIVITIES
1081 .setDescription(
"activation energy for isp")
1082 #ifdef Xyce_ADMS_SENSITIVITIES
1083 .setAnalyticSensitivityAvailable(
true)
1084 .setSensitivityFunctor(&modSens)
1085 #endif // Xyce_ADMS_SENSITIVITIES
1089 .setDescription(
"delta activation energy for isrr")
1090 #ifdef Xyce_ADMS_SENSITIVITIES
1091 .setAnalyticSensitivityAvailable(
true)
1092 .setSensitivityFunctor(&modSens)
1093 #endif // Xyce_ADMS_SENSITIVITIES
1097 .setDescription(
"temperature exponent of is")
1098 #ifdef Xyce_ADMS_SENSITIVITIES
1099 .setAnalyticSensitivityAvailable(
true)
1100 .setSensitivityFunctor(&modSens)
1101 #endif // Xyce_ADMS_SENSITIVITIES
1105 .setDescription(
"temperature exponent of ibei, ibci, ibeip, ibcip")
1106 #ifdef Xyce_ADMS_SENSITIVITIES
1107 .setAnalyticSensitivityAvailable(
true)
1108 .setSensitivityFunctor(&modSens)
1109 #endif // Xyce_ADMS_SENSITIVITIES
1113 .setDescription(
"temperature exponent of iben, ibcn, ibenp, ibcnp")
1114 #ifdef Xyce_ADMS_SENSITIVITIES
1115 .setAnalyticSensitivityAvailable(
true)
1116 .setSensitivityFunctor(&modSens)
1117 #endif // Xyce_ADMS_SENSITIVITIES
1121 .setDescription(
"temperature exponent for isrr")
1122 #ifdef Xyce_ADMS_SENSITIVITIES
1123 .setAnalyticSensitivityAvailable(
true)
1124 .setSensitivityFunctor(&modSens)
1125 #endif // Xyce_ADMS_SENSITIVITIES
1129 .setDescription(
"temperature exponent of ikf")
1130 #ifdef Xyce_ADMS_SENSITIVITIES
1131 .setAnalyticSensitivityAvailable(
true)
1132 .setSensitivityFunctor(&modSens)
1133 #endif // Xyce_ADMS_SENSITIVITIES
1137 .setDescription(
"temperature exponent of avc2")
1138 #ifdef Xyce_ADMS_SENSITIVITIES
1139 .setAnalyticSensitivityAvailable(
true)
1140 .setSensitivityFunctor(&modSens)
1141 #endif // Xyce_ADMS_SENSITIVITIES
1145 .setDescription(
"temperature exponent of avcx2")
1146 #ifdef Xyce_ADMS_SENSITIVITIES
1147 .setAnalyticSensitivityAvailable(
true)
1148 .setSensitivityFunctor(&modSens)
1149 #endif // Xyce_ADMS_SENSITIVITIES
1153 .setDescription(
"temperature exponent of nf and nr")
1154 #ifdef Xyce_ADMS_SENSITIVITIES
1155 .setAnalyticSensitivityAvailable(
true)
1156 .setSensitivityFunctor(&modSens)
1157 #endif // Xyce_ADMS_SENSITIVITIES
1161 .setDescription(
"temperature exponent of vef")
1162 #ifdef Xyce_ADMS_SENSITIVITIES
1163 .setAnalyticSensitivityAvailable(
true)
1164 .setSensitivityFunctor(&modSens)
1165 #endif // Xyce_ADMS_SENSITIVITIES
1169 .setDescription(
"temperature exponent of ver")
1170 #ifdef Xyce_ADMS_SENSITIVITIES
1171 .setAnalyticSensitivityAvailable(
true)
1172 .setSensitivityFunctor(&modSens)
1173 #endif // Xyce_ADMS_SENSITIVITIES
1177 .setDescription(
"temperature exponent of rth")
1178 #ifdef Xyce_ADMS_SENSITIVITIES
1179 .setAnalyticSensitivityAvailable(
true)
1180 .setSensitivityFunctor(&modSens)
1181 #endif // Xyce_ADMS_SENSITIVITIES
1211 if ( (!((
m >0.0))) )
1213 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter m value " <<
m <<
" out of range ] 0.0, (+inf) [";
1219 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter sw_noise value " <<
sw_noise <<
" out of range [ 0, 1 ]";
1225 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter sw_et value " <<
sw_et <<
" out of range [ 0, 1 ]";
1256 :
DeviceInstance(instance_block, configuration.getInstanceParameters(), factory_block),
1276 f_bi_Equ_bx_Node_Ptr(0),
1277 f_bi_Equ_bp_Node_Ptr(0),
1278 f_ei_Equ_bx_Node_Ptr(0),
1279 f_ei_Equ_bp_Node_Ptr(0),
1280 f_bi_Equ_si_Node_Ptr(0),
1281 f_ei_Equ_si_Node_Ptr(0),
1282 f_bi_Equ_bi_Node_Ptr(0),
1283 f_bi_Equ_ci_Node_Ptr(0),
1284 f_ei_Equ_bi_Node_Ptr(0),
1285 f_ei_Equ_ci_Node_Ptr(0),
1286 f_bi_Equ_ei_Node_Ptr(0),
1287 f_ei_Equ_ei_Node_Ptr(0),
1288 f_bi_Equ_dt_Node_Ptr(0),
1289 f_ei_Equ_dt_Node_Ptr(0),
1290 f_bx_Equ_bi_Node_Ptr(0),
1291 f_bx_Equ_ei_Node_Ptr(0),
1292 f_bx_Equ_ci_Node_Ptr(0),
1293 f_bx_Equ_bx_Node_Ptr(0),
1294 f_bx_Equ_bp_Node_Ptr(0),
1295 f_bx_Equ_si_Node_Ptr(0),
1296 f_bx_Equ_dt_Node_Ptr(0),
1297 f_ci_Equ_xf2_Node_Ptr(0),
1298 f_ei_Equ_xf2_Node_Ptr(0),
1299 f_ci_Equ_bi_Node_Ptr(0),
1300 f_ci_Equ_ei_Node_Ptr(0),
1301 f_ci_Equ_ci_Node_Ptr(0),
1302 f_ci_Equ_dt_Node_Ptr(0),
1303 f_bi_Equ_xf2_Node_Ptr(0),
1304 f_ci_Equ_bx_Node_Ptr(0),
1305 f_ci_Equ_bp_Node_Ptr(0),
1306 f_ci_Equ_si_Node_Ptr(0),
1307 f_cx_Equ_bi_Node_Ptr(0),
1308 f_cx_Equ_ci_Node_Ptr(0),
1309 f_bx_Equ_cx_Node_Ptr(0),
1310 f_cx_Equ_bx_Node_Ptr(0),
1311 f_cx_Equ_cx_Node_Ptr(0),
1312 f_cx_Equ_dt_Node_Ptr(0),
1313 f_bx_Equ_c_Node_Ptr(0),
1314 f_cx_Equ_c_Node_Ptr(0),
1315 f_bp_Equ_bi_Node_Ptr(0),
1316 f_bp_Equ_ei_Node_Ptr(0),
1317 f_bp_Equ_ci_Node_Ptr(0),
1318 f_bp_Equ_bx_Node_Ptr(0),
1319 f_bp_Equ_bp_Node_Ptr(0),
1320 f_bp_Equ_si_Node_Ptr(0),
1321 f_bp_Equ_dt_Node_Ptr(0),
1322 f_c_Equ_dt_Node_Ptr(0),
1323 f_c_Equ_c_Node_Ptr(0),
1324 f_c_Equ_cx_Node_Ptr(0),
1325 f_ci_Equ_cx_Node_Ptr(0),
1326 f_cx_Equ_ei_Node_Ptr(0),
1327 f_cx_Equ_bp_Node_Ptr(0),
1328 f_cx_Equ_si_Node_Ptr(0),
1329 f_b_Equ_dt_Node_Ptr(0),
1330 f_b_Equ_b_Node_Ptr(0),
1331 f_b_Equ_bx_Node_Ptr(0),
1332 f_bx_Equ_b_Node_Ptr(0),
1333 f_e_Equ_dt_Node_Ptr(0),
1334 f_e_Equ_e_Node_Ptr(0),
1335 f_e_Equ_ei_Node_Ptr(0),
1336 f_ei_Equ_e_Node_Ptr(0),
1337 f_bp_Equ_cx_Node_Ptr(0),
1338 f_si_Equ_bi_Node_Ptr(0),
1339 f_si_Equ_ei_Node_Ptr(0),
1340 f_si_Equ_ci_Node_Ptr(0),
1341 f_si_Equ_bx_Node_Ptr(0),
1342 f_si_Equ_bp_Node_Ptr(0),
1343 f_si_Equ_si_Node_Ptr(0),
1344 f_si_Equ_dt_Node_Ptr(0),
1345 f_s_Equ_dt_Node_Ptr(0),
1346 f_s_Equ_s_Node_Ptr(0),
1347 f_s_Equ_si_Node_Ptr(0),
1348 f_si_Equ_s_Node_Ptr(0),
1349 f_xf1_Equ_bi_Node_Ptr(0),
1350 f_xf1_Equ_ci_Node_Ptr(0),
1351 f_xf1_Equ_ei_Node_Ptr(0),
1352 f_xf1_Equ_dt_Node_Ptr(0),
1353 f_xf1_Equ_xf2_Node_Ptr(0),
1354 f_xf2_Equ_xf1_Node_Ptr(0),
1355 f_xf2_Equ_xf2_Node_Ptr(0),
1356 f_dt_Equ_dt_Node_Ptr(0),
1357 f_dt_Equ_bp_Node_Ptr(0),
1358 f_dt_Equ_cx_Node_Ptr(0),
1359 f_dt_Equ_e_Node_Ptr(0),
1360 f_dt_Equ_ei_Node_Ptr(0),
1361 f_dt_Equ_bx_Node_Ptr(0),
1362 f_dt_Equ_bi_Node_Ptr(0),
1363 f_dt_Equ_b_Node_Ptr(0),
1364 f_dt_Equ_ci_Node_Ptr(0),
1365 f_dt_Equ_c_Node_Ptr(0),
1366 f_dt_Equ_si_Node_Ptr(0),
1367 f_dt_Equ_s_Node_Ptr(0),
1368 f_dt_Equ_xf2_Node_Ptr(0),
1369 f_bi_Equ_cx_Node_Ptr(0),
1370 f_ei_Equ_cx_Node_Ptr(0),
1371 f_b_Equ_e_Node_Ptr(0),
1372 f_e_Equ_b_Node_Ptr(0),
1373 f_b_Equ_c_Node_Ptr(0),
1374 f_c_Equ_b_Node_Ptr(0),
1375 f_xf1_Equ_xf1_Node_Ptr(0),
1376 q_bi_Equ_bx_Node_Ptr(0),
1377 q_bi_Equ_bp_Node_Ptr(0),
1378 q_ei_Equ_bx_Node_Ptr(0),
1379 q_ei_Equ_bp_Node_Ptr(0),
1380 q_bi_Equ_si_Node_Ptr(0),
1381 q_ei_Equ_si_Node_Ptr(0),
1382 q_bi_Equ_bi_Node_Ptr(0),
1383 q_bi_Equ_ci_Node_Ptr(0),
1384 q_ei_Equ_bi_Node_Ptr(0),
1385 q_ei_Equ_ci_Node_Ptr(0),
1386 q_bi_Equ_ei_Node_Ptr(0),
1387 q_ei_Equ_ei_Node_Ptr(0),
1388 q_bi_Equ_dt_Node_Ptr(0),
1389 q_ei_Equ_dt_Node_Ptr(0),
1390 q_bx_Equ_bi_Node_Ptr(0),
1391 q_bx_Equ_ei_Node_Ptr(0),
1392 q_bx_Equ_ci_Node_Ptr(0),
1393 q_bx_Equ_bx_Node_Ptr(0),
1394 q_bx_Equ_bp_Node_Ptr(0),
1395 q_bx_Equ_si_Node_Ptr(0),
1396 q_bx_Equ_dt_Node_Ptr(0),
1397 q_ci_Equ_xf2_Node_Ptr(0),
1398 q_ei_Equ_xf2_Node_Ptr(0),
1399 q_ci_Equ_bi_Node_Ptr(0),
1400 q_ci_Equ_ei_Node_Ptr(0),
1401 q_ci_Equ_ci_Node_Ptr(0),
1402 q_ci_Equ_dt_Node_Ptr(0),
1403 q_bi_Equ_xf2_Node_Ptr(0),
1404 q_ci_Equ_bx_Node_Ptr(0),
1405 q_ci_Equ_bp_Node_Ptr(0),
1406 q_ci_Equ_si_Node_Ptr(0),
1407 q_cx_Equ_bi_Node_Ptr(0),
1408 q_cx_Equ_ci_Node_Ptr(0),
1409 q_bx_Equ_cx_Node_Ptr(0),
1410 q_cx_Equ_bx_Node_Ptr(0),
1411 q_cx_Equ_cx_Node_Ptr(0),
1412 q_cx_Equ_dt_Node_Ptr(0),
1413 q_bx_Equ_c_Node_Ptr(0),
1414 q_cx_Equ_c_Node_Ptr(0),
1415 q_bp_Equ_bi_Node_Ptr(0),
1416 q_bp_Equ_ei_Node_Ptr(0),
1417 q_bp_Equ_ci_Node_Ptr(0),
1418 q_bp_Equ_bx_Node_Ptr(0),
1419 q_bp_Equ_bp_Node_Ptr(0),
1420 q_bp_Equ_si_Node_Ptr(0),
1421 q_bp_Equ_dt_Node_Ptr(0),
1422 q_c_Equ_dt_Node_Ptr(0),
1423 q_c_Equ_c_Node_Ptr(0),
1424 q_c_Equ_cx_Node_Ptr(0),
1425 q_ci_Equ_cx_Node_Ptr(0),
1426 q_cx_Equ_ei_Node_Ptr(0),
1427 q_cx_Equ_bp_Node_Ptr(0),
1428 q_cx_Equ_si_Node_Ptr(0),
1429 q_b_Equ_dt_Node_Ptr(0),
1430 q_b_Equ_b_Node_Ptr(0),
1431 q_b_Equ_bx_Node_Ptr(0),
1432 q_bx_Equ_b_Node_Ptr(0),
1433 q_e_Equ_dt_Node_Ptr(0),
1434 q_e_Equ_e_Node_Ptr(0),
1435 q_e_Equ_ei_Node_Ptr(0),
1436 q_ei_Equ_e_Node_Ptr(0),
1437 q_bp_Equ_cx_Node_Ptr(0),
1438 q_si_Equ_bi_Node_Ptr(0),
1439 q_si_Equ_ei_Node_Ptr(0),
1440 q_si_Equ_ci_Node_Ptr(0),
1441 q_si_Equ_bx_Node_Ptr(0),
1442 q_si_Equ_bp_Node_Ptr(0),
1443 q_si_Equ_si_Node_Ptr(0),
1444 q_si_Equ_dt_Node_Ptr(0),
1445 q_s_Equ_dt_Node_Ptr(0),
1446 q_s_Equ_s_Node_Ptr(0),
1447 q_s_Equ_si_Node_Ptr(0),
1448 q_si_Equ_s_Node_Ptr(0),
1449 q_xf1_Equ_bi_Node_Ptr(0),
1450 q_xf1_Equ_ci_Node_Ptr(0),
1451 q_xf1_Equ_ei_Node_Ptr(0),
1452 q_xf1_Equ_dt_Node_Ptr(0),
1453 q_xf1_Equ_xf2_Node_Ptr(0),
1454 q_xf2_Equ_xf1_Node_Ptr(0),
1455 q_xf2_Equ_xf2_Node_Ptr(0),
1456 q_dt_Equ_dt_Node_Ptr(0),
1457 q_dt_Equ_bp_Node_Ptr(0),
1458 q_dt_Equ_cx_Node_Ptr(0),
1459 q_dt_Equ_e_Node_Ptr(0),
1460 q_dt_Equ_ei_Node_Ptr(0),
1461 q_dt_Equ_bx_Node_Ptr(0),
1462 q_dt_Equ_bi_Node_Ptr(0),
1463 q_dt_Equ_b_Node_Ptr(0),
1464 q_dt_Equ_ci_Node_Ptr(0),
1465 q_dt_Equ_c_Node_Ptr(0),
1466 q_dt_Equ_si_Node_Ptr(0),
1467 q_dt_Equ_s_Node_Ptr(0),
1468 q_dt_Equ_xf2_Node_Ptr(0),
1469 q_bi_Equ_cx_Node_Ptr(0),
1470 q_ei_Equ_cx_Node_Ptr(0),
1471 q_b_Equ_e_Node_Ptr(0),
1472 q_e_Equ_b_Node_Ptr(0),
1473 q_b_Equ_c_Node_Ptr(0),
1474 q_c_Equ_b_Node_Ptr(0),
1475 q_xf1_Equ_xf1_Node_Ptr(0),
1476 admsTemperature(getDeviceOptions().temp.getImmutableValue<double>()),
1477 dtExternalNodeMode(false),
1478 cxExternalNodeMode(false),
1479 ciExternalNodeMode(false),
1480 bxExternalNodeMode(false),
1481 biExternalNodeMode(false),
1482 eiExternalNodeMode(false)
1501 if (instance_block.
numExtVars >= numExtVars+1)
1507 if (instance_block.
numExtVars >= numExtVars+2)
1513 if (instance_block.
numExtVars >= numExtVars+3)
1519 if (instance_block.
numExtVars >= numExtVars+4)
1525 if (instance_block.
numExtVars >= numExtVars+5)
1531 if (instance_block.
numExtVars >= numExtVars+6)
1672 for (
int i=0;i<mapSize;++i)
1677 for (
int j=0;j<rowSize;++j)
1690 if (!
given(
"XYCEADMSINSTTEMP"))
1726 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS))
1728 Xyce::dout() << std::endl << section_divider << std::endl
1729 <<
"In ADMSvbic13_4t::Instance::register LIDs\n\n"
1730 <<
"name = " <<
getName() << std::endl
1731 <<
"number of internal variables: " <<
numIntVars << std::endl
1732 <<
"number of external variables: " <<
numExtVars << std::endl;
1742 li_c = extLIDVecRef[i++];
1743 li_b = extLIDVecRef[i++];
1744 li_e = extLIDVecRef[i++];
1745 li_s = extLIDVecRef[i++];
1751 li_dt = extLIDVecRef[j++];
1753 li_dt = intLIDVecRef[i++];
1755 li_cx = extLIDVecRef[j++];
1757 li_cx = intLIDVecRef[i++];
1759 li_ci = extLIDVecRef[j++];
1761 li_ci = intLIDVecRef[i++];
1763 li_bx = extLIDVecRef[j++];
1765 li_bx = intLIDVecRef[i++];
1767 li_bi = extLIDVecRef[j++];
1769 li_bi = intLIDVecRef[i++];
1771 li_ei = extLIDVecRef[j++];
1773 li_ei = intLIDVecRef[i++];
1774 li_bp = intLIDVecRef[i++];
1775 li_si = intLIDVecRef[i++];
1776 li_xf1 = intLIDVecRef[i++];
1777 li_xf2 = intLIDVecRef[i++];
1780 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS))
1782 Xyce::dout() <<
"\nSolution and RHS variables:\n";
1783 Xyce::dout() <<
"\nli_c = " <<
li_c << std::endl;
1784 Xyce::dout() <<
"\nli_b = " <<
li_b << std::endl;
1785 Xyce::dout() <<
"\nli_e = " <<
li_e << std::endl;
1786 Xyce::dout() <<
"\nli_s = " <<
li_s << std::endl;
1787 Xyce::dout() <<
"\nli_dt = " <<
li_dt << std::endl;
1788 Xyce::dout() <<
"\nli_cx = " <<
li_cx << std::endl;
1789 Xyce::dout() <<
"\nli_ci = " <<
li_ci << std::endl;
1790 Xyce::dout() <<
"\nli_bx = " <<
li_bx << std::endl;
1791 Xyce::dout() <<
"\nli_bi = " <<
li_bi << std::endl;
1792 Xyce::dout() <<
"\nli_ei = " <<
li_ei << std::endl;
1793 Xyce::dout() <<
"\nli_bp = " <<
li_bp << std::endl;
1794 Xyce::dout() <<
"\nli_si = " <<
li_si << std::endl;
1795 Xyce::dout() <<
"\nli_xf1 = " <<
li_xf1 << std::endl;
1796 Xyce::dout() <<
"\nli_xf2 = " <<
li_xf2 << std::endl;
1798 Xyce::dout() <<
"\nEnd of ADMSvbic13_4t::Instance::register LIDs\n";
1799 Xyce::dout() << section_divider << std::endl;
1837 int numSta = staLIDVecRef.size();
1879 std::vector<int> & map=
jacMap;
1880 std::vector< std::vector<int> > & map2=
jacMap2;
2217 bool bsuccess =
true;
2251 bool bsuccess =
true;
2273 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
2275 Xyce::dout() << std::endl << subsection_divider << std::endl;
2276 Xyce::dout() <<
" In ADMSvbic13_4t::Instance::updateIntermediateVars\n\n";
2277 Xyce::dout() <<
" name = " <<
getName() << std::endl;
2282 double Vbe_orig,Vbe_limited,Vbe_old;
2283 double Vbep_orig,Vbep_limited,Vbep_old;
2284 double Vbxcx_orig,Vbxcx_limited,Vbxcx_old;
2285 double Vbcx_orig,Vbcx_limited,Vbcx_old;
2286 double Vbci_orig,Vbci_limited,Vbci_old;
2287 double Vbex_orig,Vbex_limited,Vbex_old;
2288 double Vbei_orig,Vbei_limited,Vbei_old;
2289 double dt_et_orig,dt_et_limited,dt_et_old;
2305 for (
int i=0; i < 14+0 ; ++i)
2313 for (
int i=0; i < 21 ; ++i)
2427 Vbe_old = Vbe_limited;
2428 Vbep_old = Vbep_limited;
2429 Vbxcx_old = Vbxcx_limited;
2430 Vbcx_old = Vbcx_limited;
2431 Vbci_old = Vbci_limited;
2432 Vbex_old = Vbex_limited;
2433 Vbei_old = Vbei_limited;
2434 dt_et_old = dt_et_limited;
2749 std::cerr <<
"WARNING: ambient temperature is lower than allowed minimum" << std::endl;
2753 std::cerr <<
"WARNING: ambient temperature is higher than allowed maximum" << std::endl;
2770 tdevK = (tdevC+273.15);
2771 vtv = ((1.380662e-23*tdevK)/1.602189e-19);
2791 maxvIfi = (((
model_.
nf)*vtv.val())*log((1.0+(imaxMod/is_t.val()))));
2799 if (((is_t>0.0)&&(isrr_t>0.0)))
2807 maxvIri = (((
model_.
nr)*vtv.val())*log((1.0+(imaxMod/(is_t.val()*isrr_t.val())))));
2819 maxvIp = (((
model_.
nfp)*vtv.val())*log((1.0+(((imaxMod*imaxMod)*Iikp)/isp_t.val()))));
2823 maxvIp = (((
model_.
nfp)*vtv.val())*log((1.0+(imaxMod/isp_t.val()))));
2833 maxvIbei = (((
model_.
nei)*vtv.val())*log((1.0+(imaxMod/ibei_t.val()))));
2842 maxvIben = (((
model_.
nen)*vtv.val())*log((1.0+(imaxMod/iben_t.val()))));
2851 maxvIbci = (((
model_.
nci)*vtv.val())*log((1.0+(imaxMod/ibci_t.val()))));
2860 maxvIbcn = (((
model_.
ncn)*vtv.val())*log((1.0+(imaxMod/ibcn_t.val()))));
2869 maxvIbeip = (((
model_.
nci)*vtv.val())*log((1.0+(imaxMod/ibeip_t.val()))));
2878 maxvIbenp = (((
model_.
ncn)*vtv.val())*log((1.0+(imaxMod/ibenp_t.val()))));
2887 maxvIbcip = (((
model_.
ncip)*vtv.val())*log((1.0+(imaxMod/ibcip_t.val()))));
2896 maxvIbcnp = (((
model_.
ncnp)*vtv.val())*log((1.0+(imaxMod/ibcnp_t.val()))));
2908 Vbci_limited = Vbcx_limited = Vbxcx_limited = Vbep_limited = 0;
2909 Vbe_limited = Vbei_limited = Vbex_limited = tVCrit;
2923 if (dt_et_limited != dt_et_orig)
2953 tdevK = (tdevC+273.15);
2954 vtv = ((1.380662e-23*tdevK)/1.602189e-19);
3024 psiio = ((2.0*(vtv/rT))*log((exp((((0.5*(
model_.
pe))*rT)/vtv))-exp(((((-0.5)*(
model_.
pe))*rT)/vtv)))));
3025 psiin = (((psiio*rT)-((3.0*vtv)*log(rT)))-((
model_.
eaie)*(rT-1.0)));
3026 pe_t = (psiin+((2.0*vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/vtv))))))))));
3035 psiio = ((2.0*(vtv/rT))*log((exp((((0.5*(
model_.
pc))*rT)/vtv))-exp(((((-0.5)*(
model_.
pc))*rT)/vtv)))));
3036 psiin = (((psiio*rT)-((3.0*vtv)*log(rT)))-((
model_.
eaic)*(rT-1.0)));
3037 pc_t = (psiin+((2.0*vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/vtv))))))))));
3046 psiio = ((2.0*(vtv/rT))*log((exp((((0.5*(
model_.
ps))*rT)/vtv))-exp(((((-0.5)*(
model_.
ps))*rT)/vtv)))));
3047 psiin = (((psiio*rT)-((3.0*vtv)*log(rT)))-((
model_.
eais)*(rT-1.0)));
3048 ps_t = (psiin+((2.0*vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/vtv))))))))));
3057 ebbe_t = exp(((-vbbe_t)/(nbbe_t*vtv)));
3060 Gcx = adms_ternary_op<AdmsFadType>((rcx_t>1.0e-3),(1.0/rcx_t),1.0e3);
3061 Gci = adms_ternary_op<AdmsFadType>((rci_t>1.0e-3),(1.0/rci_t),1.0e3);
3062 Gbx = adms_ternary_op<AdmsFadType>((rbx_t>1.0e-3),(1.0/rbx_t),1.0e3);
3063 Gbi = adms_ternary_op<AdmsFadType>((rbi_t>1.0e-3),(1.0/rbi_t),1.0e3);
3064 Ge = adms_ternary_op<AdmsFadType>((re_t>1.0e-3),(1.0/re_t),1.0e3);
3065 Gbp = adms_ternary_op<AdmsFadType>((rbp_t>1.0e-3),(1.0/rbp_t),1.0e3);
3066 Gs = adms_ternary_op<AdmsFadType>((rs_t>1.0e-3),(1.0/rs_t),1.0e3);
3067 Gth = adms_ternary_op<AdmsFadType>((rth_t>1.0e-3),(1.0/rth_t),1.0e3);
3068 Ivef = adms_ternary_op<AdmsFadType>((vef_t>0.0),(1.0/vef_t),0.0);
3069 Iver = adms_ternary_op<AdmsFadType>((ver_t>0.0),(1.0/ver_t),0.0);
3070 Iikf = adms_ternary_op<AdmsFadType>((ikf_t>0.0),(1.0/ikf_t),0.0);
3071 Ivo = adms_ternary_op<AdmsFadType>((vo_t>0.0),(1.0/vo_t),0.0);
3227 qhi = ((dvh*(1.0+(((0.5*(
model_.
me))*dvh)/(pe_t*(1.0-(
model_.
fc))))))*pwq);
3231 qlo = ((pe_t*(1.0-pow((1.0-(Vbei/pe_t)),(1.0-(
model_.
me)))))/(1.0-(
model_.
me)));
3239 vl0 = ((-0.5)*(dv0+mv0));
3240 q0 = (((-pe_t)*pow((1.0-(vl0/pe_t)),(1.0-(
model_.
me))))/(1.0-(
model_.
me)));
3243 vl = ((0.5*(dv-mv))-dv0);
3244 qlo = (((-pe_t)*pow((1.0-(vl/pe_t)),(1.0-(
model_.
me))))/(1.0-(
model_.
me)));
3292 qlo = ((pc_t*(1.0-pow((1.0-(Vbci/pc_t)),(1.0-(
model_.
mc)))))/(1.0-(
model_.
mc)));
3305 qlo0 = ((pc_t*(1.0-pow((1.0-(vl0/pc_t)),(1.0-(
model_.
mc)))))/(1.0-(
model_.
mc)));
3309 qlo = ((pc_t*(1.0-pow((1.0-(vl/pc_t)),(1.0-(
model_.
mc)))))/(1.0-(
model_.
mc)));
3310 sel = (0.5*(vnl+1.0));
3312 cmx = pow((1.0+(dv0/pc_t)),(-(
model_.
mc)));
3313 cl = (((1.0-sel)*crt)+(sel*cmx));
3314 ql = (((Vbci-vl)+vl0)*cl);
3315 qdbc = ((ql+qlo)-qlo0);
3320 vl0 = ((-0.5)*(dv0+mv0));
3321 q0 = (((-pc_t)*pow((1.0-(vl0/pc_t)),(1.0-(
model_.
mc))))/(1.0-(
model_.
mc)));
3324 vl = ((0.5*(dv-mv))-dv0);
3325 qlo = (((-pc_t)*pow((1.0-(vl/pc_t)),(1.0-(
model_.
mc))))/(1.0-(
model_.
mc)));
3331 afac = (1.0/(nf_t*vtv));
3334 expi = exp((Vbei*afac));
3338 expi = (exp((maxvIfi*afac))*(1.0+((Vbei-maxvIfi)*afac)));
3340 Ifi = (is_t*(expi-1.0));
3341 afac = (1.0/(nr_t*vtv));
3344 expi = exp((Vbci*afac));
3348 expi = (exp((maxvIri*afac))*(1.0+((Vbci-maxvIri)*afac)));
3350 Iri = ((is_t*isrr_t)*(expi-1.0));
3351 q1z = (((1.0+(qdbe*Iver))+(qdbc*Ivef))-1.0e-4);
3352 q1 = ((0.5*(sqrt(((q1z*q1z)+1.0e-8))+q1z))+1.0e-4);
3353 q2 = ((Ifi*Iikf)+(Iri*Iikr));
3356 arg = (pow(q1,(1.0/(
model_.
nkf)))+(4.0*q2));
3363 qb = (0.5*(q1+pow(1.0e-8,(
model_.
nkf))));
3368 arg = (1.0+(4.0*q2));
3371 qb = ((0.5*q1)*(1.0+pow(arg,(
model_.
nkf))));
3375 qb = ((0.5*q1)*(1.0+pow(1.0e-8,(
model_.
nkf))));
3386 expi = exp((Vbep*afac));
3390 expi = (exp((maxvIp*afac))*(1.0+((Vbep-maxvIp)*afac)));
3394 expx = exp((Vbci*afac));
3398 expx = (exp((maxvIp*afac))*(1.0+((Vbci-maxvIp)*afac)));
3402 arg = (1.0+(4.0*q2p));
3405 qbp = (0.5*(1.0+sqrt(arg)));
3409 qbp = (0.5*(1.0+sqrt(1.0e-8)));
3413 expi = exp((Vbcp*afac));
3417 expi = (exp((maxvIp*afac))*(1.0+((Vbcp-maxvIp)*afac)));
3419 Irp = (isp_t*(expi-1.0));
3420 Iccp = ((Ifp-Irp)/qbp);
3431 if ((Vbei<maxvIbei))
3433 expi = exp((Vbei*afac));
3437 expi = (exp((maxvIbei*afac))*(1.0+((Vbei-maxvIbei)*afac)));
3440 if ((Vbei<maxvIben))
3442 expn = exp((Vbei*afac));
3446 expn = (exp((maxvIben*afac))*(1.0+((Vbei-maxvIben)*afac)));
3450 Ibe = (((ibei_t*(1.0+((
model_.
qnibeir)*(q1-1.0))))*(expi-1.0))+(iben_t*(expn-1.0)));
3454 Ibe = ((ibei_t*(expi-1.0))+(iben_t*(expn-1.0)));
3458 Bvbe = ((-vbbe_t)-Vbei);
3459 afac = (1.0/(nbbe_t*vtv));
3460 if ((Bvbe<maxvIbbe))
3462 expx = exp((Bvbe*afac));
3466 expx = (exp((maxvIbbe*afac))*(1.0+((Bvbe-maxvIbbe)*afac)));
3478 if ((Vbex<maxvIbei))
3480 expi = exp((Vbex*afac));
3484 expi = (exp((maxvIbei*afac))*(1.0+((Vbex-maxvIbei)*afac)));
3487 if ((Vbex<maxvIben))
3489 expn = exp((Vbex*afac));
3493 expn = (exp((maxvIben*afac))*(1.0+((Vbex-maxvIben)*afac)));
3495 Ibex = ((ibei_t*(expi-1.0))+(iben_t*(expn-1.0)));
3498 Bvbe = ((-vbbe_t)-Vbei);
3499 afac = (1.0/(nbbe_t*vtv));
3500 if ((Bvbe<maxvIbbe))
3502 expx = exp((Bvbe*afac));
3506 expx = (exp((maxvIbbe*afac))*(1.0+((Bvbe-maxvIbbe)*afac)));
3514 if ((Vbei<maxvIbei))
3516 expi = exp((Vbei*afac));
3520 expi = (exp((maxvIbei*afac))*(1.0+((Vbei-maxvIbei)*afac)));
3523 if ((Vbei<maxvIben))
3525 expn = exp((Vbei*afac));
3529 expn = (exp((maxvIben*afac))*(1.0+((Vbei-maxvIben)*afac)));
3537 Ibe = ((
model_.
wbe)*((ibei_t*(expi-1.0))+(iben_t*(expn-1.0))));
3541 Bvbe = ((-vbbe_t)-Vbei);
3542 afac = (1.0/(nbbe_t*vtv));
3543 if ((Bvbe<maxvIbbe))
3545 expx = exp((Bvbe*afac));
3549 expx = (exp((maxvIbbe*afac))*(1.0+((Bvbe-maxvIbbe)*afac)));
3554 if ((Vbex<maxvIbei))
3556 expi = exp((Vbex*afac));
3560 expi = (exp((maxvIbei*afac))*(1.0+((Vbex-maxvIbei)*afac)));
3563 if ((Vbex<maxvIben))
3565 expn = exp((Vbex*afac));
3569 expn = (exp((maxvIben*afac))*(1.0+((Vbex-maxvIben)*afac)));
3571 Ibex = ((1.0-(
model_.
wbe))*((ibei_t*(expi-1.0))+(iben_t*(expn-1.0))));
3574 Bvbe = ((-vbbe_t)-Vbei);
3575 afac = (1.0/(nbbe_t*vtv));
3576 if ((Bvbe<maxvIbbe))
3578 expx = exp((Bvbe*afac));
3582 expx = (exp((maxvIbbe*afac))*(1.0+((Bvbe-maxvIbbe)*afac)));
3589 if ((Vbci<maxvIbci))
3591 expi = exp((Vbci*afac));
3595 expi = (exp((maxvIbci*afac))*(1.0+((Vbci-maxvIbci)*afac)));
3598 if ((Vbci<maxvIbcn))
3600 expn = exp((Vbci*afac));
3604 expn = (exp((maxvIbcn*afac))*(1.0+((Vbci-maxvIbcn)*afac)));
3606 Ibcj = ((ibci_t*(expi-1.0))+(ibcn_t*(expn-1.0)));
3610 if ((Vbep<maxvIbeip))
3612 expi = exp((Vbep*afac));
3616 expi = (exp((maxvIbeip*afac))*(1.0+((Vbep-maxvIbeip)*afac)));
3619 if ((Vbep<maxvIbenp))
3621 expn = exp((Vbep*afac));
3625 expn = (exp((maxvIbenp*afac))*(1.0+((Vbep-maxvIbenp)*afac)));
3627 Ibep = ((ibeip_t*(expi-1.0))+(ibenp_t*(expn-1.0)));
3640 expi = (exp(VmaxExp)*(1.0+(arg-VmaxExp)));
3649 expx = (exp(VmaxExp)*(1.0+(arg-VmaxExp)));
3651 Kbci = sqrt((1.0+(gamm_t*expi)));
3652 Kbcx = sqrt((1.0+(gamm_t*expx)));
3654 rKp1 = ((Kbci+1.0)/(Kbcx+1.0));
3655 Iohm = ((Vrci+(vtv*((Kbci-Kbcx)-log(rKp1))))*Gci);
3656 derf = ((Ivo*Iohm)/(Gci*(1.0+(((0.5*Ivo)*Ihrcf)*sqrt(((Vrci*Vrci)+0.01))))));
3657 Irci = (Iohm/sqrt((1+(derf*derf))));
3659 Irbi = ((Vrbi*qb)*Gbi);
3661 Irbp = ((Vrbp*qbp)*Gbp);
3674 vminm = pow((0.02*(avc2_t+1.0)),(1.0/(1.01-(
model_.
mc))));
3675 vl = ((0.5*(sqrt(((((pc_t-Vbci)-vminm)*((pc_t-Vbci)-vminm))+0.01))+((pc_t-Vbci)-vminm)))+vminm);
3676 mac1 = ((-avc2_t)*pow(vl,((
model_.
mc)-1.0)));
3683 expl = exp(VmaxExp);
3684 expi = (expl*(1.0+(mac1-VmaxExp)));
3689 Igc = (((Itxf-Itzr)-Ibcj)*avalf);
3706 vminm = pow((0.02*(avcx2_t+1.0)),(1.0/(1.01-(
model_.
mcx))));
3707 vl = ((0.5*(sqrt(((((-Vbxcx)-vminm)*((-Vbxcx)-vminm))+0.01))+((-Vbxcx)-vminm)))+vminm);
3708 mac1 = ((-avcx2_t)*pow(vl,((
model_.
mcx)-1.0)));
3715 expl = exp(VmaxExp);
3716 expi = (expl*(1.0+(mac1-VmaxExp)));
3721 Igcx = ((-Ircx)*avalf);
3732 VcbFac = (0.1+(0.5*(VcbFac+sqrt(((VcbFac*VcbFac)+1.0e-4)))));
3745 Ibc = ((Ibcj-Igc)-Ibk);
3749 if ((Vbcp<maxvIbcip))
3751 expi = exp((Vbcp*afac));
3755 expi = (exp((maxvIbcip*afac))*(1.0+((Vbcp-maxvIbcip)*afac)));
3758 if ((Vbcp<maxvIbcnp))
3760 expn = exp((Vbcp*afac));
3764 expn = (exp((maxvIbcnp*afac))*(1.0+((Vbcp-maxvIbcnp)*afac)));
3766 Ibcp = ((ibcip_t*(expi-1.0))+(ibcnp_t*(expn-1.0)));
3772 power = ((((((((((((((Ibe*Vbei)+(Ibc*Vbci))+((Itxf-Itzr)*Vcei))+(Ibex*Vbex))+(Ibep*Vbep))+(Irs*Vrs))+(Ibcp*Vbcp))+(Iccp*Vcep))+(Ircx*Vrcx))+(Irci*Vrci))+(Irbx*Vrbx))+(Irbi*Vrbi))+(Ire*Vre))+(Irbp*Vrbp));
3773 Ith = ((-
sw_et)*power);
3777 Ibe = (Ibe+(gminMod*Vbei));
3778 Ibex = (Ibex+(gminMod*Vbex));
3779 Ibep = (Ibep+(gminMod*Vbep));
3780 Ibc = (Ibc+(gminMod*Vbci));
3781 Igcx = (Igcx+(gminMod*Vbxcx));
3782 Ibcp = (Ibcp+(gminMod*Vbcp));
3831 qhi = ((dvh*(1.0+(((0.5*(
model_.
ms))*dvh)/(ps_t*(1.0-(
model_.
fc))))))*pwq);
3835 qlo = ((ps_t*(1.0-pow((1.0-(Vbcp/ps_t)),(1.0-(
model_.
ms)))))/(1.0-(
model_.
ms)));
3843 vl0 = ((-0.5)*(dv0+mv0));
3844 q0 = (((-ps_t)*pow((1.0-(vl0/ps_t)),(1.0-(
model_.
ms))))/(1.0-(
model_.
ms)));
3847 vl = ((0.5*(dv-mv))-dv0);
3848 qlo = (((-ps_t)*pow((1.0-(vl/ps_t)),(1.0-(
model_.
ms))))/(1.0-(
model_.
ms)));
3881 qhi = ((dvh*(1.0+(((0.5*(
model_.
me))*dvh)/(pe_t*(1.0-(
model_.
fc))))))*pwq);
3885 qlo = ((pe_t*(1.0-pow((1.0-(Vbex/pe_t)),(1.0-(
model_.
me)))))/(1.0-(
model_.
me)));
3893 vl0 = ((-0.5)*(dv0+mv0));
3894 q0 = (((-pe_t)*pow((1.0-(vl0/pe_t)),(1.0-(
model_.
me))))/(1.0-(
model_.
me)));
3897 vl = ((0.5*(dv-mv))-dv0);
3898 qlo = (((-pe_t)*pow((1.0-(vl/pe_t)),(1.0-(
model_.
me))))/(1.0-(
model_.
me)));
3946 qlo = ((pc_t*(1.0-pow((1.0-(Vbep/pc_t)),(1.0-(
model_.
mc)))))/(1.0-(
model_.
mc)));
3959 qlo0 = ((pc_t*(1.0-pow((1.0-(vl0/pc_t)),(1.0-(
model_.
mc)))))/(1.0-(
model_.
mc)));
3963 qlo = ((pc_t*(1.0-pow((1.0-(vl/pc_t)),(1.0-(
model_.
mc)))))/(1.0-(
model_.
mc)));
3964 sel = (0.5*(vnl+1.0));
3966 cmx = pow((1.0+(dv0/pc_t)),(-(
model_.
mc)));
3967 cl = (((1.0-sel)*crt)+(sel*cmx));
3968 ql = (((Vbep-vl)+vl0)*cl);
3969 qdbep = ((ql+qlo)-qlo0);
3974 vl0 = ((-0.5)*(dv0+mv0));
3975 q0 = (((-pc_t)*pow((1.0-(vl0/pc_t)),(1.0-(
model_.
mc))))/(1.0-(
model_.
mc)));
3978 vl = ((0.5*(dv-mv))-dv0);
3979 qlo = (((-pc_t)*pow((1.0-(vl/pc_t)),(1.0-(
model_.
mc))))/(1.0-(
model_.
mc)));
3980 qdbep = ((qlo+(pow((1.0-(
model_.
fc)),(-(
model_.
mc)))*((Vbep-vl)+vl0)))-q0);
3985 sgIf = ((Ifi>0.0)?1.0:0.0);
3986 rIf = ((Ifi*sgIf)*Iitf);
3987 mIf = (rIf/(rIf+1.0));
3988 arg = ((Vbci*Ivtf)/1.44);
3995 expi = (exp(VmaxExp)*(1.0+(arg-VmaxExp)));
3998 Qbe = (((cje_t*qdbe)*(
model_.
wbe))+((tff*Ifi)/qb));
3999 Qbex = ((cje_t*qdbex)*(1.0-(
model_.
wbe)));
4002 Qbep = ((cjep_t*qdbep)+((
model_.
tr)*Ifp));
4003 Qbcp = ((cjcp_t*qdbcp)+((
model_.
ccso)*Vbcp));
4008 Qxf2 = (((
model_.
td)*Vxf2)*0.3333333333333333);
4218 contribTemp= (Qbex);
4238 contribTemp= (Qbcx);
4248 contribTemp= (Qbep);
4258 contribTemp= (Qbeo);
4271 contribTemp= (Qbcp);
4285 contribTemp= (Qcth);
4295 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
4297 Xyce::dout() <<
" probeVars[admsProbeID_V_xf2_GND] = "
4299 Xyce::dout() <<
" probeVars[admsProbeID_V_xf1_GND] = "
4301 Xyce::dout() <<
" probeVars[admsProbeID_V_s_si] = "
4303 Xyce::dout() <<
" probeVars[admsProbeID_V_bx_si] = "
4305 Xyce::dout() <<
" probeVars[admsProbeID_V_si_bp] = "
4307 Xyce::dout() <<
" probeVars[admsProbeID_V_bp_cx] = "
4309 Xyce::dout() <<
" probeVars[admsProbeID_V_e_ei] = "
4311 Xyce::dout() <<
" probeVars[admsProbeID_V_bx_bi] = "
4313 Xyce::dout() <<
" probeVars[admsProbeID_V_b_bx] = "
4315 Xyce::dout() <<
" probeVars[admsProbeID_V_cx_ci] = "
4317 Xyce::dout() <<
" probeVars[admsProbeID_V_c_cx] = "
4319 Xyce::dout() <<
" probeVars[admsProbeID_V_b_c] = "
4321 Xyce::dout() <<
" probeVars[admsProbeID_V_b_e] = "
4323 Xyce::dout() <<
" probeVars[admsProbeID_V_bx_bp] = "
4325 Xyce::dout() <<
" probeVars[admsProbeID_V_ci_ei] = "
4327 Xyce::dout() <<
" probeVars[admsProbeID_V_bx_cx] = "
4329 Xyce::dout() <<
" probeVars[admsProbeID_V_bi_cx] = "
4331 Xyce::dout() <<
" probeVars[admsProbeID_V_bi_ci] = "
4333 Xyce::dout() <<
" probeVars[admsProbeID_V_bx_ei] = "
4335 Xyce::dout() <<
" probeVars[admsProbeID_V_bi_ei] = "
4337 Xyce::dout() <<
" probeVars[admsProbeID_Temp_dt_GND] = "
4339 Xyce::dout() <<
" staticContributions[admsNodeID_c] = "
4362 Xyce::dout() <<
" dynamicContributions[admsNodeID_c] = "
4385 Xyce::dout() <<
" Jdxp_static[admsNodeID_c] = "
4387 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_c] = "
4389 Xyce::dout() <<
" staticContributions[admsNodeID_b] = "
4412 Xyce::dout() <<
" dynamicContributions[admsNodeID_b] = "
4435 Xyce::dout() <<
" Jdxp_static[admsNodeID_b] = "
4437 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_b] = "
4439 Xyce::dout() <<
" staticContributions[admsNodeID_e] = "
4462 Xyce::dout() <<
" dynamicContributions[admsNodeID_e] = "
4485 Xyce::dout() <<
" Jdxp_static[admsNodeID_e] = "
4487 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_e] = "
4489 Xyce::dout() <<
" staticContributions[admsNodeID_s] = "
4512 Xyce::dout() <<
" dynamicContributions[admsNodeID_s] = "
4535 Xyce::dout() <<
" Jdxp_static[admsNodeID_s] = "
4537 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_s] = "
4539 Xyce::dout() <<
" staticContributions[admsNodeID_dt] = "
4562 Xyce::dout() <<
" dynamicContributions[admsNodeID_dt] = "
4585 Xyce::dout() <<
" Jdxp_static[admsNodeID_dt] = "
4587 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_dt] = "
4589 Xyce::dout() <<
" staticContributions[admsNodeID_cx] = "
4612 Xyce::dout() <<
" dynamicContributions[admsNodeID_cx] = "
4635 Xyce::dout() <<
" Jdxp_static[admsNodeID_cx] = "
4637 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_cx] = "
4639 Xyce::dout() <<
" staticContributions[admsNodeID_ci] = "
4662 Xyce::dout() <<
" dynamicContributions[admsNodeID_ci] = "
4685 Xyce::dout() <<
" Jdxp_static[admsNodeID_ci] = "
4687 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_ci] = "
4689 Xyce::dout() <<
" staticContributions[admsNodeID_bx] = "
4712 Xyce::dout() <<
" dynamicContributions[admsNodeID_bx] = "
4735 Xyce::dout() <<
" Jdxp_static[admsNodeID_bx] = "
4737 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_bx] = "
4739 Xyce::dout() <<
" staticContributions[admsNodeID_bi] = "
4762 Xyce::dout() <<
" dynamicContributions[admsNodeID_bi] = "
4785 Xyce::dout() <<
" Jdxp_static[admsNodeID_bi] = "
4787 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_bi] = "
4789 Xyce::dout() <<
" staticContributions[admsNodeID_ei] = "
4812 Xyce::dout() <<
" dynamicContributions[admsNodeID_ei] = "
4835 Xyce::dout() <<
" Jdxp_static[admsNodeID_ei] = "
4837 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_ei] = "
4839 Xyce::dout() <<
" staticContributions[admsNodeID_bp] = "
4862 Xyce::dout() <<
" dynamicContributions[admsNodeID_bp] = "
4885 Xyce::dout() <<
" Jdxp_static[admsNodeID_bp] = "
4887 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_bp] = "
4889 Xyce::dout() <<
" staticContributions[admsNodeID_si] = "
4912 Xyce::dout() <<
" dynamicContributions[admsNodeID_si] = "
4935 Xyce::dout() <<
" Jdxp_static[admsNodeID_si] = "
4937 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_si] = "
4939 Xyce::dout() <<
" staticContributions[admsNodeID_xf1] = "
4962 Xyce::dout() <<
" dynamicContributions[admsNodeID_xf1] = "
4985 Xyce::dout() <<
" Jdxp_static[admsNodeID_xf1] = "
4987 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_xf1] = "
4989 Xyce::dout() <<
" staticContributions[admsNodeID_xf2] = "
5012 Xyce::dout() <<
" dynamicContributions[admsNodeID_xf2] = "
5035 Xyce::dout() <<
" Jdxp_static[admsNodeID_xf2] = "
5037 Xyce::dout() <<
" Jdxp_dynamic[admsNodeID_xf2] = "
5041 Xyce::dout() <<
"This step was limited by this device." << std::endl;
5057 bool bsuccess =
true;
5060 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5062 Xyce::dout() << subsection_divider << std::endl;
5063 Xyce::dout() <<
"ADMSvbic13_4t::Instance::loadDAEdFdx (" <<
getName() <<
"):" << std::endl;
5068 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5075 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5082 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5089 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5096 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5103 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5110 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5117 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5124 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5131 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5138 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5145 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5152 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5159 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5166 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5173 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5180 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5187 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5194 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5201 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5208 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5215 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5222 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5229 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5236 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5243 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5250 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5257 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5264 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5271 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5278 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5285 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5292 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5299 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5306 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5313 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5320 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5327 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5334 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5341 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5348 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5355 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5362 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5369 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5376 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5383 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5390 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5397 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5404 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5411 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5418 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5425 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5432 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5439 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5446 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5453 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5460 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5467 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5474 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5481 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5488 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5495 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5502 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5509 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5516 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5523 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5530 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5537 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5544 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5551 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5558 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5565 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5572 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5579 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5586 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5593 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5600 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5607 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5614 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5621 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5628 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5635 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5642 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5649 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5656 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5663 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5670 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5677 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5684 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5691 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5698 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5705 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5712 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5732 bool bsuccess =
true;
5735 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5737 Xyce::dout() << subsection_divider << std::endl;
5738 Xyce::dout() <<
"ADMSvbic13_4t::Instance::loadDAEdQdx (" <<
getName() <<
"):" << std::endl;
5743 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5750 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5757 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5764 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5771 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5778 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5785 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5792 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5799 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5806 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5813 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5820 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5827 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5834 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5841 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5848 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5855 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5862 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5869 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5876 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5883 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5890 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5897 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5904 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5911 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5918 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5925 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5932 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5939 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5946 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5953 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5960 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5967 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5974 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5981 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5988 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
5995 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6002 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6009 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6016 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6023 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6030 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6037 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6044 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6051 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6058 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6065 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6072 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6079 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6086 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6093 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6100 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6107 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6114 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6121 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6128 if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) &&
getSolverState().debugTimeFlag)
6174 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter type value " <<
type <<
" out of range [ (-1), 1 ] or ] 0, 0 [";
6180 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter VBICtype value " <<
VBICtype <<
" out of range [ (-1), 1 ] or in excluded range [ 0, 0 ]";
6186 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter scale value " <<
scale <<
" out of range ] 0.0, 1.0 ]";
6192 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter shrink value " <<
shrink <<
" out of range [ 0.0, 100.0 [";
6196 if ( (!((
tmin >=(-250.0) &&
tmin <=27.0 ))) )
6198 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter tmin value " <<
tmin <<
" out of range [ (-250.0), 27.0 ]";
6202 if ( (!((
tmax >=27.0 &&
tmax <=1000.0 ))) )
6204 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter tmax value " <<
tmax <<
" out of range [ 27.0, 1000.0 ]";
6208 if ( (!((
gmin >=0.0))) )
6210 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter gmin value " <<
gmin <<
" out of range [ 0.0, (+inf) [";
6216 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter pnjmaxi value " <<
pnjmaxi <<
" out of range ] 0.0, (+inf) [";
6220 if ( (!((
maxexp >0.0))) )
6222 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter maxexp value " <<
maxexp <<
" out of range ] 0.0, (+inf) [";
6226 if ( (!((
tnom >=(-250.0) &&
tnom <=1000.0 ))) )
6228 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter tnom value " <<
tnom <<
" out of range [ (-250.0), 1000.0 ]";
6234 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter tminclip value " <<
tminclip <<
" out of range [ (-250.0), 27.0 ]";
6240 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter tmaxclip value " <<
tmaxclip <<
" out of range [ 27.0, 1000.0 ]";
6244 if ( (!((
rcx >=0.0))) )
6246 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter rcx value " <<
rcx <<
" out of range [ 0.0, (+inf) [";
6250 if ( (!((
rci >=0.0))) )
6252 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter rci value " <<
rci <<
" out of range [ 0.0, (+inf) [";
6256 if ( (!((
vo >=0.0))) )
6258 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter vo value " <<
vo <<
" out of range [ 0.0, (+inf) [";
6262 if ( (!((
gamm >=0.0))) )
6264 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter gamm value " <<
gamm <<
" out of range [ 0.0, (+inf) [";
6268 if ( (!((
hrcf >=0.0))) )
6270 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter hrcf value " <<
hrcf <<
" out of range [ 0.0, (+inf) [";
6274 if ( (!((
rbx >=0.0))) )
6276 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter rbx value " <<
rbx <<
" out of range [ 0.0, (+inf) [";
6280 if ( (!((
rbi >=0.0))) )
6282 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter rbi value " <<
rbi <<
" out of range [ 0.0, (+inf) [";
6286 if ( (!((
re >=0.0))) )
6288 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter re value " <<
re <<
" out of range [ 0.0, (+inf) [";
6292 if ( (!((
rs >=0.0))) )
6294 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter rs value " <<
rs <<
" out of range [ 0.0, (+inf) [";
6298 if ( (!((
rbp >=0.0))) )
6300 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter rbp value " <<
rbp <<
" out of range [ 0.0, (+inf) [";
6304 if ( (!((
is >0.0))) )
6306 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter is value " <<
is <<
" out of range ] 0.0, (+inf) [";
6310 if ( (!((
isrr >0.0))) )
6312 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter isrr value " <<
isrr <<
" out of range ] 0.0, (+inf) [";
6316 if ( (!((
nf >0.0))) )
6318 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter nf value " <<
nf <<
" out of range ] 0.0, (+inf) [";
6322 if ( (!((
nr >0.0))) )
6324 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter nr value " <<
nr <<
" out of range ] 0.0, (+inf) [";
6328 if ( (!((
qbm >=0 &&
qbm <=1 ))) )
6330 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter qbm value " <<
qbm <<
" out of range [ 0, 1 ]";
6334 if ( (!((
isp >=0.0))) )
6336 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter isp value " <<
isp <<
" out of range [ 0.0, (+inf) [";
6340 if ( (!((
wsp >=0.0 &&
wsp <=1.0 ))) )
6342 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter wsp value " <<
wsp <<
" out of range [ 0.0, 1.0 ]";
6346 if ( (!((
nfp >0.0))) )
6348 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter nfp value " <<
nfp <<
" out of range ] 0.0, (+inf) [";
6352 if ( (!((
fc >=0.0 &&
fc <1.0 ))) )
6354 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter fc value " <<
fc <<
" out of range [ 0.0, 1.0 [";
6358 if ( (!((
cbeo >=0.0))) )
6360 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter cbeo value " <<
cbeo <<
" out of range [ 0.0, (+inf) [";
6364 if ( (!((
cje >=0.0))) )
6366 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter cje value " <<
cje <<
" out of range [ 0.0, (+inf) [";
6370 if ( (!((
pe >0.0))) )
6372 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter pe value " <<
pe <<
" out of range ] 0.0, (+inf) [";
6376 if ( (!((
me >0.0 &&
me <=1.0 ))) )
6378 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter me value " <<
me <<
" out of range ] 0.0, 1.0 ]";
6382 if ( (!((
cbco >=0.0))) )
6384 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter cbco value " <<
cbco <<
" out of range [ 0.0, (+inf) [";
6388 if ( (!((
cjc >=0.0))) )
6390 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter cjc value " <<
cjc <<
" out of range [ 0.0, (+inf) [";
6394 if ( (!((
pc >0.0))) )
6396 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter pc value " <<
pc <<
" out of range ] 0.0, (+inf) [";
6400 if ( (!((
mc >0.0 &&
mc <=1.0 ))) )
6402 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter mc value " <<
mc <<
" out of range ] 0.0, 1.0 ]";
6406 if ( (!((
vrt >=0.0))) )
6408 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter vrt value " <<
vrt <<
" out of range [ 0.0, (+inf) [";
6412 if ( (!((
art >0.0))) )
6414 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter art value " <<
art <<
" out of range ] 0.0, (+inf) [";
6418 if ( (!((
qco >=0.0))) )
6420 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter qco value " <<
qco <<
" out of range [ 0.0, (+inf) [";
6424 if ( (!((
cjep >=0.0))) )
6426 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter cjep value " <<
cjep <<
" out of range [ 0.0, (+inf) [";
6430 if ( (!((
cjcp >=0.0))) )
6432 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter cjcp value " <<
cjcp <<
" out of range [ 0.0, (+inf) [";
6436 if ( (!((
ps >0.0))) )
6438 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ps value " <<
ps <<
" out of range ] 0.0, (+inf) [";
6442 if ( (!((
ms >0.0 &&
ms <=1.0 ))) )
6444 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ms value " <<
ms <<
" out of range ] 0.0, 1.0 ]";
6448 if ( (!((
ccso >=0.0))) )
6450 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ccso value " <<
ccso <<
" out of range [ 0.0, (+inf) [";
6454 if ( (!((
ibei >=0.0))) )
6456 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ibei value " <<
ibei <<
" out of range [ 0.0, (+inf) [";
6460 if ( (!((
wbe >=0.0 &&
wbe <=1.0 ))) )
6462 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter wbe value " <<
wbe <<
" out of range [ 0.0, 1.0 ]";
6466 if ( (!((
nei >0.0))) )
6468 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter nei value " <<
nei <<
" out of range ] 0.0, (+inf) [";
6474 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter qnibeir value " <<
qnibeir <<
" out of range [ 0.0, 1.0 ]";
6478 if ( (!((
iben >=0.0))) )
6480 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter iben value " <<
iben <<
" out of range [ 0.0, (+inf) [";
6486 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter nen value " <<
nen <<
" out of range ] nei, (+inf) [";
6490 if ( (!((
ibci >=0.0))) )
6492 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ibci value " <<
ibci <<
" out of range [ 0.0, (+inf) [";
6496 if ( (!((
nci >0.0))) )
6498 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter nci value " <<
nci <<
" out of range ] 0.0, (+inf) [";
6502 if ( (!((
ibcn >=0.0))) )
6504 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ibcn value " <<
ibcn <<
" out of range [ 0.0, (+inf) [";
6510 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ncn value " <<
ncn <<
" out of range ] nci, (+inf) [";
6514 if ( (!((
ibeip >=0.0))) )
6516 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ibeip value " <<
ibeip <<
" out of range [ 0.0, (+inf) [";
6520 if ( (!((
ibenp >=0.0))) )
6522 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ibenp value " <<
ibenp <<
" out of range [ 0.0, (+inf) [";
6526 if ( (!((
ibcip >=0.0))) )
6528 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ibcip value " <<
ibcip <<
" out of range [ 0.0, (+inf) [";
6532 if ( (!((
ncip >0.0))) )
6534 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ncip value " <<
ncip <<
" out of range ] 0.0, (+inf) [";
6538 if ( (!((
ibcnp >=0.0))) )
6540 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ibcnp value " <<
ibcnp <<
" out of range [ 0.0, (+inf) [";
6546 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ncnp value " <<
ncnp <<
" out of range ] ncip, (+inf) [";
6550 if ( (!((
vef >=0.0))) )
6552 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter vef value " <<
vef <<
" out of range [ 0.0, (+inf) [";
6556 if ( (!((
ver >=0.0))) )
6558 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ver value " <<
ver <<
" out of range [ 0.0, (+inf) [";
6562 if ( (!((
ikf >=0.0))) )
6564 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ikf value " <<
ikf <<
" out of range [ 0.0, (+inf) [";
6568 if ( (!((
nkf >0.0))) )
6570 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter nkf value " <<
nkf <<
" out of range ] 0.0, (+inf) [";
6574 if ( (!((
ikr >=0.0))) )
6576 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ikr value " <<
ikr <<
" out of range [ 0.0, (+inf) [";
6580 if ( (!((
ikp >=0.0))) )
6582 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ikp value " <<
ikp <<
" out of range [ 0.0, (+inf) [";
6586 if ( (!((
tf >=0.0))) )
6588 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter tf value " <<
tf <<
" out of range [ 0.0, (+inf) [";
6592 if ( (!((
qtf >=0.0))) )
6594 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter qtf value " <<
qtf <<
" out of range [ 0.0, (+inf) [";
6598 if ( (!((
xtf >=0.0))) )
6600 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter xtf value " <<
xtf <<
" out of range [ 0.0, (+inf) [";
6604 if ( (!((
vtf >=0.0))) )
6606 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter vtf value " <<
vtf <<
" out of range [ 0.0, (+inf) [";
6610 if ( (!((
itf >=0.0))) )
6612 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter itf value " <<
itf <<
" out of range [ 0.0, (+inf) [";
6616 if ( (!((
tr >=0.0))) )
6618 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter tr value " <<
tr <<
" out of range [ 0.0, (+inf) [";
6622 if ( (!((
td >=0.0))) )
6624 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter td value " <<
td <<
" out of range [ 0.0, (+inf) [";
6628 if ( (!((
avc1 >=0.0))) )
6630 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter avc1 value " <<
avc1 <<
" out of range [ 0.0, (+inf) [";
6634 if ( (!((
avc2 >=0.0))) )
6636 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter avc2 value " <<
avc2 <<
" out of range [ 0.0, (+inf) [";
6640 if ( (!((
avcx1 >=0.0))) )
6642 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter avcx1 value " <<
avcx1 <<
" out of range [ 0.0, (+inf) [";
6646 if ( (!((
avcx2 >=0.0))) )
6648 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter avcx2 value " <<
avcx2 <<
" out of range [ 0.0, (+inf) [";
6652 if ( (!((
mcx >0.0 &&
mcx <=1.0 ))) )
6654 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter mcx value " <<
mcx <<
" out of range ] 0.0, 1.0 ]";
6658 if ( (!((
vbbe >=0.0))) )
6660 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter vbbe value " <<
vbbe <<
" out of range [ 0.0, (+inf) [";
6664 if ( (!((
nbbe >0.0))) )
6666 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter nbbe value " <<
nbbe <<
" out of range ] 0.0, (+inf) [";
6670 if ( (!((
ibbe >0.0))) )
6672 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ibbe value " <<
ibbe <<
" out of range ] 0.0, (+inf) [";
6676 if ( (!((
vpte >=0.0))) )
6678 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter vpte value " <<
vpte <<
" out of range [ 0.0, (+inf) [";
6682 if ( (!((
ibk0 >=0.0))) )
6684 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter ibk0 value " <<
ibk0 <<
" out of range [ 0.0, (+inf) [";
6688 if ( (!((
abk >0.0))) )
6690 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter abk value " <<
abk <<
" out of range ] 0.0, (+inf) [";
6694 if ( (!((
bbk >=0.0))) )
6696 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter bbk value " <<
bbk <<
" out of range [ 0.0, (+inf) [";
6700 if ( (!((
kfn >=0.0))) )
6702 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter kfn value " <<
kfn <<
" out of range [ 0.0, (+inf) [";
6706 if ( (!((
afn >0.0))) )
6708 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter afn value " <<
afn <<
" out of range ] 0.0, (+inf) [";
6712 if ( (!((
bfn >0.0))) )
6714 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter bfn value " <<
bfn <<
" out of range ] 0.0, (+inf) [";
6718 if ( (!((
rth >=0.0))) )
6720 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter rth value " <<
rth <<
" out of range [ 0.0, (+inf) [";
6724 if ( (!((
cth >=0.0))) )
6726 UserError0(*
this) <<
"ADMSvbic13_4t: Parameter cth value " <<
cth <<
" out of range [ 0.0, (+inf) [";
6747 std::vector<Instance*>::iterator iter;
6751 for (iter=first; iter!=last; ++iter)
6753 (*iter)->processParams();
6771 :
DeviceModel(model_block, configuration.getModelParameters(), factory_block),
6915 if (!
given(
"XYCEADMSMODTEMP"))
6946 std::vector<Instance*>::iterator iterI;
6951 for (iterI = firstI; iterI != lastI; ++iterI)
6967 std::vector<Instance*>::const_iterator iter;
6973 os <<
" name model name Parameters" << std::endl;
6974 for (i=0, iter=first; iter!=last; ++iter, ++i)
6976 os <<
" " << i <<
": " << (*iter)->getName() <<
" ";
6980 os <<
"M = " << (*iter)->m << std::endl;
6981 os <<
"TRISE = " << (*iter)->trise << std::endl;
6982 os <<
"SW_NOISE = " << (*iter)->sw_noise << std::endl;
6983 os <<
"SW_ET = " << (*iter)->sw_et << std::endl;
7008 for (std::vector<Instance *>::const_iterator it = instanceContainer.begin(); it != instanceContainer.end(); ++it)
7020 .registerDevice(
"q", 12)
7021 .registerModelType(
"npn", 12)
7022 .registerModelType(
"pnp", 12);
7027 #ifdef Xyce_ADMS_SENSITIVITIES
7036 void evaluateInitialInstance(
7040 bool instancePar_given_m,
7042 bool instancePar_given_trise,
7044 int instancePar_sw_noise,
7045 bool instancePar_given_sw_noise,
7046 int instancePar_sw_et,
7047 bool instancePar_given_sw_et,
7051 bool modelPar_given_npn,
7053 bool modelPar_given_pnp,
7055 bool modelPar_given_scale,
7057 bool modelPar_given_shrink,
7059 bool modelPar_given_tmin,
7061 bool modelPar_given_tmax,
7063 bool modelPar_given_gmin,
7065 bool modelPar_given_pnjmaxi,
7067 bool modelPar_given_maxexp,
7069 bool modelPar_given_tnom,
7071 bool modelPar_given_tminclip,
7073 bool modelPar_given_tmaxclip,
7075 bool modelPar_given_rcx,
7077 bool modelPar_given_rci,
7079 bool modelPar_given_vo,
7081 bool modelPar_given_gamm,
7083 bool modelPar_given_hrcf,
7085 bool modelPar_given_rbx,
7087 bool modelPar_given_rbi,
7089 bool modelPar_given_re,
7091 bool modelPar_given_rs,
7093 bool modelPar_given_rbp,
7095 bool modelPar_given_is,
7097 bool modelPar_given_isrr,
7099 bool modelPar_given_nf,
7101 bool modelPar_given_nr,
7103 bool modelPar_given_isp,
7105 bool modelPar_given_wsp,
7107 bool modelPar_given_nfp,
7109 bool modelPar_given_fc,
7111 bool modelPar_given_cbeo,
7113 bool modelPar_given_cje,
7115 bool modelPar_given_pe,
7117 bool modelPar_given_me,
7119 bool modelPar_given_aje,
7121 bool modelPar_given_cbco,
7123 bool modelPar_given_cjc,
7125 bool modelPar_given_pc,
7127 bool modelPar_given_mc,
7129 bool modelPar_given_ajc,
7131 bool modelPar_given_vrt,
7133 bool modelPar_given_art,
7135 bool modelPar_given_qco,
7137 bool modelPar_given_cjep,
7139 bool modelPar_given_cjcp,
7141 bool modelPar_given_ps,
7143 bool modelPar_given_ms,
7145 bool modelPar_given_ajs,
7147 bool modelPar_given_ccso,
7149 bool modelPar_given_ibei,
7151 bool modelPar_given_wbe,
7153 bool modelPar_given_nei,
7155 bool modelPar_given_qnibeir,
7157 bool modelPar_given_iben,
7159 bool modelPar_given_nen,
7161 bool modelPar_given_ibci,
7163 bool modelPar_given_nci,
7165 bool modelPar_given_ibcn,
7167 bool modelPar_given_ncn,
7169 bool modelPar_given_ibeip,
7171 bool modelPar_given_ibenp,
7173 bool modelPar_given_ibcip,
7175 bool modelPar_given_ncip,
7177 bool modelPar_given_ibcnp,
7179 bool modelPar_given_ncnp,
7181 bool modelPar_given_vef,
7183 bool modelPar_given_ver,
7185 bool modelPar_given_ikf,
7187 bool modelPar_given_nkf,
7189 bool modelPar_given_ikr,
7191 bool modelPar_given_ikp,
7193 bool modelPar_given_tf,
7195 bool modelPar_given_qtf,
7197 bool modelPar_given_xtf,
7199 bool modelPar_given_vtf,
7201 bool modelPar_given_itf,
7203 bool modelPar_given_tr,
7205 bool modelPar_given_td,
7207 bool modelPar_given_avc1,
7209 bool modelPar_given_avc2,
7211 bool modelPar_given_avcx1,
7213 bool modelPar_given_avcx2,
7215 bool modelPar_given_mcx,
7217 bool modelPar_given_vbbe,
7219 bool modelPar_given_nbbe,
7221 bool modelPar_given_ibbe,
7223 bool modelPar_given_tvbbe1,
7225 bool modelPar_given_tvbbe2,
7227 bool modelPar_given_tnbbe,
7229 bool modelPar_given_vpte,
7231 bool modelPar_given_ibk0,
7233 bool modelPar_given_abk,
7235 bool modelPar_given_bbk,
7237 bool modelPar_given_kfn,
7239 bool modelPar_given_afn,
7241 bool modelPar_given_bfn,
7243 bool modelPar_given_rth,
7245 bool modelPar_given_cth,
7247 bool modelPar_given_xre,
7249 bool modelPar_given_xrb,
7251 bool modelPar_given_xrbi,
7253 bool modelPar_given_xrbx,
7255 bool modelPar_given_xrc,
7257 bool modelPar_given_xrci,
7259 bool modelPar_given_xrcx,
7261 bool modelPar_given_xrbp,
7263 bool modelPar_given_xrs,
7265 bool modelPar_given_xvo,
7267 bool modelPar_given_ea,
7269 bool modelPar_given_eaie,
7271 bool modelPar_given_eaic,
7273 bool modelPar_given_eais,
7275 bool modelPar_given_eane,
7277 bool modelPar_given_eanc,
7279 bool modelPar_given_eans,
7281 bool modelPar_given_eap,
7283 bool modelPar_given_dear,
7285 bool modelPar_given_xis,
7287 bool modelPar_given_xii,
7289 bool modelPar_given_xin,
7291 bool modelPar_given_xisr,
7293 bool modelPar_given_xikf,
7295 bool modelPar_given_tavc,
7297 bool modelPar_given_tavcx,
7299 bool modelPar_given_tnf,
7301 bool modelPar_given_tcvef,
7303 bool modelPar_given_tcver,
7305 bool modelPar_given_tcrth,
7308 bool modelPar_given_type,
7309 int modelPar_VBICtype,
7311 bool modelPar_given_qbm,
7312 double admsTemperature,
double adms_vt_nom)
7326 void evaluateInitialModel(
7330 bool modelPar_given_npn,
7332 bool modelPar_given_pnp,
7334 bool modelPar_given_scale,
7336 bool modelPar_given_shrink,
7338 bool modelPar_given_tmin,
7340 bool modelPar_given_tmax,
7342 bool modelPar_given_gmin,
7344 bool modelPar_given_pnjmaxi,
7346 bool modelPar_given_maxexp,
7348 bool modelPar_given_tnom,
7350 bool modelPar_given_tminclip,
7352 bool modelPar_given_tmaxclip,
7354 bool modelPar_given_rcx,
7356 bool modelPar_given_rci,
7358 bool modelPar_given_vo,
7360 bool modelPar_given_gamm,
7362 bool modelPar_given_hrcf,
7364 bool modelPar_given_rbx,
7366 bool modelPar_given_rbi,
7368 bool modelPar_given_re,
7370 bool modelPar_given_rs,
7372 bool modelPar_given_rbp,
7374 bool modelPar_given_is,
7376 bool modelPar_given_isrr,
7378 bool modelPar_given_nf,
7380 bool modelPar_given_nr,
7382 bool modelPar_given_isp,
7384 bool modelPar_given_wsp,
7386 bool modelPar_given_nfp,
7388 bool modelPar_given_fc,
7390 bool modelPar_given_cbeo,
7392 bool modelPar_given_cje,
7394 bool modelPar_given_pe,
7396 bool modelPar_given_me,
7398 bool modelPar_given_aje,
7400 bool modelPar_given_cbco,
7402 bool modelPar_given_cjc,
7404 bool modelPar_given_pc,
7406 bool modelPar_given_mc,
7408 bool modelPar_given_ajc,
7410 bool modelPar_given_vrt,
7412 bool modelPar_given_art,
7414 bool modelPar_given_qco,
7416 bool modelPar_given_cjep,
7418 bool modelPar_given_cjcp,
7420 bool modelPar_given_ps,
7422 bool modelPar_given_ms,
7424 bool modelPar_given_ajs,
7426 bool modelPar_given_ccso,
7428 bool modelPar_given_ibei,
7430 bool modelPar_given_wbe,
7432 bool modelPar_given_nei,
7434 bool modelPar_given_qnibeir,
7436 bool modelPar_given_iben,
7438 bool modelPar_given_nen,
7440 bool modelPar_given_ibci,
7442 bool modelPar_given_nci,
7444 bool modelPar_given_ibcn,
7446 bool modelPar_given_ncn,
7448 bool modelPar_given_ibeip,
7450 bool modelPar_given_ibenp,
7452 bool modelPar_given_ibcip,
7454 bool modelPar_given_ncip,
7456 bool modelPar_given_ibcnp,
7458 bool modelPar_given_ncnp,
7460 bool modelPar_given_vef,
7462 bool modelPar_given_ver,
7464 bool modelPar_given_ikf,
7466 bool modelPar_given_nkf,
7468 bool modelPar_given_ikr,
7470 bool modelPar_given_ikp,
7472 bool modelPar_given_tf,
7474 bool modelPar_given_qtf,
7476 bool modelPar_given_xtf,
7478 bool modelPar_given_vtf,
7480 bool modelPar_given_itf,
7482 bool modelPar_given_tr,
7484 bool modelPar_given_td,
7486 bool modelPar_given_avc1,
7488 bool modelPar_given_avc2,
7490 bool modelPar_given_avcx1,
7492 bool modelPar_given_avcx2,
7494 bool modelPar_given_mcx,
7496 bool modelPar_given_vbbe,
7498 bool modelPar_given_nbbe,
7500 bool modelPar_given_ibbe,
7502 bool modelPar_given_tvbbe1,
7504 bool modelPar_given_tvbbe2,
7506 bool modelPar_given_tnbbe,
7508 bool modelPar_given_vpte,
7510 bool modelPar_given_ibk0,
7512 bool modelPar_given_abk,
7514 bool modelPar_given_bbk,
7516 bool modelPar_given_kfn,
7518 bool modelPar_given_afn,
7520 bool modelPar_given_bfn,
7522 bool modelPar_given_rth,
7524 bool modelPar_given_cth,
7526 bool modelPar_given_xre,
7528 bool modelPar_given_xrb,
7530 bool modelPar_given_xrbi,
7532 bool modelPar_given_xrbx,
7534 bool modelPar_given_xrc,
7536 bool modelPar_given_xrci,
7538 bool modelPar_given_xrcx,
7540 bool modelPar_given_xrbp,
7542 bool modelPar_given_xrs,
7544 bool modelPar_given_xvo,
7546 bool modelPar_given_ea,
7548 bool modelPar_given_eaie,
7550 bool modelPar_given_eaic,
7552 bool modelPar_given_eais,
7554 bool modelPar_given_eane,
7556 bool modelPar_given_eanc,
7558 bool modelPar_given_eans,
7560 bool modelPar_given_eap,
7562 bool modelPar_given_dear,
7564 bool modelPar_given_xis,
7566 bool modelPar_given_xii,
7568 bool modelPar_given_xin,
7570 bool modelPar_given_xisr,
7572 bool modelPar_given_xikf,
7574 bool modelPar_given_tavc,
7576 bool modelPar_given_tavcx,
7578 bool modelPar_given_tnf,
7580 bool modelPar_given_tcvef,
7582 bool modelPar_given_tcver,
7584 bool modelPar_given_tcrth,
7587 bool modelPar_given_type,
7588 int modelPar_VBICtype,
7590 bool modelPar_given_qbm,
7591 double admsTemperature)
7608 void evaluateModelEquations(
7609 std::vector <double> & probeVars,
7611 const int admsProbeID_V_xf2_GND,
7612 const int admsProbeID_V_xf1_GND,
7613 const int admsProbeID_V_s_si,
7614 const int admsProbeID_V_bx_si,
7615 const int admsProbeID_V_si_bp,
7616 const int admsProbeID_V_bp_cx,
7617 const int admsProbeID_V_e_ei,
7618 const int admsProbeID_V_bx_bi,
7619 const int admsProbeID_V_b_bx,
7620 const int admsProbeID_V_cx_ci,
7621 const int admsProbeID_V_c_cx,
7622 const int admsProbeID_V_b_c,
7623 const int admsProbeID_V_b_e,
7624 const int admsProbeID_V_bx_bp,
7625 const int admsProbeID_V_ci_ei,
7626 const int admsProbeID_V_bx_cx,
7627 const int admsProbeID_V_bi_cx,
7628 const int admsProbeID_V_bi_ci,
7629 const int admsProbeID_V_bx_ei,
7630 const int admsProbeID_V_bi_ei,
7631 const int admsProbeID_Temp_dt_GND,
7633 const int admsNodeID_c,
7634 const int admsNodeID_b,
7635 const int admsNodeID_e,
7636 const int admsNodeID_s,
7637 const int admsNodeID_dt,
7638 const int admsNodeID_cx,
7639 const int admsNodeID_ci,
7640 const int admsNodeID_bx,
7641 const int admsNodeID_bi,
7642 const int admsNodeID_ei,
7643 const int admsNodeID_bp,
7644 const int admsNodeID_si,
7645 const int admsNodeID_xf1,
7646 const int admsNodeID_xf2,
7650 bool instancePar_given_m,
7652 bool instancePar_given_trise,
7654 int instancePar_sw_noise,
7655 bool instancePar_given_sw_noise,
7656 int instancePar_sw_et,
7657 bool instancePar_given_sw_et,
7661 bool modelPar_given_npn,
7663 bool modelPar_given_pnp,
7665 bool modelPar_given_scale,
7667 bool modelPar_given_shrink,
7669 bool modelPar_given_tmin,
7671 bool modelPar_given_tmax,
7673 bool modelPar_given_gmin,
7675 bool modelPar_given_pnjmaxi,
7677 bool modelPar_given_maxexp,
7679 bool modelPar_given_tnom,
7681 bool modelPar_given_tminclip,
7683 bool modelPar_given_tmaxclip,
7685 bool modelPar_given_rcx,
7687 bool modelPar_given_rci,
7689 bool modelPar_given_vo,
7691 bool modelPar_given_gamm,
7693 bool modelPar_given_hrcf,
7695 bool modelPar_given_rbx,
7697 bool modelPar_given_rbi,
7699 bool modelPar_given_re,
7701 bool modelPar_given_rs,
7703 bool modelPar_given_rbp,
7705 bool modelPar_given_is,
7707 bool modelPar_given_isrr,
7709 bool modelPar_given_nf,
7711 bool modelPar_given_nr,
7713 bool modelPar_given_isp,
7715 bool modelPar_given_wsp,
7717 bool modelPar_given_nfp,
7719 bool modelPar_given_fc,
7721 bool modelPar_given_cbeo,
7723 bool modelPar_given_cje,
7725 bool modelPar_given_pe,
7727 bool modelPar_given_me,
7729 bool modelPar_given_aje,
7731 bool modelPar_given_cbco,
7733 bool modelPar_given_cjc,
7735 bool modelPar_given_pc,
7737 bool modelPar_given_mc,
7739 bool modelPar_given_ajc,
7741 bool modelPar_given_vrt,
7743 bool modelPar_given_art,
7745 bool modelPar_given_qco,
7747 bool modelPar_given_cjep,
7749 bool modelPar_given_cjcp,
7751 bool modelPar_given_ps,
7753 bool modelPar_given_ms,
7755 bool modelPar_given_ajs,
7757 bool modelPar_given_ccso,
7759 bool modelPar_given_ibei,
7761 bool modelPar_given_wbe,
7763 bool modelPar_given_nei,
7765 bool modelPar_given_qnibeir,
7767 bool modelPar_given_iben,
7769 bool modelPar_given_nen,
7771 bool modelPar_given_ibci,
7773 bool modelPar_given_nci,
7775 bool modelPar_given_ibcn,
7777 bool modelPar_given_ncn,
7779 bool modelPar_given_ibeip,
7781 bool modelPar_given_ibenp,
7783 bool modelPar_given_ibcip,
7785 bool modelPar_given_ncip,
7787 bool modelPar_given_ibcnp,
7789 bool modelPar_given_ncnp,
7791 bool modelPar_given_vef,
7793 bool modelPar_given_ver,
7795 bool modelPar_given_ikf,
7797 bool modelPar_given_nkf,
7799 bool modelPar_given_ikr,
7801 bool modelPar_given_ikp,
7803 bool modelPar_given_tf,
7805 bool modelPar_given_qtf,
7807 bool modelPar_given_xtf,
7809 bool modelPar_given_vtf,
7811 bool modelPar_given_itf,
7813 bool modelPar_given_tr,
7815 bool modelPar_given_td,
7817 bool modelPar_given_avc1,
7819 bool modelPar_given_avc2,
7821 bool modelPar_given_avcx1,
7823 bool modelPar_given_avcx2,
7825 bool modelPar_given_mcx,
7827 bool modelPar_given_vbbe,
7829 bool modelPar_given_nbbe,
7831 bool modelPar_given_ibbe,
7833 bool modelPar_given_tvbbe1,
7835 bool modelPar_given_tvbbe2,
7837 bool modelPar_given_tnbbe,
7839 bool modelPar_given_vpte,
7841 bool modelPar_given_ibk0,
7843 bool modelPar_given_abk,
7845 bool modelPar_given_bbk,
7847 bool modelPar_given_kfn,
7849 bool modelPar_given_afn,
7851 bool modelPar_given_bfn,
7853 bool modelPar_given_rth,
7855 bool modelPar_given_cth,
7857 bool modelPar_given_xre,
7859 bool modelPar_given_xrb,
7861 bool modelPar_given_xrbi,
7863 bool modelPar_given_xrbx,
7865 bool modelPar_given_xrc,
7867 bool modelPar_given_xrci,
7869 bool modelPar_given_xrcx,
7871 bool modelPar_given_xrbp,
7873 bool modelPar_given_xrs,
7875 bool modelPar_given_xvo,
7877 bool modelPar_given_ea,
7879 bool modelPar_given_eaie,
7881 bool modelPar_given_eaic,
7883 bool modelPar_given_eais,
7885 bool modelPar_given_eane,
7887 bool modelPar_given_eanc,
7889 bool modelPar_given_eans,
7891 bool modelPar_given_eap,
7893 bool modelPar_given_dear,
7895 bool modelPar_given_xis,
7897 bool modelPar_given_xii,
7899 bool modelPar_given_xin,
7901 bool modelPar_given_xisr,
7903 bool modelPar_given_xikf,
7905 bool modelPar_given_tavc,
7907 bool modelPar_given_tavcx,
7909 bool modelPar_given_tnf,
7911 bool modelPar_given_tcvef,
7913 bool modelPar_given_tcver,
7915 bool modelPar_given_tcrth,
7918 bool modelPar_given_type,
7919 int modelPar_VBICtype,
7921 bool modelPar_given_qbm,
7923 double admsTemperature,
double adms_vt_nom,
double gmin, std::vector <AdmsSensFadType> & staticContributions, std::vector <AdmsSensFadType> & dynamicContributions,
const Instance & theInstance)
8177 scaleFac = modelPar_scale;
8178 shrinkL = (1.0-(0.01*modelPar_shrink));
8179 if (modelPar_given_gmin)
8181 gminMod = modelPar_gmin;
8187 mMod = instancePar_m;
8188 if (modelPar_given_pnjmaxi)
8190 imaxMod = modelPar_pnjmaxi;
8196 if (modelPar_given_npn)
8198 modelPar_VBICtype = 1.0;
8202 if (modelPar_given_pnp)
8204 modelPar_VBICtype = (-1.0);
8208 if (modelPar_given_type)
8210 modelPar_VBICtype = (-modelPar_type);
8214 VmaxExp = log(modelPar_maxexp);
8215 Iikr = adms_ternary_op<AdmsSensFadType>((modelPar_ikr>0.0),(1.0/modelPar_ikr),0.0);
8216 Iikp = adms_ternary_op<AdmsSensFadType>((modelPar_ikp>0.0),(1.0/modelPar_ikp),0.0);
8217 Ihrcf = adms_ternary_op<AdmsSensFadType>((modelPar_hrcf>0.0),(1.0/modelPar_hrcf),0.0);
8218 Ivtf = adms_ternary_op<AdmsSensFadType>((modelPar_vtf>0.0),(1.0/modelPar_vtf),0.0);
8219 Iitf = adms_ternary_op<AdmsSensFadType>((modelPar_itf>0.0),(1.0/modelPar_itf),0.0);
8220 sltf = ((modelPar_itf>0.0)?0.0:1.0);
8221 tiniK = (273.15+modelPar_tnom);
8226 tdevC = ((admsTemperature+instancePar_trise)-273.15);
8227 if ((tdevC<modelPar_tmin))
8229 std::cerr <<
"WARNING: ambient temperature is lower than allowed minimum" << std::endl;
8231 if ((tdevC>modelPar_tmax))
8233 std::cerr <<
"WARNING: ambient temperature is higher than allowed maximum" << std::endl;
8235 if ((tdevC<(modelPar_tminclip+1.0)))
8237 tdevC = (modelPar_tminclip+exp(((tdevC-modelPar_tminclip)-1.0)));
8241 if ((tdevC>(modelPar_tmaxclip-1.0)))
8243 tdevC = (modelPar_tmaxclip-exp(((modelPar_tmaxclip-tdevC)-1.0)));
8250 tdevK = (tdevC+273.15);
8251 vtv = ((1.380662e-23*tdevK)/1.602189e-19);
8253 tVCrit = (
adms_vt(admsTemperature)*log((
adms_vt(admsTemperature)/(1.41421356237309504880*modelPar_is))));
8254 if ((modelPar_ibbe>0.0))
8256 maxvIbbe = ((modelPar_nbbe*vtv)*log((exp(((-modelPar_vbbe)/(modelPar_nbbe*vtv)))+(imaxMod/modelPar_ibbe))));
8262 is_t = ((modelPar_is*pow(rT,(modelPar_xis/modelPar_nf)))*exp((((-modelPar_ea)*(1.0-rT))/(vtv*modelPar_nf))));
8265 if (((modelPar_ikf>0.0)&&(imaxMod>modelPar_ikf)))
8267 maxvIfi = ((modelPar_nf*vtv)*log((1.0+(pow(((0.5*imaxMod)*pow((4.0/modelPar_ikf),modelPar_nkf)),(1.0/(1.0-modelPar_nkf)))/is_t))));
8271 maxvIfi = ((modelPar_nf*vtv)*log((1.0+(imaxMod/is_t))));
8278 isrr_t = ((modelPar_isrr*pow(rT,(modelPar_xisr/modelPar_nr)))*exp((((-modelPar_dear)*(1.0-rT))/(vtv*modelPar_nr))));
8279 if (((is_t>0.0)&&(isrr_t>0.0)))
8281 if (((modelPar_ikr>0.0)&&(imaxMod>modelPar_ikr)))
8283 maxvIri = ((modelPar_nr*vtv)*log((1.0+(pow(((0.5*imaxMod)*pow((4.0/modelPar_ikr),modelPar_nkf)),(1.0/(1.0-modelPar_nkf)))/(is_t*isrr_t)))));
8287 maxvIri = ((modelPar_nr*vtv)*log((1.0+(imaxMod/(is_t*isrr_t)))));
8294 isp_t = ((modelPar_isp*pow(rT,(modelPar_xis/modelPar_nfp)))*exp((((-modelPar_eap)*(1.0-rT))/(vtv*modelPar_nfp))));
8297 if (((modelPar_ikp>0.0)&&(imaxMod>modelPar_ikp)))
8299 maxvIp = ((modelPar_nfp*vtv)*log((1.0+(((imaxMod*imaxMod)*Iikp)/isp_t))));
8303 maxvIp = ((modelPar_nfp*vtv)*log((1.0+(imaxMod/isp_t))));
8310 ibei_t = ((modelPar_ibei*pow(rT,(modelPar_xii/modelPar_nei)))*exp((((-modelPar_eaie)*(1.0-rT))/(vtv*modelPar_nei))));
8313 maxvIbei = ((modelPar_nei*vtv)*log((1.0+(imaxMod/ibei_t))));
8319 iben_t = ((modelPar_iben*pow(rT,(modelPar_xin/modelPar_nen)))*exp((((-modelPar_eane)*(1.0-rT))/(vtv*modelPar_nen))));
8322 maxvIben = ((modelPar_nen*vtv)*log((1.0+(imaxMod/iben_t))));
8328 ibci_t = ((modelPar_ibci*pow(rT,(modelPar_xii/modelPar_nci)))*exp((((-modelPar_eaic)*(1.0-rT))/(vtv*modelPar_nci))));
8331 maxvIbci = ((modelPar_nci*vtv)*log((1.0+(imaxMod/ibci_t))));
8337 ibcn_t = ((modelPar_ibcn*pow(rT,(modelPar_xin/modelPar_ncn)))*exp((((-modelPar_eanc)*(1.0-rT))/(vtv*modelPar_ncn))));
8340 maxvIbcn = ((modelPar_ncn*vtv)*log((1.0+(imaxMod/ibcn_t))));
8346 ibeip_t = ((modelPar_ibeip*pow(rT,(modelPar_xii/modelPar_nci)))*exp((((-modelPar_eaic)*(1.0-rT))/(vtv*modelPar_nci))));
8349 maxvIbeip = ((modelPar_nci*vtv)*log((1.0+(imaxMod/ibeip_t))));
8355 ibenp_t = ((modelPar_ibenp*pow(rT,(modelPar_xin/modelPar_ncn)))*exp((((-modelPar_eanc)*(1.0-rT))/(vtv*modelPar_ncn))));
8358 maxvIbenp = ((modelPar_ncn*vtv)*log((1.0+(imaxMod/ibenp_t))));
8364 ibcip_t = ((modelPar_ibcip*pow(rT,(modelPar_xii/modelPar_ncip)))*exp((((-modelPar_eais)*(1.0-rT))/(vtv*modelPar_ncip))));
8367 maxvIbcip = ((modelPar_ncip*vtv)*log((1.0+(imaxMod/ibcip_t))));
8373 ibcnp_t = ((modelPar_ibcnp*pow(rT,(modelPar_xin/modelPar_ncnp)))*exp((((-modelPar_eans)*(1.0-rT))/(vtv*modelPar_ncnp))));
8376 maxvIbcnp = ((modelPar_ncnp*vtv)*log((1.0+(imaxMod/ibcnp_t))));
8386 dt_et = probeVars[admsProbeID_Temp_dt_GND];
8388 tdevC = (((admsTemperature+instancePar_trise)+dt_et)-273.15);
8389 if ((tdevC<(modelPar_tminclip+1.0)))
8391 tdevC = (modelPar_tminclip+exp(((tdevC-modelPar_tminclip)-1.0)));
8395 if ((tdevC>(modelPar_tmaxclip-1.0)))
8397 tdevC = (modelPar_tmaxclip-exp(((modelPar_tmaxclip-tdevC)-1.0)));
8404 tdevK = (tdevC+273.15);
8405 vtv = ((1.380662e-23*tdevK)/1.602189e-19);
8408 ikf_t = (modelPar_ikf*pow(rT,modelPar_xikf));
8409 if (modelPar_given_xrcx)
8411 rcx_t = (modelPar_rcx*pow(rT,modelPar_xrcx));
8415 rcx_t = (modelPar_rcx*pow(rT,modelPar_xrc));
8417 if (modelPar_given_xrci)
8419 rci_t = (modelPar_rci*pow(rT,modelPar_xrci));
8423 rci_t = (modelPar_rci*pow(rT,modelPar_xrc));
8425 if (modelPar_given_xrbx)
8427 rbx_t = (modelPar_rbx*pow(rT,modelPar_xrbx));
8431 rbx_t = (modelPar_rbx*pow(rT,modelPar_xrb));
8433 if (modelPar_given_xrbi)
8435 rbi_t = (modelPar_rbi*pow(rT,modelPar_xrbi));
8439 rbi_t = (modelPar_rbi*pow(rT,modelPar_xrb));
8441 re_t = (modelPar_re*pow(rT,modelPar_xre));
8442 rs_t = (modelPar_rs*pow(rT,modelPar_xrs));
8443 if (modelPar_given_xrbp)
8445 rbp_t = (modelPar_rbp*pow(rT,modelPar_xrbp));
8449 rbp_t = (modelPar_rbp*pow(rT,modelPar_xrc));
8451 rth_t = (modelPar_rth*(1.0+(dT*modelPar_tcrth)));
8452 is_t = ((modelPar_is*pow(rT,(modelPar_xis/modelPar_nf)))*exp((((-modelPar_ea)*(1.0-rT))/(vtv*modelPar_nf))));
8453 isrr_t = ((modelPar_isrr*pow(rT,(modelPar_xisr/modelPar_nr)))*exp((((-modelPar_dear)*(1.0-rT))/(vtv*modelPar_nr))));
8454 isp_t = ((modelPar_isp*pow(rT,(modelPar_xis/modelPar_nfp)))*exp((((-modelPar_eap)*(1.0-rT))/(vtv*modelPar_nfp))));
8455 ibei_t = ((modelPar_ibei*pow(rT,(modelPar_xii/modelPar_nei)))*exp((((-modelPar_eaie)*(1.0-rT))/(vtv*modelPar_nei))));
8456 iben_t = ((modelPar_iben*pow(rT,(modelPar_xin/modelPar_nen)))*exp((((-modelPar_eane)*(1.0-rT))/(vtv*modelPar_nen))));
8457 ibci_t = ((modelPar_ibci*pow(rT,(modelPar_xii/modelPar_nci)))*exp((((-modelPar_eaic)*(1.0-rT))/(vtv*modelPar_nci))));
8458 ibcn_t = ((modelPar_ibcn*pow(rT,(modelPar_xin/modelPar_ncn)))*exp((((-modelPar_eanc)*(1.0-rT))/(vtv*modelPar_ncn))));
8459 ibeip_t = ((modelPar_ibeip*pow(rT,(modelPar_xii/modelPar_nci)))*exp((((-modelPar_eaic)*(1.0-rT))/(vtv*modelPar_nci))));
8460 ibenp_t = ((modelPar_ibenp*pow(rT,(modelPar_xin/modelPar_ncn)))*exp((((-modelPar_eanc)*(1.0-rT))/(vtv*modelPar_ncn))));
8461 ibcip_t = ((modelPar_ibcip*pow(rT,(modelPar_xii/modelPar_ncip)))*exp((((-modelPar_eais)*(1.0-rT))/(vtv*modelPar_ncip))));
8462 ibcnp_t = ((modelPar_ibcnp*pow(rT,(modelPar_xin/modelPar_ncnp)))*exp((((-modelPar_eans)*(1.0-rT))/(vtv*modelPar_ncnp))));
8463 nf_t = (modelPar_nf*(1.0+(dT*modelPar_tnf)));
8464 nr_t = (modelPar_nr*(1.0+(dT*modelPar_tnf)));
8465 avc2_t = (modelPar_avc2*(1.0+(dT*modelPar_tavc)));
8466 avcx2_t = (modelPar_avcx2*(1.0+(dT*modelPar_tavcx)));
8467 vbbe_t = (modelPar_vbbe*(1.0+(dT*(modelPar_tvbbe1+(dT*modelPar_tvbbe2)))));
8468 nbbe_t = (modelPar_nbbe*(1.0+(dT*modelPar_tnbbe)));
8475 psiio = ((2.0*(vtv/rT))*log((exp((((0.5*modelPar_pe)*rT)/vtv))-exp(((((-0.5)*modelPar_pe)*rT)/vtv)))));
8476 psiin = (((psiio*rT)-((3.0*vtv)*log(rT)))-(modelPar_eaie*(rT-1.0)));
8477 pe_t = (psiin+((2.0*vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/vtv))))))))));
8486 psiio = ((2.0*(vtv/rT))*log((exp((((0.5*modelPar_pc)*rT)/vtv))-exp(((((-0.5)*modelPar_pc)*rT)/vtv)))));
8487 psiin = (((psiio*rT)-((3.0*vtv)*log(rT)))-(modelPar_eaic*(rT-1.0)));
8488 pc_t = (psiin+((2.0*vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/vtv))))))))));
8497 psiio = ((2.0*(vtv/rT))*log((exp((((0.5*modelPar_ps)*rT)/vtv))-exp(((((-0.5)*modelPar_ps)*rT)/vtv)))));
8498 psiin = (((psiio*rT)-((3.0*vtv)*log(rT)))-(modelPar_eais*(rT-1.0)));
8499 ps_t = (psiin+((2.0*vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/vtv))))))))));
8502 cje_t = (modelPar_cje*pow((modelPar_pe/pe_t),modelPar_me));
8503 cjc_t = (modelPar_cjc*pow((modelPar_pc/pc_t),modelPar_mc));
8504 cjep_t = (modelPar_cjep*pow((modelPar_pc/pc_t),modelPar_mc));
8505 cjcp_t = (modelPar_cjcp*pow((modelPar_ps/ps_t),modelPar_ms));
8506 gamm_t = ((modelPar_gamm*pow(rT,modelPar_xis))*exp((((-modelPar_ea)*(1.0-rT))/vtv)));
8507 vo_t = (modelPar_vo*pow(rT,modelPar_xvo));
8508 ebbe_t = exp(((-vbbe_t)/(nbbe_t*vtv)));
8509 vef_t = (modelPar_vef*(1.0+(dT*modelPar_tcvef)));
8510 ver_t = (modelPar_ver*(1.0+(dT*modelPar_tcver)));
8511 Gcx = adms_ternary_op<AdmsSensFadType>((rcx_t>1.0e-3),(1.0/rcx_t),1.0e3);
8512 Gci = adms_ternary_op<AdmsSensFadType>((rci_t>1.0e-3),(1.0/rci_t),1.0e3);
8513 Gbx = adms_ternary_op<AdmsSensFadType>((rbx_t>1.0e-3),(1.0/rbx_t),1.0e3);
8514 Gbi = adms_ternary_op<AdmsSensFadType>((rbi_t>1.0e-3),(1.0/rbi_t),1.0e3);
8515 Ge = adms_ternary_op<AdmsSensFadType>((re_t>1.0e-3),(1.0/re_t),1.0e3);
8516 Gbp = adms_ternary_op<AdmsSensFadType>((rbp_t>1.0e-3),(1.0/rbp_t),1.0e3);
8517 Gs = adms_ternary_op<AdmsSensFadType>((rs_t>1.0e-3),(1.0/rs_t),1.0e3);
8518 Gth = adms_ternary_op<AdmsSensFadType>((rth_t>1.0e-3),(1.0/rth_t),1.0e3);
8519 Ivef = adms_ternary_op<AdmsSensFadType>((vef_t>0.0),(1.0/vef_t),0.0);
8520 Iver = adms_ternary_op<AdmsSensFadType>((ver_t>0.0),(1.0/ver_t),0.0);
8521 Iikf = adms_ternary_op<AdmsSensFadType>((ikf_t>0.0),(1.0/ikf_t),0.0);
8522 Ivo = adms_ternary_op<AdmsSensFadType>((vo_t>0.0),(1.0/vo_t),0.0);
8523 Vbei = probeVars[admsProbeID_V_bi_ei];
8525 Vbex = probeVars[admsProbeID_V_bx_ei];
8527 Vbci = probeVars[admsProbeID_V_bi_ci];
8529 Vbcx = probeVars[admsProbeID_V_bi_cx];
8531 Vbxcx = probeVars[admsProbeID_V_bx_cx];
8533 Vcei = (modelPar_VBICtype*(probeVars[admsProbeID_V_ci_ei]));
8534 Vbep = probeVars[admsProbeID_V_bx_bp];
8536 Vbe = probeVars[admsProbeID_V_b_e];
8538 Vbc = (probeVars[admsProbeID_V_b_c]);
8539 Vrcx = (probeVars[admsProbeID_V_c_cx]);
8540 Vrci = (modelPar_VBICtype*(probeVars[admsProbeID_V_cx_ci]));
8541 Vrbx = (probeVars[admsProbeID_V_b_bx]);
8542 Vrbi = (probeVars[admsProbeID_V_bx_bi]);
8543 Vre = (probeVars[admsProbeID_V_e_ei]);
8544 Vrbp = (probeVars[admsProbeID_V_bp_cx]);
8545 Vbcp = (modelPar_VBICtype*(probeVars[admsProbeID_V_si_bp]));
8546 Vcep = (modelPar_VBICtype*(probeVars[admsProbeID_V_bx_si]));
8547 Vrs = (probeVars[admsProbeID_V_s_si]);
8548 Vxf1 = (probeVars[admsProbeID_V_xf1_GND]);
8549 Vxf2 = (probeVars[admsProbeID_V_xf2_GND]);
8565 dv0 = ((-pe_t)*modelPar_fc);
8566 if ((modelPar_aje<=0.0))
8571 pwq = pow((1.0-modelPar_fc),(-modelPar_me));
8572 qlo = ((pe_t*(1.0-(pwq*(1.0-modelPar_fc))))/(1.0-modelPar_me));
8573 qhi = ((dvh*(1.0+(((0.5*modelPar_me)*dvh)/(pe_t*(1.0-modelPar_fc)))))*pwq);
8577 qlo = ((pe_t*(1.0-pow((1.0-(Vbei/pe_t)),(1.0-modelPar_me))))/(1.0-modelPar_me));
8584 mv0 = sqrt(((dv0*dv0)+((4.0*modelPar_aje)*modelPar_aje)));
8585 vl0 = ((-0.5)*(dv0+mv0));
8586 q0 = (((-pe_t)*pow((1.0-(vl0/pe_t)),(1.0-modelPar_me)))/(1.0-modelPar_me));
8588 mv = sqrt(((dv*dv)+((4.0*modelPar_aje)*modelPar_aje)));
8589 vl = ((0.5*(dv-mv))-dv0);
8590 qlo = (((-pe_t)*pow((1.0-(vl/pe_t)),(1.0-modelPar_me)))/(1.0-modelPar_me));
8591 qdbe = ((qlo+((pow((1.0-modelPar_fc),(-modelPar_me))*((Vbei-vl)+vl0))*(1.0+(((0.5*modelPar_me)*((Vbei-vl)+vl0))/(pe_t*(1.0-modelPar_fc))))))-q0);
8620 dv0 = ((-pc_t)*modelPar_fc);
8621 if ((modelPar_ajc<=0.0))
8626 pwq = pow((1.0-modelPar_fc),((-1.0)-modelPar_mc));
8627 qlo = ((pc_t*(1.0-((pwq*(1.0-modelPar_fc))*(1.0-modelPar_fc))))/(1.0-modelPar_mc));
8628 qhi = ((dvh*((1.0-modelPar_fc)+(((0.5*modelPar_mc)*dvh)/pc_t)))*pwq);
8632 if (((modelPar_vrt>0.0)&&(Vbci<(-modelPar_vrt))))
8634 qlo = ((pc_t*(1.0-(pow((1.0+(modelPar_vrt/pc_t)),(1.0-modelPar_mc))*(1.0-(((1.0-modelPar_mc)*(Vbci+modelPar_vrt))/(pc_t+modelPar_vrt))))))/(1.0-modelPar_mc));
8638 qlo = ((pc_t*(1.0-pow((1.0-(Vbci/pc_t)),(1.0-modelPar_mc))))/(1.0-modelPar_mc));
8646 if (((modelPar_vrt>0.0)&&(modelPar_art>0.0)))
8648 vn0 = ((modelPar_vrt+dv0)/(modelPar_vrt-dv0));
8649 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)))));
8650 vl0 = (0.5*(((vnl0*(modelPar_vrt-dv0))-modelPar_vrt)-dv0));
8651 qlo0 = ((pc_t*(1.0-pow((1.0-(vl0/pc_t)),(1.0-modelPar_mc))))/(1.0-modelPar_mc));
8652 vn = ((((2*Vbci)+modelPar_vrt)+dv0)/(modelPar_vrt-dv0));
8653 vnl = ((2.0*vn)/(sqrt((((vn-1.0)*(vn-1))+((4*modelPar_ajc)*modelPar_ajc)))+sqrt((((vn+1.0)*(vn+1))+((4*modelPar_art)*modelPar_art)))));
8654 vl = (0.5*(((vnl*(modelPar_vrt-dv0))-modelPar_vrt)-dv0));
8655 qlo = ((pc_t*(1.0-pow((1.0-(vl/pc_t)),(1.0-modelPar_mc))))/(1.0-modelPar_mc));
8656 sel = (0.5*(vnl+1.0));
8657 crt = pow((1.0+(modelPar_vrt/pc_t)),(-modelPar_mc));
8658 cmx = pow((1.0+(dv0/pc_t)),(-modelPar_mc));
8659 cl = (((1.0-sel)*crt)+(sel*cmx));
8660 ql = (((Vbci-vl)+vl0)*cl);
8661 qdbc = ((ql+qlo)-qlo0);
8665 mv0 = sqrt(((dv0*dv0)+((4*modelPar_ajc)*modelPar_ajc)));
8666 vl0 = ((-0.5)*(dv0+mv0));
8667 q0 = (((-pc_t)*pow((1.0-(vl0/pc_t)),(1.0-modelPar_mc)))/(1.0-modelPar_mc));
8669 mv = sqrt(((dv*dv)+((4*modelPar_ajc)*modelPar_ajc)));
8670 vl = ((0.5*(dv-mv))-dv0);
8671 qlo = (((-pc_t)*pow((1.0-(vl/pc_t)),(1.0-modelPar_mc)))/(1.0-modelPar_mc));
8672 qdbc = ((qlo+(pow((1.0-modelPar_fc),(-modelPar_mc))*((Vbci-vl)+vl0)))-q0);
8677 afac = (1.0/(nf_t*vtv));
8680 expi = exp((Vbei*afac));
8684 expi = (exp((maxvIfi*afac))*(1.0+((Vbei-maxvIfi)*afac)));
8686 Ifi = (is_t*(expi-1.0));
8687 afac = (1.0/(nr_t*vtv));
8690 expi = exp((Vbci*afac));
8694 expi = (exp((maxvIri*afac))*(1.0+((Vbci-maxvIri)*afac)));
8696 Iri = ((is_t*isrr_t)*(expi-1.0));
8697 q1z = (((1.0+(qdbe*Iver))+(qdbc*Ivef))-1.0e-4);
8698 q1 = ((0.5*(sqrt(((q1z*q1z)+1.0e-8))+q1z))+1.0e-4);
8699 q2 = ((Ifi*Iikf)+(Iri*Iikr));
8700 if ((modelPar_qbm<0.5))
8702 arg = (pow(q1,(1.0/modelPar_nkf))+(4.0*q2));
8705 qb = (0.5*(q1+pow(arg,modelPar_nkf)));
8709 qb = (0.5*(q1+pow(1.0e-8,modelPar_nkf)));
8714 arg = (1.0+(4.0*q2));
8717 qb = ((0.5*q1)*(1.0+pow(arg,modelPar_nkf)));
8721 qb = ((0.5*q1)*(1.0+pow(1.0e-8,modelPar_nkf)));
8727 if ((modelPar_isp>0.0))
8729 afac = (1.0/(modelPar_nfp*vtv));
8732 expi = exp((Vbep*afac));
8736 expi = (exp((maxvIp*afac))*(1.0+((Vbep-maxvIp)*afac)));
8740 expx = exp((Vbci*afac));
8744 expx = (exp((maxvIp*afac))*(1.0+((Vbci-maxvIp)*afac)));
8746 Ifp = (isp_t*(((modelPar_wsp*expi)+((1.0-modelPar_wsp)*expx))-1.0));
8748 arg = (1.0+(4.0*q2p));
8751 qbp = (0.5*(1.0+sqrt(arg)));
8755 qbp = (0.5*(1.0+sqrt(1.0e-8)));
8759 expi = exp((Vbcp*afac));
8763 expi = (exp((maxvIp*afac))*(1.0+((Vbcp-maxvIp)*afac)));
8765 Irp = (isp_t*(expi-1.0));
8766 Iccp = ((Ifp-Irp)/qbp);
8774 if ((modelPar_wbe==1.0))
8776 afac = (1.0/(modelPar_nei*vtv));
8777 if ((Vbei<maxvIbei))
8779 expi = exp((Vbei*afac));
8783 expi = (exp((maxvIbei*afac))*(1.0+((Vbei-maxvIbei)*afac)));
8785 afac = (1.0/(modelPar_nen*vtv));
8786 if ((Vbei<maxvIben))
8788 expn = exp((Vbei*afac));
8792 expn = (exp((maxvIben*afac))*(1.0+((Vbei-maxvIben)*afac)));
8794 if ((modelPar_qnibeir>0.0))
8796 Ibe = (((ibei_t*(1.0+(modelPar_qnibeir*(q1-1.0))))*(expi-1.0))+(iben_t*(expn-1.0)));
8800 Ibe = ((ibei_t*(expi-1.0))+(iben_t*(expn-1.0)));
8802 if ((modelPar_vbbe>0.0))
8804 Bvbe = ((-vbbe_t)-Vbei);
8805 afac = (1.0/(nbbe_t*vtv));
8806 if ((Bvbe<maxvIbbe))
8808 expx = exp((Bvbe*afac));
8812 expx = (exp((maxvIbbe*afac))*(1.0+((Bvbe-maxvIbbe)*afac)));
8814 Ibe = (Ibe-(modelPar_ibbe*(expx-ebbe_t)));
8820 if ((modelPar_wbe==0.0))
8823 afac = (1.0/(modelPar_nei*vtv));
8824 if ((Vbex<maxvIbei))
8826 expi = exp((Vbex*afac));
8830 expi = (exp((maxvIbei*afac))*(1.0+((Vbex-maxvIbei)*afac)));
8832 afac = (1.0/(modelPar_nen*vtv));
8833 if ((Vbex<maxvIben))
8835 expn = exp((Vbex*afac));
8839 expn = (exp((maxvIben*afac))*(1.0+((Vbex-maxvIben)*afac)));
8841 Ibex = ((ibei_t*(expi-1.0))+(iben_t*(expn-1.0)));
8842 if ((modelPar_vbbe>0.0))
8844 Bvbe = ((-vbbe_t)-Vbei);
8845 afac = (1.0/(nbbe_t*vtv));
8846 if ((Bvbe<maxvIbbe))
8848 expx = exp((Bvbe*afac));
8852 expx = (exp((maxvIbbe*afac))*(1.0+((Bvbe-maxvIbbe)*afac)));
8854 Ibex = (Ibex-(modelPar_ibbe*(expx-ebbe_t)));
8859 afac = (1.0/(modelPar_nei*vtv));
8860 if ((Vbei<maxvIbei))
8862 expi = exp((Vbei*afac));
8866 expi = (exp((maxvIbei*afac))*(1.0+((Vbei-maxvIbei)*afac)));
8868 afac = (1.0/(modelPar_nen*vtv));
8869 if ((Vbei<maxvIben))
8871 expn = exp((Vbei*afac));
8875 expn = (exp((maxvIben*afac))*(1.0+((Vbei-maxvIben)*afac)));
8877 if ((modelPar_qnibeir>0.0))
8879 Ibe = (modelPar_wbe*(((ibei_t*(1.0+(modelPar_qnibeir*(q1-1.0))))*(expi-1.0))+(iben_t*(expn-1.0))));
8883 Ibe = (modelPar_wbe*((ibei_t*(expi-1.0))+(iben_t*(expn-1.0))));
8885 if ((modelPar_vbbe>0.0))
8887 Bvbe = ((-vbbe_t)-Vbei);
8888 afac = (1.0/(nbbe_t*vtv));
8889 if ((Bvbe<maxvIbbe))
8891 expx = exp((Bvbe*afac));
8895 expx = (exp((maxvIbbe*afac))*(1.0+((Bvbe-maxvIbbe)*afac)));
8897 Ibe = (Ibe-((modelPar_wbe*modelPar_ibbe)*(expx-ebbe_t)));
8899 afac = (1.0/(modelPar_nei*vtv));
8900 if ((Vbex<maxvIbei))
8902 expi = exp((Vbex*afac));
8906 expi = (exp((maxvIbei*afac))*(1.0+((Vbex-maxvIbei)*afac)));
8908 afac = (1.0/(modelPar_nen*vtv));
8909 if ((Vbex<maxvIben))
8911 expn = exp((Vbex*afac));
8915 expn = (exp((maxvIben*afac))*(1.0+((Vbex-maxvIben)*afac)));
8917 Ibex = ((1.0-modelPar_wbe)*((ibei_t*(expi-1.0))+(iben_t*(expn-1.0))));
8918 if ((modelPar_vbbe>0.0))
8920 Bvbe = ((-vbbe_t)-Vbei);
8921 afac = (1.0/(nbbe_t*vtv));
8922 if ((Bvbe<maxvIbbe))
8924 expx = exp((Bvbe*afac));
8928 expx = (exp((maxvIbbe*afac))*(1.0+((Bvbe-maxvIbbe)*afac)));
8930 Ibex = (Ibex-(((1.0-modelPar_wbe)*modelPar_ibbe)*(expx-ebbe_t)));
8934 afac = (1.0/(modelPar_nci*vtv));
8935 if ((Vbci<maxvIbci))
8937 expi = exp((Vbci*afac));
8941 expi = (exp((maxvIbci*afac))*(1.0+((Vbci-maxvIbci)*afac)));
8943 afac = (1.0/(modelPar_ncn*vtv));
8944 if ((Vbci<maxvIbcn))
8946 expn = exp((Vbci*afac));
8950 expn = (exp((maxvIbcn*afac))*(1.0+((Vbci-maxvIbcn)*afac)));
8952 Ibcj = ((ibci_t*(expi-1.0))+(ibcn_t*(expn-1.0)));
8953 if (((modelPar_ibeip>0.0)||(modelPar_ibenp>0.0)))
8955 afac = (1.0/(modelPar_nci*vtv));
8956 if ((Vbep<maxvIbeip))
8958 expi = exp((Vbep*afac));
8962 expi = (exp((maxvIbeip*afac))*(1.0+((Vbep-maxvIbeip)*afac)));
8964 afac = (1.0/(modelPar_ncn*vtv));
8965 if ((Vbep<maxvIbenp))
8967 expn = exp((Vbep*afac));
8971 expn = (exp((maxvIbenp*afac))*(1.0+((Vbep-maxvIbenp)*afac)));
8973 Ibep = ((ibeip_t*(expi-1.0))+(ibenp_t*(expn-1.0)));
8986 expi = (exp(VmaxExp)*(1.0+(arg-VmaxExp)));
8995 expx = (exp(VmaxExp)*(1.0+(arg-VmaxExp)));
8997 Kbci = sqrt((1.0+(gamm_t*expi)));
8998 Kbcx = sqrt((1.0+(gamm_t*expx)));
9000 rKp1 = ((Kbci+1.0)/(Kbcx+1.0));
9001 Iohm = ((Vrci+(vtv*((Kbci-Kbcx)-log(rKp1))))*Gci);
9002 derf = ((Ivo*Iohm)/(Gci*(1.0+(((0.5*Ivo)*Ihrcf)*sqrt(((Vrci*Vrci)+0.01))))));
9003 Irci = (Iohm/sqrt((1+(derf*derf))));
9005 Irbi = ((Vrbi*qb)*Gbi);
9007 Irbp = ((Vrbp*qbp)*Gbp);
9009 if ((modelPar_avc1>0.0))
9020 vminm = pow((0.02*(avc2_t+1.0)),(1.0/(1.01-modelPar_mc)));
9021 vl = ((0.5*(sqrt(((((pc_t-Vbci)-vminm)*((pc_t-Vbci)-vminm))+0.01))+((pc_t-Vbci)-vminm)))+vminm);
9022 mac1 = ((-avc2_t)*pow(vl,(modelPar_mc-1.0)));
9029 expl = exp(VmaxExp);
9030 expi = (expl*(1.0+(mac1-VmaxExp)));
9032 avalf = ((modelPar_avc1*vl)*expi);
9035 Igc = (((Itxf-Itzr)-Ibcj)*avalf);
9041 if ((modelPar_avcx1>0.0))
9052 vminm = pow((0.02*(avcx2_t+1.0)),(1.0/(1.01-modelPar_mcx)));
9053 vl = ((0.5*(sqrt(((((-Vbxcx)-vminm)*((-Vbxcx)-vminm))+0.01))+((-Vbxcx)-vminm)))+vminm);
9054 mac1 = ((-avcx2_t)*pow(vl,(modelPar_mcx-1.0)));
9061 expl = exp(VmaxExp);
9062 expi = (expl*(1.0+(mac1-VmaxExp)));
9064 avalf = ((modelPar_avcx1*vl)*expi);
9067 Igcx = ((-Ircx)*avalf);
9073 if (((modelPar_bbk>0.0)&&(modelPar_ibk0>0.0)))
9075 if ((modelPar_vpte>0.0))
9077 VcbFac = ((1.0-(Vbci/modelPar_vpte))-0.1);
9078 VcbFac = (0.1+(0.5*(VcbFac+sqrt(((VcbFac*VcbFac)+1.0e-4)))));
9079 Iibk = (modelPar_ibk0*VcbFac);
9083 Iibk = modelPar_ibk0;
9085 Ibk = (modelPar_bbk*pow(((Itzf/Iibk)-1.0),modelPar_abk));
9091 Ibc = ((Ibcj-Igc)-Ibk);
9092 if (((modelPar_ibcip>0.0)||(modelPar_ibcnp>0.0)))
9094 afac = (1.0/(modelPar_ncip*vtv));
9095 if ((Vbcp<maxvIbcip))
9097 expi = exp((Vbcp*afac));
9101 expi = (exp((maxvIbcip*afac))*(1.0+((Vbcp-maxvIbcip)*afac)));
9103 afac = (1.0/(modelPar_ncnp*vtv));
9104 if ((Vbcp<maxvIbcnp))
9106 expn = exp((Vbcp*afac));
9110 expn = (exp((maxvIbcnp*afac))*(1.0+((Vbcp-maxvIbcnp)*afac)));
9112 Ibcp = ((ibcip_t*(expi-1.0))+(ibcnp_t*(expn-1.0)));
9118 power = ((((((((((((((Ibe*Vbei)+(Ibc*Vbci))+((Itxf-Itzr)*Vcei))+(Ibex*Vbex))+(Ibep*Vbep))+(Irs*Vrs))+(Ibcp*Vbcp))+(Iccp*Vcep))+(Ircx*Vrcx))+(Irci*Vrci))+(Irbx*Vrbx))+(Irbi*Vrbi))+(Ire*Vre))+(Irbp*Vrbp));
9119 Ith = ((-instancePar_sw_et)*power);
9123 Ibe = (Ibe+(gminMod*Vbei));
9124 Ibex = (Ibex+(gminMod*Vbex));
9125 Ibep = (Ibep+(gminMod*Vbep));
9126 Ibc = (Ibc+(gminMod*Vbci));
9127 Igcx = (Igcx+(gminMod*Vbxcx));
9128 Ibcp = (Ibcp+(gminMod*Vbcp));
9129 Ibe = ((modelPar_VBICtype*mMod)*Ibe);
9130 Ibex = ((modelPar_VBICtype*mMod)*Ibex);
9131 Itzf = ((modelPar_VBICtype*mMod)*Itzf);
9132 Itxf = ((modelPar_VBICtype*mMod)*Itxf);
9133 Itzr = ((modelPar_VBICtype*mMod)*Itzr);
9134 Ibc = ((modelPar_VBICtype*mMod)*Ibc);
9135 Igcx = ((modelPar_VBICtype*mMod)*Igcx);
9136 Ibep = ((modelPar_VBICtype*mMod)*Ibep);
9138 Irci = ((modelPar_VBICtype*mMod)*Irci);
9143 Ibcp = ((modelPar_VBICtype*mMod)*Ibcp);
9144 Iccp = ((modelPar_VBICtype*mMod)*Iccp);
9152 if ((modelPar_cjcp>0.0))
9169 dv0 = ((-ps_t)*modelPar_fc);
9170 if ((modelPar_ajs<=0.0))
9175 pwq = pow((1.0-modelPar_fc),(-modelPar_ms));
9176 qlo = ((ps_t*(1.0-(pwq*(1.0-modelPar_fc))))/(1.0-modelPar_ms));
9177 qhi = ((dvh*(1.0+(((0.5*modelPar_ms)*dvh)/(ps_t*(1.0-modelPar_fc)))))*pwq);
9181 qlo = ((ps_t*(1.0-pow((1.0-(Vbcp/ps_t)),(1.0-modelPar_ms))))/(1.0-modelPar_ms));
9188 mv0 = sqrt(((dv0*dv0)+((4.0*modelPar_ajs)*modelPar_ajs)));
9189 vl0 = ((-0.5)*(dv0+mv0));
9190 q0 = (((-ps_t)*pow((1.0-(vl0/ps_t)),(1.0-modelPar_ms)))/(1.0-modelPar_ms));
9192 mv = sqrt(((dv*dv)+((4.0*modelPar_ajs)*modelPar_ajs)));
9193 vl = ((0.5*(dv-mv))-dv0);
9194 qlo = (((-ps_t)*pow((1.0-(vl/ps_t)),(1.0-modelPar_ms)))/(1.0-modelPar_ms));
9195 qdbcp = ((qlo+((pow((1.0-modelPar_fc),(-modelPar_ms))*((Vbcp-vl)+vl0))*(1.0+(((0.5*modelPar_ms)*((Vbcp-vl)+vl0))/(ps_t*(1.0-modelPar_fc))))))-q0);
9219 dv0 = ((-pe_t)*modelPar_fc);
9220 if ((modelPar_aje<=0.0))
9225 pwq = pow((1.0-modelPar_fc),(-modelPar_me));
9226 qlo = ((pe_t*(1.0-(pwq*(1.0-modelPar_fc))))/(1.0-modelPar_me));
9227 qhi = ((dvh*(1.0+(((0.5*modelPar_me)*dvh)/(pe_t*(1.0-modelPar_fc)))))*pwq);
9231 qlo = ((pe_t*(1.0-pow((1.0-(Vbex/pe_t)),(1.0-modelPar_me))))/(1.0-modelPar_me));
9238 mv0 = sqrt(((dv0*dv0)+((4.0*modelPar_aje)*modelPar_aje)));
9239 vl0 = ((-0.5)*(dv0+mv0));
9240 q0 = (((-pe_t)*pow((1.0-(vl0/pe_t)),(1.0-modelPar_me)))/(1.0-modelPar_me));
9242 mv = sqrt(((dv*dv)+((4.0*modelPar_aje)*modelPar_aje)));
9243 vl = ((0.5*(dv-mv))-dv0);
9244 qlo = (((-pe_t)*pow((1.0-(vl/pe_t)),(1.0-modelPar_me)))/(1.0-modelPar_me));
9245 qdbex = ((qlo+((pow((1.0-modelPar_fc),(-modelPar_me))*((Vbex-vl)+vl0))*(1.0+(((0.5*modelPar_me)*((Vbex-vl)+vl0))/(pe_t*(1.0-modelPar_fc))))))-q0);
9274 dv0 = ((-pc_t)*modelPar_fc);
9275 if ((modelPar_ajc<=0.0))
9280 pwq = pow((1.0-modelPar_fc),((-1.0)-modelPar_mc));
9281 qlo = ((pc_t*(1.0-((pwq*(1.0-modelPar_fc))*(1.0-modelPar_fc))))/(1.0-modelPar_mc));
9282 qhi = ((dvh*((1.0-modelPar_fc)+(((0.5*modelPar_mc)*dvh)/pc_t)))*pwq);
9286 if (((modelPar_vrt>0.0)&&(Vbep<(-modelPar_vrt))))
9288 qlo = ((pc_t*(1.0-(pow((1.0+(modelPar_vrt/pc_t)),(1.0-modelPar_mc))*(1.0-(((1.0-modelPar_mc)*(Vbep+modelPar_vrt))/(pc_t+modelPar_vrt))))))/(1.0-modelPar_mc));
9292 qlo = ((pc_t*(1.0-pow((1.0-(Vbep/pc_t)),(1.0-modelPar_mc))))/(1.0-modelPar_mc));
9300 if (((modelPar_vrt>0.0)&&(modelPar_art>0.0)))
9302 vn0 = ((modelPar_vrt+dv0)/(modelPar_vrt-dv0));
9303 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)))));
9304 vl0 = (0.5*(((vnl0*(modelPar_vrt-dv0))-modelPar_vrt)-dv0));
9305 qlo0 = ((pc_t*(1.0-pow((1.0-(vl0/pc_t)),(1.0-modelPar_mc))))/(1.0-modelPar_mc));
9306 vn = ((((2*Vbep)+modelPar_vrt)+dv0)/(modelPar_vrt-dv0));
9307 vnl = ((2.0*vn)/(sqrt((((vn-1.0)*(vn-1))+((4*modelPar_ajc)*modelPar_ajc)))+sqrt((((vn+1.0)*(vn+1))+((4*modelPar_art)*modelPar_art)))));
9308 vl = (0.5*(((vnl*(modelPar_vrt-dv0))-modelPar_vrt)-dv0));
9309 qlo = ((pc_t*(1.0-pow((1.0-(vl/pc_t)),(1.0-modelPar_mc))))/(1.0-modelPar_mc));
9310 sel = (0.5*(vnl+1.0));
9311 crt = pow((1.0+(modelPar_vrt/pc_t)),(-modelPar_mc));
9312 cmx = pow((1.0+(dv0/pc_t)),(-modelPar_mc));
9313 cl = (((1.0-sel)*crt)+(sel*cmx));
9314 ql = (((Vbep-vl)+vl0)*cl);
9315 qdbep = ((ql+qlo)-qlo0);
9319 mv0 = sqrt(((dv0*dv0)+((4*modelPar_ajc)*modelPar_ajc)));
9320 vl0 = ((-0.5)*(dv0+mv0));
9321 q0 = (((-pc_t)*pow((1.0-(vl0/pc_t)),(1.0-modelPar_mc)))/(1.0-modelPar_mc));
9323 mv = sqrt(((dv*dv)+((4*modelPar_ajc)*modelPar_ajc)));
9324 vl = ((0.5*(dv-mv))-dv0);
9325 qlo = (((-pc_t)*pow((1.0-(vl/pc_t)),(1.0-modelPar_mc)))/(1.0-modelPar_mc));
9326 qdbep = ((qlo+(pow((1.0-modelPar_fc),(-modelPar_mc))*((Vbep-vl)+vl0)))-q0);
9331 sgIf = ((Ifi>0.0)?1.0:0.0);
9332 rIf = ((Ifi*sgIf)*Iitf);
9333 mIf = (rIf/(rIf+1.0));
9334 arg = ((Vbci*Ivtf)/1.44);
9341 expi = (exp(VmaxExp)*(1.0+(arg-VmaxExp)));
9343 tff = ((modelPar_tf*(1.0+(modelPar_qtf*q1)))*(1.0+(((modelPar_xtf*expi)*(sltf+(mIf*mIf)))*sgIf)));
9344 Qbe = (((cje_t*qdbe)*modelPar_wbe)+((tff*Ifi)/qb));
9345 Qbex = ((cje_t*qdbex)*(1.0-modelPar_wbe));
9346 Qbc = (((cjc_t*qdbc)+(modelPar_tr*Iri))+(modelPar_qco*Kbci));
9347 Qbcx = (modelPar_qco*Kbcx);
9348 Qbep = ((cjep_t*qdbep)+(modelPar_tr*Ifp));
9349 Qbcp = ((cjcp_t*qdbcp)+(modelPar_ccso*Vbcp));
9350 Qbeo = (Vbe*modelPar_cbeo);
9351 Qbco = (Vbc*modelPar_cbco);
9352 Qcth = (dt_et*modelPar_cth);
9353 Qxf1 = (modelPar_td*Vxf1);
9354 Qxf2 = ((modelPar_td*Vxf2)*0.3333333333333333);
9355 Qbe = ((modelPar_VBICtype*mMod)*Qbe);
9356 Qbex = ((modelPar_VBICtype*mMod)*Qbex);
9357 Qbc = ((modelPar_VBICtype*mMod)*Qbc);
9358 Qbcx = ((modelPar_VBICtype*mMod)*Qbcx);
9359 Qbep = ((modelPar_VBICtype*mMod)*Qbep);
9362 Qbcp = ((modelPar_VBICtype*mMod)*Qbcp);
9369 staticContributions[admsNodeID_bi] += Ibe;
9370 staticContributions[admsNodeID_ei] -= Ibe;
9372 staticContributions[admsNodeID_bx] += Ibex;
9373 staticContributions[admsNodeID_ei] -= Ibex;
9375 staticContributions[admsNodeID_ci] += Itxf;
9376 staticContributions[admsNodeID_ei] -= Itxf;
9378 staticContributions[admsNodeID_ei] += Itzr;
9379 staticContributions[admsNodeID_ci] -= Itzr;
9381 staticContributions[admsNodeID_bi] += Ibc;
9382 staticContributions[admsNodeID_ci] -= Ibc;
9384 staticContributions[admsNodeID_bx] += Igcx;
9385 staticContributions[admsNodeID_cx] -= Igcx;
9387 staticContributions[admsNodeID_bx] += Ibep;
9388 staticContributions[admsNodeID_bp] -= Ibep;
9390 staticContributions[admsNodeID_c] += Ircx;
9391 staticContributions[admsNodeID_cx] -= Ircx;
9393 staticContributions[admsNodeID_cx] += Irci;
9394 staticContributions[admsNodeID_ci] -= Irci;
9396 staticContributions[admsNodeID_b] += Irbx;
9397 staticContributions[admsNodeID_bx] -= Irbx;
9399 staticContributions[admsNodeID_bx] += Irbi;
9400 staticContributions[admsNodeID_bi] -= Irbi;
9402 staticContributions[admsNodeID_e] += Ire;
9403 staticContributions[admsNodeID_ei] -= Ire;
9405 staticContributions[admsNodeID_bp] += Irbp;
9406 staticContributions[admsNodeID_cx] -= Irbp;
9408 staticContributions[admsNodeID_si] += Ibcp;
9409 staticContributions[admsNodeID_bp] -= Ibcp;
9411 staticContributions[admsNodeID_bx] += Iccp;
9412 staticContributions[admsNodeID_si] -= Iccp;
9414 staticContributions[admsNodeID_s] += Irs;
9415 staticContributions[admsNodeID_si] -= Irs;
9417 staticContributions[admsNodeID_xf1] += Ixf1;
9419 staticContributions[admsNodeID_xf2] += Ixf2;
9421 staticContributions[admsNodeID_dt] += Irth;
9423 staticContributions[admsNodeID_dt] += Ith;
9429 dynamicContributions[admsNodeID_bi] += (Qbe);
9430 dynamicContributions[admsNodeID_ei] -= (Qbe);
9432 dynamicContributions[admsNodeID_bx] += (Qbex);
9433 dynamicContributions[admsNodeID_ei] -= (Qbex);
9435 dynamicContributions[admsNodeID_bi] += (Qbc);
9436 dynamicContributions[admsNodeID_ci] -= (Qbc);
9438 dynamicContributions[admsNodeID_bi] += (Qbcx);
9439 dynamicContributions[admsNodeID_cx] -= (Qbcx);
9441 dynamicContributions[admsNodeID_bx] += (Qbep);
9442 dynamicContributions[admsNodeID_bp] -= (Qbep);
9444 dynamicContributions[admsNodeID_b] += (Qbeo);
9445 dynamicContributions[admsNodeID_e] -= (Qbeo);
9447 dynamicContributions[admsNodeID_b] += (Qbco);
9448 dynamicContributions[admsNodeID_c] -= (Qbco);
9450 dynamicContributions[admsNodeID_si] += (Qbcp);
9451 dynamicContributions[admsNodeID_bp] -= (Qbcp);
9453 dynamicContributions[admsNodeID_xf1] += (Qxf1);
9455 dynamicContributions[admsNodeID_xf2] += (Qxf2);
9457 dynamicContributions[admsNodeID_dt] += (Qcth);
9486 void InstanceSensitivity::operator()
9488 const ParameterBase &entity,
9489 const std::string &name,
9490 std::vector<double> & dfdp,
9491 std::vector<double> & dqdp,
9492 std::vector<double> & dbdp,
9493 std::vector<int> & Findices,
9494 std::vector<int> & Qindices,
9495 std::vector<int> & Bindices
9498 const ParameterBase * e1 = &entity;
9499 const Instance & in = *(
dynamic_cast<const Instance *
> (e1));
9500 const Model & mod =in.model_;
9504 Findices.resize(14+0);
9505 Qindices.resize(14+0);
9507 std::vector <double> probeVars(21);
9508 std::vector <AdmsSensFadType> staticContributions(14+0);
9509 std::vector <AdmsSensFadType> dynamicContributions(14+0);
9513 for (
int i=0; i < 14+0 ; ++i)
9515 staticContributions[i]=0;
9516 dynamicContributions[i]=0;
9522 bool modelPar_given_npn=mod.given(
"npn");
9524 bool modelPar_given_pnp=mod.given(
"pnp");
9526 bool modelPar_given_scale=mod.given(
"scale");
9528 bool modelPar_given_shrink=mod.given(
"shrink");
9530 bool modelPar_given_tmin=mod.given(
"tmin");
9532 bool modelPar_given_tmax=mod.given(
"tmax");
9534 bool modelPar_given_gmin=mod.given(
"gmin");
9536 bool modelPar_given_pnjmaxi=mod.given(
"pnjmaxi");
9538 bool modelPar_given_maxexp=mod.given(
"maxexp");
9540 bool modelPar_given_tnom=mod.given(
"tnom");
9542 bool modelPar_given_tminclip=mod.given(
"tminclip");
9544 bool modelPar_given_tmaxclip=mod.given(
"tmaxclip");
9546 bool modelPar_given_rcx=mod.given(
"rcx");
9548 bool modelPar_given_rci=mod.given(
"rci");
9550 bool modelPar_given_vo=mod.given(
"vo");
9552 bool modelPar_given_gamm=mod.given(
"gamm");
9554 bool modelPar_given_hrcf=mod.given(
"hrcf");
9556 bool modelPar_given_rbx=mod.given(
"rbx");
9558 bool modelPar_given_rbi=mod.given(
"rbi");
9560 bool modelPar_given_re=mod.given(
"re");
9562 bool modelPar_given_rs=mod.given(
"rs");
9564 bool modelPar_given_rbp=mod.given(
"rbp");
9566 bool modelPar_given_is=mod.given(
"is");
9568 bool modelPar_given_isrr=mod.given(
"isrr");
9570 bool modelPar_given_nf=mod.given(
"nf");
9572 bool modelPar_given_nr=mod.given(
"nr");
9574 bool modelPar_given_isp=mod.given(
"isp");
9576 bool modelPar_given_wsp=mod.given(
"wsp");
9578 bool modelPar_given_nfp=mod.given(
"nfp");
9580 bool modelPar_given_fc=mod.given(
"fc");
9582 bool modelPar_given_cbeo=mod.given(
"cbeo");
9584 bool modelPar_given_cje=mod.given(
"cje");
9586 bool modelPar_given_pe=mod.given(
"pe");
9588 bool modelPar_given_me=mod.given(
"me");
9590 bool modelPar_given_aje=mod.given(
"aje");
9592 bool modelPar_given_cbco=mod.given(
"cbco");
9594 bool modelPar_given_cjc=mod.given(
"cjc");
9596 bool modelPar_given_pc=mod.given(
"pc");
9598 bool modelPar_given_mc=mod.given(
"mc");
9600 bool modelPar_given_ajc=mod.given(
"ajc");
9602 bool modelPar_given_vrt=mod.given(
"vrt");
9604 bool modelPar_given_art=mod.given(
"art");
9606 bool modelPar_given_qco=mod.given(
"qco");
9608 bool modelPar_given_cjep=mod.given(
"cjep");
9610 bool modelPar_given_cjcp=mod.given(
"cjcp");
9612 bool modelPar_given_ps=mod.given(
"ps");
9614 bool modelPar_given_ms=mod.given(
"ms");
9616 bool modelPar_given_ajs=mod.given(
"ajs");
9618 bool modelPar_given_ccso=mod.given(
"ccso");
9620 bool modelPar_given_ibei=mod.given(
"ibei");
9622 bool modelPar_given_wbe=mod.given(
"wbe");
9624 bool modelPar_given_nei=mod.given(
"nei");
9626 bool modelPar_given_qnibeir=mod.given(
"qnibeir");
9628 bool modelPar_given_iben=mod.given(
"iben");
9630 bool modelPar_given_nen=mod.given(
"nen");
9632 bool modelPar_given_ibci=mod.given(
"ibci");
9634 bool modelPar_given_nci=mod.given(
"nci");
9636 bool modelPar_given_ibcn=mod.given(
"ibcn");
9638 bool modelPar_given_ncn=mod.given(
"ncn");
9640 bool modelPar_given_ibeip=mod.given(
"ibeip");
9642 bool modelPar_given_ibenp=mod.given(
"ibenp");
9644 bool modelPar_given_ibcip=mod.given(
"ibcip");
9646 bool modelPar_given_ncip=mod.given(
"ncip");
9648 bool modelPar_given_ibcnp=mod.given(
"ibcnp");
9650 bool modelPar_given_ncnp=mod.given(
"ncnp");
9652 bool modelPar_given_vef=mod.given(
"vef");
9654 bool modelPar_given_ver=mod.given(
"ver");
9656 bool modelPar_given_ikf=mod.given(
"ikf");
9658 bool modelPar_given_nkf=mod.given(
"nkf");
9660 bool modelPar_given_ikr=mod.given(
"ikr");
9662 bool modelPar_given_ikp=mod.given(
"ikp");
9664 bool modelPar_given_tf=mod.given(
"tf");
9666 bool modelPar_given_qtf=mod.given(
"qtf");
9668 bool modelPar_given_xtf=mod.given(
"xtf");
9670 bool modelPar_given_vtf=mod.given(
"vtf");
9672 bool modelPar_given_itf=mod.given(
"itf");
9674 bool modelPar_given_tr=mod.given(
"tr");
9676 bool modelPar_given_td=mod.given(
"td");
9678 bool modelPar_given_avc1=mod.given(
"avc1");
9680 bool modelPar_given_avc2=mod.given(
"avc2");
9682 bool modelPar_given_avcx1=mod.given(
"avcx1");
9684 bool modelPar_given_avcx2=mod.given(
"avcx2");
9686 bool modelPar_given_mcx=mod.given(
"mcx");
9688 bool modelPar_given_vbbe=mod.given(
"vbbe");
9690 bool modelPar_given_nbbe=mod.given(
"nbbe");
9692 bool modelPar_given_ibbe=mod.given(
"ibbe");
9694 bool modelPar_given_tvbbe1=mod.given(
"tvbbe1");
9696 bool modelPar_given_tvbbe2=mod.given(
"tvbbe2");
9698 bool modelPar_given_tnbbe=mod.given(
"tnbbe");
9700 bool modelPar_given_vpte=mod.given(
"vpte");
9702 bool modelPar_given_ibk0=mod.given(
"ibk0");
9704 bool modelPar_given_abk=mod.given(
"abk");
9706 bool modelPar_given_bbk=mod.given(
"bbk");
9708 bool modelPar_given_kfn=mod.given(
"kfn");
9710 bool modelPar_given_afn=mod.given(
"afn");
9712 bool modelPar_given_bfn=mod.given(
"bfn");
9714 bool modelPar_given_rth=mod.given(
"rth");
9716 bool modelPar_given_cth=mod.given(
"cth");
9718 bool modelPar_given_xre=mod.given(
"xre");
9720 bool modelPar_given_xrb=mod.given(
"xrb");
9722 bool modelPar_given_xrbi=mod.given(
"xrbi");
9724 bool modelPar_given_xrbx=mod.given(
"xrbx");
9726 bool modelPar_given_xrc=mod.given(
"xrc");
9728 bool modelPar_given_xrci=mod.given(
"xrci");
9730 bool modelPar_given_xrcx=mod.given(
"xrcx");
9732 bool modelPar_given_xrbp=mod.given(
"xrbp");
9734 bool modelPar_given_xrs=mod.given(
"xrs");
9736 bool modelPar_given_xvo=mod.given(
"xvo");
9738 bool modelPar_given_ea=mod.given(
"ea");
9740 bool modelPar_given_eaie=mod.given(
"eaie");
9742 bool modelPar_given_eaic=mod.given(
"eaic");
9744 bool modelPar_given_eais=mod.given(
"eais");
9746 bool modelPar_given_eane=mod.given(
"eane");
9748 bool modelPar_given_eanc=mod.given(
"eanc");
9750 bool modelPar_given_eans=mod.given(
"eans");
9752 bool modelPar_given_eap=mod.given(
"eap");
9754 bool modelPar_given_dear=mod.given(
"dear");
9756 bool modelPar_given_xis=mod.given(
"xis");
9758 bool modelPar_given_xii=mod.given(
"xii");
9760 bool modelPar_given_xin=mod.given(
"xin");
9762 bool modelPar_given_xisr=mod.given(
"xisr");
9764 bool modelPar_given_xikf=mod.given(
"xikf");
9766 bool modelPar_given_tavc=mod.given(
"tavc");
9768 bool modelPar_given_tavcx=mod.given(
"tavcx");
9770 bool modelPar_given_tnf=mod.given(
"tnf");
9772 bool modelPar_given_tcvef=mod.given(
"tcvef");
9774 bool modelPar_given_tcver=mod.given(
"tcver");
9776 bool modelPar_given_tcrth=mod.given(
"tcrth");
9783 int modelPar_type=mod.type;
9784 bool modelPar_given_type=mod.given(
"type");
9785 int modelPar_VBICtype=mod.VBICtype;
9786 int modelPar_qbm=mod.qbm;
9787 bool modelPar_given_qbm=mod.given(
"qbm");
9795 unordered_map <std::string,AdmsSensFadType*,HashNoCase,EqualNoCase> inParamMap;
9799 bool instancePar_given_m=in.given(
"m");
9800 inParamMap[
"m"] = &instancePar_m;
9802 bool instancePar_given_trise=in.given(
"trise");
9803 inParamMap[
"trise"] = &instancePar_trise;
9811 int instancePar_sw_noise=in.sw_noise;
9812 bool instancePar_given_sw_noise=in.given(
"sw_noise");
9813 int instancePar_sw_et=in.sw_et;
9814 bool instancePar_given_sw_et=in.given(
"sw_et");
9821 inParamMap[name]->diff(0,1);
9838 Linear::Vector * solVectorPtr = in.extData.nextSolVectorPtr;
9842 probeVars[in.admsProbeID_V_xf2_GND] = (*solVectorPtr)[in.li_xf2];
9843 probeVars[in.admsProbeID_V_xf1_GND] = (*solVectorPtr)[in.li_xf1];
9844 probeVars[in.admsProbeID_V_s_si] = (*solVectorPtr)[in.li_s] - (*solVectorPtr)[in.li_si];
9845 probeVars[in.admsProbeID_V_bx_si] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_si];
9846 probeVars[in.admsProbeID_V_si_bp] = (*solVectorPtr)[in.li_si] - (*solVectorPtr)[in.li_bp];
9847 probeVars[in.admsProbeID_V_bp_cx] = (*solVectorPtr)[in.li_bp] - (*solVectorPtr)[in.li_cx];
9848 probeVars[in.admsProbeID_V_e_ei] = (*solVectorPtr)[in.li_e] - (*solVectorPtr)[in.li_ei];
9849 probeVars[in.admsProbeID_V_bx_bi] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_bi];
9850 probeVars[in.admsProbeID_V_b_bx] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_bx];
9851 probeVars[in.admsProbeID_V_cx_ci] = (*solVectorPtr)[in.li_cx] - (*solVectorPtr)[in.li_ci];
9852 probeVars[in.admsProbeID_V_c_cx] = (*solVectorPtr)[in.li_c] - (*solVectorPtr)[in.li_cx];
9853 probeVars[in.admsProbeID_V_b_c] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_c];
9854 probeVars[in.admsProbeID_V_b_e] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_e];
9855 probeVars[in.admsProbeID_V_bx_bp] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_bp];
9856 probeVars[in.admsProbeID_V_ci_ei] = (*solVectorPtr)[in.li_ci] - (*solVectorPtr)[in.li_ei];
9857 probeVars[in.admsProbeID_V_bx_cx] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_cx];
9858 probeVars[in.admsProbeID_V_bi_cx] = (*solVectorPtr)[in.li_bi] - (*solVectorPtr)[in.li_cx];
9859 probeVars[in.admsProbeID_V_bi_ci] = (*solVectorPtr)[in.li_bi] - (*solVectorPtr)[in.li_ci];
9860 probeVars[in.admsProbeID_V_bx_ei] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_ei];
9861 probeVars[in.admsProbeID_V_bi_ei] = (*solVectorPtr)[in.li_bi] - (*solVectorPtr)[in.li_ei];
9862 probeVars[in.admsProbeID_Temp_dt_GND] = (*solVectorPtr)[in.li_dt];
9865 probeVars[in.admsProbeID_V_bx_bp] *= modelPar_VBICtype;
9866 probeVars[in.admsProbeID_V_bx_cx] *= modelPar_VBICtype;
9867 probeVars[in.admsProbeID_V_bi_cx] *= modelPar_VBICtype;
9868 probeVars[in.admsProbeID_V_bi_ci] *= modelPar_VBICtype;
9869 probeVars[in.admsProbeID_V_bx_ei] *= modelPar_VBICtype;
9870 probeVars[in.admsProbeID_V_bi_ei] *= modelPar_VBICtype;
9875 evaluateModelEquations(
9878 in.admsProbeID_V_xf2_GND,
9879 in.admsProbeID_V_xf1_GND,
9880 in.admsProbeID_V_s_si,
9881 in.admsProbeID_V_bx_si,
9882 in.admsProbeID_V_si_bp,
9883 in.admsProbeID_V_bp_cx,
9884 in.admsProbeID_V_e_ei,
9885 in.admsProbeID_V_bx_bi,
9886 in.admsProbeID_V_b_bx,
9887 in.admsProbeID_V_cx_ci,
9888 in.admsProbeID_V_c_cx,
9889 in.admsProbeID_V_b_c,
9890 in.admsProbeID_V_b_e,
9891 in.admsProbeID_V_bx_bp,
9892 in.admsProbeID_V_ci_ei,
9893 in.admsProbeID_V_bx_cx,
9894 in.admsProbeID_V_bi_cx,
9895 in.admsProbeID_V_bi_ci,
9896 in.admsProbeID_V_bx_ei,
9897 in.admsProbeID_V_bi_ei,
9898 in.admsProbeID_Temp_dt_GND,
9918 instancePar_given_m,
9920 instancePar_given_trise,
9922 instancePar_sw_noise,
9923 instancePar_given_sw_noise,
9925 instancePar_given_sw_et,
9933 modelPar_given_scale,
9935 modelPar_given_shrink,
9937 modelPar_given_tmin,
9939 modelPar_given_tmax,
9941 modelPar_given_gmin,
9943 modelPar_given_pnjmaxi,
9945 modelPar_given_maxexp,
9947 modelPar_given_tnom,
9949 modelPar_given_tminclip,
9951 modelPar_given_tmaxclip,
9959 modelPar_given_gamm,
9961 modelPar_given_hrcf,
9975 modelPar_given_isrr,
9989 modelPar_given_cbeo,
9999 modelPar_given_cbco,
10001 modelPar_given_cjc,
10007 modelPar_given_ajc,
10009 modelPar_given_vrt,
10011 modelPar_given_art,
10013 modelPar_given_qco,
10015 modelPar_given_cjep,
10017 modelPar_given_cjcp,
10023 modelPar_given_ajs,
10025 modelPar_given_ccso,
10027 modelPar_given_ibei,
10029 modelPar_given_wbe,
10031 modelPar_given_nei,
10033 modelPar_given_qnibeir,
10035 modelPar_given_iben,
10037 modelPar_given_nen,
10039 modelPar_given_ibci,
10041 modelPar_given_nci,
10043 modelPar_given_ibcn,
10045 modelPar_given_ncn,
10047 modelPar_given_ibeip,
10049 modelPar_given_ibenp,
10051 modelPar_given_ibcip,
10053 modelPar_given_ncip,
10055 modelPar_given_ibcnp,
10057 modelPar_given_ncnp,
10059 modelPar_given_vef,
10061 modelPar_given_ver,
10063 modelPar_given_ikf,
10065 modelPar_given_nkf,
10067 modelPar_given_ikr,
10069 modelPar_given_ikp,
10073 modelPar_given_qtf,
10075 modelPar_given_xtf,
10077 modelPar_given_vtf,
10079 modelPar_given_itf,
10085 modelPar_given_avc1,
10087 modelPar_given_avc2,
10089 modelPar_given_avcx1,
10091 modelPar_given_avcx2,
10093 modelPar_given_mcx,
10095 modelPar_given_vbbe,
10097 modelPar_given_nbbe,
10099 modelPar_given_ibbe,
10101 modelPar_given_tvbbe1,
10103 modelPar_given_tvbbe2,
10105 modelPar_given_tnbbe,
10107 modelPar_given_vpte,
10109 modelPar_given_ibk0,
10111 modelPar_given_abk,
10113 modelPar_given_bbk,
10115 modelPar_given_kfn,
10117 modelPar_given_afn,
10119 modelPar_given_bfn,
10121 modelPar_given_rth,
10123 modelPar_given_cth,
10125 modelPar_given_xre,
10127 modelPar_given_xrb,
10129 modelPar_given_xrbi,
10131 modelPar_given_xrbx,
10133 modelPar_given_xrc,
10135 modelPar_given_xrci,
10137 modelPar_given_xrcx,
10139 modelPar_given_xrbp,
10141 modelPar_given_xrs,
10143 modelPar_given_xvo,
10147 modelPar_given_eaie,
10149 modelPar_given_eaic,
10151 modelPar_given_eais,
10153 modelPar_given_eane,
10155 modelPar_given_eanc,
10157 modelPar_given_eans,
10159 modelPar_given_eap,
10161 modelPar_given_dear,
10163 modelPar_given_xis,
10165 modelPar_given_xii,
10167 modelPar_given_xin,
10169 modelPar_given_xisr,
10171 modelPar_given_xikf,
10173 modelPar_given_tavc,
10175 modelPar_given_tavcx,
10177 modelPar_given_tnf,
10179 modelPar_given_tcvef,
10181 modelPar_given_tcver,
10183 modelPar_given_tcrth,
10186 modelPar_given_type,
10189 modelPar_given_qbm,
10190 in.admsTemperature,
10192 in.getDeviceOptions().gmin,
10193 staticContributions,
10194 dynamicContributions,
10200 dfdp[in.admsNodeID_c] += staticContributions[in.admsNodeID_c].dx(0);
10201 dqdp[in.admsNodeID_c] += dynamicContributions[in.admsNodeID_c].dx(0);
10202 Findices[in.admsNodeID_c] = in.li_c;
10203 Qindices[in.admsNodeID_c] = in.li_c;
10204 dfdp[in.admsNodeID_b] += staticContributions[in.admsNodeID_b].dx(0);
10205 dqdp[in.admsNodeID_b] += dynamicContributions[in.admsNodeID_b].dx(0);
10206 Findices[in.admsNodeID_b] = in.li_b;
10207 Qindices[in.admsNodeID_b] = in.li_b;
10208 dfdp[in.admsNodeID_e] += staticContributions[in.admsNodeID_e].dx(0);
10209 dqdp[in.admsNodeID_e] += dynamicContributions[in.admsNodeID_e].dx(0);
10210 Findices[in.admsNodeID_e] = in.li_e;
10211 Qindices[in.admsNodeID_e] = in.li_e;
10212 dfdp[in.admsNodeID_s] += staticContributions[in.admsNodeID_s].dx(0);
10213 dqdp[in.admsNodeID_s] += dynamicContributions[in.admsNodeID_s].dx(0);
10214 Findices[in.admsNodeID_s] = in.li_s;
10215 Qindices[in.admsNodeID_s] = in.li_s;
10216 dfdp[in.admsNodeID_dt] += staticContributions[in.admsNodeID_dt].dx(0);
10217 dqdp[in.admsNodeID_dt] += dynamicContributions[in.admsNodeID_dt].dx(0);
10218 Findices[in.admsNodeID_dt] = in.li_dt;
10219 Qindices[in.admsNodeID_dt] = in.li_dt;
10220 dfdp[in.admsNodeID_cx] += staticContributions[in.admsNodeID_cx].dx(0);
10221 dqdp[in.admsNodeID_cx] += dynamicContributions[in.admsNodeID_cx].dx(0);
10222 Findices[in.admsNodeID_cx] = in.li_cx;
10223 Qindices[in.admsNodeID_cx] = in.li_cx;
10224 dfdp[in.admsNodeID_ci] += staticContributions[in.admsNodeID_ci].dx(0);
10225 dqdp[in.admsNodeID_ci] += dynamicContributions[in.admsNodeID_ci].dx(0);
10226 Findices[in.admsNodeID_ci] = in.li_ci;
10227 Qindices[in.admsNodeID_ci] = in.li_ci;
10228 dfdp[in.admsNodeID_bx] += staticContributions[in.admsNodeID_bx].dx(0);
10229 dqdp[in.admsNodeID_bx] += dynamicContributions[in.admsNodeID_bx].dx(0);
10230 Findices[in.admsNodeID_bx] = in.li_bx;
10231 Qindices[in.admsNodeID_bx] = in.li_bx;
10232 dfdp[in.admsNodeID_bi] += staticContributions[in.admsNodeID_bi].dx(0);
10233 dqdp[in.admsNodeID_bi] += dynamicContributions[in.admsNodeID_bi].dx(0);
10234 Findices[in.admsNodeID_bi] = in.li_bi;
10235 Qindices[in.admsNodeID_bi] = in.li_bi;
10236 dfdp[in.admsNodeID_ei] += staticContributions[in.admsNodeID_ei].dx(0);
10237 dqdp[in.admsNodeID_ei] += dynamicContributions[in.admsNodeID_ei].dx(0);
10238 Findices[in.admsNodeID_ei] = in.li_ei;
10239 Qindices[in.admsNodeID_ei] = in.li_ei;
10240 dfdp[in.admsNodeID_bp] += staticContributions[in.admsNodeID_bp].dx(0);
10241 dqdp[in.admsNodeID_bp] += dynamicContributions[in.admsNodeID_bp].dx(0);
10242 Findices[in.admsNodeID_bp] = in.li_bp;
10243 Qindices[in.admsNodeID_bp] = in.li_bp;
10244 dfdp[in.admsNodeID_si] += staticContributions[in.admsNodeID_si].dx(0);
10245 dqdp[in.admsNodeID_si] += dynamicContributions[in.admsNodeID_si].dx(0);
10246 Findices[in.admsNodeID_si] = in.li_si;
10247 Qindices[in.admsNodeID_si] = in.li_si;
10248 dfdp[in.admsNodeID_xf1] += staticContributions[in.admsNodeID_xf1].dx(0);
10249 dqdp[in.admsNodeID_xf1] += dynamicContributions[in.admsNodeID_xf1].dx(0);
10250 Findices[in.admsNodeID_xf1] = in.li_xf1;
10251 Qindices[in.admsNodeID_xf1] = in.li_xf1;
10252 dfdp[in.admsNodeID_xf2] += staticContributions[in.admsNodeID_xf2].dx(0);
10253 dqdp[in.admsNodeID_xf2] += dynamicContributions[in.admsNodeID_xf2].dx(0);
10254 Findices[in.admsNodeID_xf2] = in.li_xf2;
10255 Qindices[in.admsNodeID_xf2] = in.li_xf2;
10282 void ModelSensitivity::operator()
10284 const ParameterBase &entity,
10285 const std::string &name,
10286 std::vector<double> & dfdp,
10287 std::vector<double> & dqdp,
10288 std::vector<double> & dbdp,
10289 std::vector<int> & Findices,
10290 std::vector<int> & Qindices,
10291 std::vector<int> & Bindices
10294 const ParameterBase * e1 = &entity;
10295 const Model & mod = *(
dynamic_cast<const Model *
> (e1));
10296 int sizeInstance = mod.instanceContainer.size();
10298 dfdp.resize((14+0)*sizeInstance);
10299 dqdp.resize((14+0)*sizeInstance);
10300 Findices.resize((14+0)*sizeInstance);
10301 Qindices.resize((14+0)*sizeInstance);
10303 std::vector <double> probeVars(21);
10304 std::vector <AdmsSensFadType> staticContributions(14+0);
10305 std::vector <AdmsSensFadType> dynamicContributions(14+0);
10312 unordered_map <std::string,AdmsSensFadType*,HashNoCase,EqualNoCase> modParamMap;
10316 bool modelPar_given_npn=mod.given(
"npn");
10317 modParamMap[
"npn"] = &modelPar_npn;
10319 bool modelPar_given_pnp=mod.given(
"pnp");
10320 modParamMap[
"pnp"] = &modelPar_pnp;
10322 bool modelPar_given_scale=mod.given(
"scale");
10323 modParamMap[
"scale"] = &modelPar_scale;
10325 bool modelPar_given_shrink=mod.given(
"shrink");
10326 modParamMap[
"shrink"] = &modelPar_shrink;
10328 bool modelPar_given_tmin=mod.given(
"tmin");
10329 modParamMap[
"tmin"] = &modelPar_tmin;
10331 bool modelPar_given_tmax=mod.given(
"tmax");
10332 modParamMap[
"tmax"] = &modelPar_tmax;
10334 bool modelPar_given_gmin=mod.given(
"gmin");
10335 modParamMap[
"gmin"] = &modelPar_gmin;
10337 bool modelPar_given_pnjmaxi=mod.given(
"pnjmaxi");
10338 modParamMap[
"pnjmaxi"] = &modelPar_pnjmaxi;
10340 bool modelPar_given_maxexp=mod.given(
"maxexp");
10341 modParamMap[
"maxexp"] = &modelPar_maxexp;
10343 bool modelPar_given_tnom=mod.given(
"tnom");
10344 modParamMap[
"tnom"] = &modelPar_tnom;
10346 bool modelPar_given_tminclip=mod.given(
"tminclip");
10347 modParamMap[
"tminclip"] = &modelPar_tminclip;
10349 bool modelPar_given_tmaxclip=mod.given(
"tmaxclip");
10350 modParamMap[
"tmaxclip"] = &modelPar_tmaxclip;
10352 bool modelPar_given_rcx=mod.given(
"rcx");
10353 modParamMap[
"rcx"] = &modelPar_rcx;
10355 bool modelPar_given_rci=mod.given(
"rci");
10356 modParamMap[
"rci"] = &modelPar_rci;
10358 bool modelPar_given_vo=mod.given(
"vo");
10359 modParamMap[
"vo"] = &modelPar_vo;
10361 bool modelPar_given_gamm=mod.given(
"gamm");
10362 modParamMap[
"gamm"] = &modelPar_gamm;
10364 bool modelPar_given_hrcf=mod.given(
"hrcf");
10365 modParamMap[
"hrcf"] = &modelPar_hrcf;
10367 bool modelPar_given_rbx=mod.given(
"rbx");
10368 modParamMap[
"rbx"] = &modelPar_rbx;
10370 bool modelPar_given_rbi=mod.given(
"rbi");
10371 modParamMap[
"rbi"] = &modelPar_rbi;
10373 bool modelPar_given_re=mod.given(
"re");
10374 modParamMap[
"re"] = &modelPar_re;
10376 bool modelPar_given_rs=mod.given(
"rs");
10377 modParamMap[
"rs"] = &modelPar_rs;
10379 bool modelPar_given_rbp=mod.given(
"rbp");
10380 modParamMap[
"rbp"] = &modelPar_rbp;
10382 bool modelPar_given_is=mod.given(
"is");
10383 modParamMap[
"is"] = &modelPar_is;
10385 bool modelPar_given_isrr=mod.given(
"isrr");
10386 modParamMap[
"isrr"] = &modelPar_isrr;
10388 bool modelPar_given_nf=mod.given(
"nf");
10389 modParamMap[
"nf"] = &modelPar_nf;
10391 bool modelPar_given_nr=mod.given(
"nr");
10392 modParamMap[
"nr"] = &modelPar_nr;
10394 bool modelPar_given_isp=mod.given(
"isp");
10395 modParamMap[
"isp"] = &modelPar_isp;
10397 bool modelPar_given_wsp=mod.given(
"wsp");
10398 modParamMap[
"wsp"] = &modelPar_wsp;
10400 bool modelPar_given_nfp=mod.given(
"nfp");
10401 modParamMap[
"nfp"] = &modelPar_nfp;
10403 bool modelPar_given_fc=mod.given(
"fc");
10404 modParamMap[
"fc"] = &modelPar_fc;
10406 bool modelPar_given_cbeo=mod.given(
"cbeo");
10407 modParamMap[
"cbeo"] = &modelPar_cbeo;
10409 bool modelPar_given_cje=mod.given(
"cje");
10410 modParamMap[
"cje"] = &modelPar_cje;
10412 bool modelPar_given_pe=mod.given(
"pe");
10413 modParamMap[
"pe"] = &modelPar_pe;
10415 bool modelPar_given_me=mod.given(
"me");
10416 modParamMap[
"me"] = &modelPar_me;
10418 bool modelPar_given_aje=mod.given(
"aje");
10419 modParamMap[
"aje"] = &modelPar_aje;
10421 bool modelPar_given_cbco=mod.given(
"cbco");
10422 modParamMap[
"cbco"] = &modelPar_cbco;
10424 bool modelPar_given_cjc=mod.given(
"cjc");
10425 modParamMap[
"cjc"] = &modelPar_cjc;
10427 bool modelPar_given_pc=mod.given(
"pc");
10428 modParamMap[
"pc"] = &modelPar_pc;
10430 bool modelPar_given_mc=mod.given(
"mc");
10431 modParamMap[
"mc"] = &modelPar_mc;
10433 bool modelPar_given_ajc=mod.given(
"ajc");
10434 modParamMap[
"ajc"] = &modelPar_ajc;
10436 bool modelPar_given_vrt=mod.given(
"vrt");
10437 modParamMap[
"vrt"] = &modelPar_vrt;
10439 bool modelPar_given_art=mod.given(
"art");
10440 modParamMap[
"art"] = &modelPar_art;
10442 bool modelPar_given_qco=mod.given(
"qco");
10443 modParamMap[
"qco"] = &modelPar_qco;
10445 bool modelPar_given_cjep=mod.given(
"cjep");
10446 modParamMap[
"cjep"] = &modelPar_cjep;
10448 bool modelPar_given_cjcp=mod.given(
"cjcp");
10449 modParamMap[
"cjcp"] = &modelPar_cjcp;
10451 bool modelPar_given_ps=mod.given(
"ps");
10452 modParamMap[
"ps"] = &modelPar_ps;
10454 bool modelPar_given_ms=mod.given(
"ms");
10455 modParamMap[
"ms"] = &modelPar_ms;
10457 bool modelPar_given_ajs=mod.given(
"ajs");
10458 modParamMap[
"ajs"] = &modelPar_ajs;
10460 bool modelPar_given_ccso=mod.given(
"ccso");
10461 modParamMap[
"ccso"] = &modelPar_ccso;
10463 bool modelPar_given_ibei=mod.given(
"ibei");
10464 modParamMap[
"ibei"] = &modelPar_ibei;
10466 bool modelPar_given_wbe=mod.given(
"wbe");
10467 modParamMap[
"wbe"] = &modelPar_wbe;
10469 bool modelPar_given_nei=mod.given(
"nei");
10470 modParamMap[
"nei"] = &modelPar_nei;
10472 bool modelPar_given_qnibeir=mod.given(
"qnibeir");
10473 modParamMap[
"qnibeir"] = &modelPar_qnibeir;
10475 bool modelPar_given_iben=mod.given(
"iben");
10476 modParamMap[
"iben"] = &modelPar_iben;
10478 bool modelPar_given_nen=mod.given(
"nen");
10479 modParamMap[
"nen"] = &modelPar_nen;
10481 bool modelPar_given_ibci=mod.given(
"ibci");
10482 modParamMap[
"ibci"] = &modelPar_ibci;
10484 bool modelPar_given_nci=mod.given(
"nci");
10485 modParamMap[
"nci"] = &modelPar_nci;
10487 bool modelPar_given_ibcn=mod.given(
"ibcn");
10488 modParamMap[
"ibcn"] = &modelPar_ibcn;
10490 bool modelPar_given_ncn=mod.given(
"ncn");
10491 modParamMap[
"ncn"] = &modelPar_ncn;
10493 bool modelPar_given_ibeip=mod.given(
"ibeip");
10494 modParamMap[
"ibeip"] = &modelPar_ibeip;
10496 bool modelPar_given_ibenp=mod.given(
"ibenp");
10497 modParamMap[
"ibenp"] = &modelPar_ibenp;
10499 bool modelPar_given_ibcip=mod.given(
"ibcip");
10500 modParamMap[
"ibcip"] = &modelPar_ibcip;
10502 bool modelPar_given_ncip=mod.given(
"ncip");
10503 modParamMap[
"ncip"] = &modelPar_ncip;
10505 bool modelPar_given_ibcnp=mod.given(
"ibcnp");
10506 modParamMap[
"ibcnp"] = &modelPar_ibcnp;
10508 bool modelPar_given_ncnp=mod.given(
"ncnp");
10509 modParamMap[
"ncnp"] = &modelPar_ncnp;
10511 bool modelPar_given_vef=mod.given(
"vef");
10512 modParamMap[
"vef"] = &modelPar_vef;
10514 bool modelPar_given_ver=mod.given(
"ver");
10515 modParamMap[
"ver"] = &modelPar_ver;
10517 bool modelPar_given_ikf=mod.given(
"ikf");
10518 modParamMap[
"ikf"] = &modelPar_ikf;
10520 bool modelPar_given_nkf=mod.given(
"nkf");
10521 modParamMap[
"nkf"] = &modelPar_nkf;
10523 bool modelPar_given_ikr=mod.given(
"ikr");
10524 modParamMap[
"ikr"] = &modelPar_ikr;
10526 bool modelPar_given_ikp=mod.given(
"ikp");
10527 modParamMap[
"ikp"] = &modelPar_ikp;
10529 bool modelPar_given_tf=mod.given(
"tf");
10530 modParamMap[
"tf"] = &modelPar_tf;
10532 bool modelPar_given_qtf=mod.given(
"qtf");
10533 modParamMap[
"qtf"] = &modelPar_qtf;
10535 bool modelPar_given_xtf=mod.given(
"xtf");
10536 modParamMap[
"xtf"] = &modelPar_xtf;
10538 bool modelPar_given_vtf=mod.given(
"vtf");
10539 modParamMap[
"vtf"] = &modelPar_vtf;
10541 bool modelPar_given_itf=mod.given(
"itf");
10542 modParamMap[
"itf"] = &modelPar_itf;
10544 bool modelPar_given_tr=mod.given(
"tr");
10545 modParamMap[
"tr"] = &modelPar_tr;
10547 bool modelPar_given_td=mod.given(
"td");
10548 modParamMap[
"td"] = &modelPar_td;
10550 bool modelPar_given_avc1=mod.given(
"avc1");
10551 modParamMap[
"avc1"] = &modelPar_avc1;
10553 bool modelPar_given_avc2=mod.given(
"avc2");
10554 modParamMap[
"avc2"] = &modelPar_avc2;
10556 bool modelPar_given_avcx1=mod.given(
"avcx1");
10557 modParamMap[
"avcx1"] = &modelPar_avcx1;
10559 bool modelPar_given_avcx2=mod.given(
"avcx2");
10560 modParamMap[
"avcx2"] = &modelPar_avcx2;
10562 bool modelPar_given_mcx=mod.given(
"mcx");
10563 modParamMap[
"mcx"] = &modelPar_mcx;
10565 bool modelPar_given_vbbe=mod.given(
"vbbe");
10566 modParamMap[
"vbbe"] = &modelPar_vbbe;
10568 bool modelPar_given_nbbe=mod.given(
"nbbe");
10569 modParamMap[
"nbbe"] = &modelPar_nbbe;
10571 bool modelPar_given_ibbe=mod.given(
"ibbe");
10572 modParamMap[
"ibbe"] = &modelPar_ibbe;
10574 bool modelPar_given_tvbbe1=mod.given(
"tvbbe1");
10575 modParamMap[
"tvbbe1"] = &modelPar_tvbbe1;
10577 bool modelPar_given_tvbbe2=mod.given(
"tvbbe2");
10578 modParamMap[
"tvbbe2"] = &modelPar_tvbbe2;
10580 bool modelPar_given_tnbbe=mod.given(
"tnbbe");
10581 modParamMap[
"tnbbe"] = &modelPar_tnbbe;
10583 bool modelPar_given_vpte=mod.given(
"vpte");
10584 modParamMap[
"vpte"] = &modelPar_vpte;
10586 bool modelPar_given_ibk0=mod.given(
"ibk0");
10587 modParamMap[
"ibk0"] = &modelPar_ibk0;
10589 bool modelPar_given_abk=mod.given(
"abk");
10590 modParamMap[
"abk"] = &modelPar_abk;
10592 bool modelPar_given_bbk=mod.given(
"bbk");
10593 modParamMap[
"bbk"] = &modelPar_bbk;
10595 bool modelPar_given_kfn=mod.given(
"kfn");
10596 modParamMap[
"kfn"] = &modelPar_kfn;
10598 bool modelPar_given_afn=mod.given(
"afn");
10599 modParamMap[
"afn"] = &modelPar_afn;
10601 bool modelPar_given_bfn=mod.given(
"bfn");
10602 modParamMap[
"bfn"] = &modelPar_bfn;
10604 bool modelPar_given_rth=mod.given(
"rth");
10605 modParamMap[
"rth"] = &modelPar_rth;
10607 bool modelPar_given_cth=mod.given(
"cth");
10608 modParamMap[
"cth"] = &modelPar_cth;
10610 bool modelPar_given_xre=mod.given(
"xre");
10611 modParamMap[
"xre"] = &modelPar_xre;
10613 bool modelPar_given_xrb=mod.given(
"xrb");
10614 modParamMap[
"xrb"] = &modelPar_xrb;
10616 bool modelPar_given_xrbi=mod.given(
"xrbi");
10617 modParamMap[
"xrbi"] = &modelPar_xrbi;
10619 bool modelPar_given_xrbx=mod.given(
"xrbx");
10620 modParamMap[
"xrbx"] = &modelPar_xrbx;
10622 bool modelPar_given_xrc=mod.given(
"xrc");
10623 modParamMap[
"xrc"] = &modelPar_xrc;
10625 bool modelPar_given_xrci=mod.given(
"xrci");
10626 modParamMap[
"xrci"] = &modelPar_xrci;
10628 bool modelPar_given_xrcx=mod.given(
"xrcx");
10629 modParamMap[
"xrcx"] = &modelPar_xrcx;
10631 bool modelPar_given_xrbp=mod.given(
"xrbp");
10632 modParamMap[
"xrbp"] = &modelPar_xrbp;
10634 bool modelPar_given_xrs=mod.given(
"xrs");
10635 modParamMap[
"xrs"] = &modelPar_xrs;
10637 bool modelPar_given_xvo=mod.given(
"xvo");
10638 modParamMap[
"xvo"] = &modelPar_xvo;
10640 bool modelPar_given_ea=mod.given(
"ea");
10641 modParamMap[
"ea"] = &modelPar_ea;
10643 bool modelPar_given_eaie=mod.given(
"eaie");
10644 modParamMap[
"eaie"] = &modelPar_eaie;
10646 bool modelPar_given_eaic=mod.given(
"eaic");
10647 modParamMap[
"eaic"] = &modelPar_eaic;
10649 bool modelPar_given_eais=mod.given(
"eais");
10650 modParamMap[
"eais"] = &modelPar_eais;
10652 bool modelPar_given_eane=mod.given(
"eane");
10653 modParamMap[
"eane"] = &modelPar_eane;
10655 bool modelPar_given_eanc=mod.given(
"eanc");
10656 modParamMap[
"eanc"] = &modelPar_eanc;
10658 bool modelPar_given_eans=mod.given(
"eans");
10659 modParamMap[
"eans"] = &modelPar_eans;
10661 bool modelPar_given_eap=mod.given(
"eap");
10662 modParamMap[
"eap"] = &modelPar_eap;
10664 bool modelPar_given_dear=mod.given(
"dear");
10665 modParamMap[
"dear"] = &modelPar_dear;
10667 bool modelPar_given_xis=mod.given(
"xis");
10668 modParamMap[
"xis"] = &modelPar_xis;
10670 bool modelPar_given_xii=mod.given(
"xii");
10671 modParamMap[
"xii"] = &modelPar_xii;
10673 bool modelPar_given_xin=mod.given(
"xin");
10674 modParamMap[
"xin"] = &modelPar_xin;
10676 bool modelPar_given_xisr=mod.given(
"xisr");
10677 modParamMap[
"xisr"] = &modelPar_xisr;
10679 bool modelPar_given_xikf=mod.given(
"xikf");
10680 modParamMap[
"xikf"] = &modelPar_xikf;
10682 bool modelPar_given_tavc=mod.given(
"tavc");
10683 modParamMap[
"tavc"] = &modelPar_tavc;
10685 bool modelPar_given_tavcx=mod.given(
"tavcx");
10686 modParamMap[
"tavcx"] = &modelPar_tavcx;
10688 bool modelPar_given_tnf=mod.given(
"tnf");
10689 modParamMap[
"tnf"] = &modelPar_tnf;
10691 bool modelPar_given_tcvef=mod.given(
"tcvef");
10692 modParamMap[
"tcvef"] = &modelPar_tcvef;
10694 bool modelPar_given_tcver=mod.given(
"tcver");
10695 modParamMap[
"tcver"] = &modelPar_tcver;
10697 bool modelPar_given_tcrth=mod.given(
"tcrth");
10698 modParamMap[
"tcrth"] = &modelPar_tcrth;
10705 int modelPar_type=mod.type;
10706 bool modelPar_given_type=mod.given(
"type");
10707 int modelPar_VBICtype=mod.VBICtype;
10708 int modelPar_qbm=mod.qbm;
10709 bool modelPar_given_qbm=mod.given(
"qbm");
10716 modParamMap[name]->diff(0,1);
10728 for (std::vector<Instance*>::const_iterator in_it=mod.instanceContainer.begin(); in_it != mod.instanceContainer.end(); ++in_it,++inst)
10731 Instance & in=*(*in_it);
10733 for (
int i=0; i < 14+0 ; ++i)
10735 staticContributions[i]=0;
10736 dynamicContributions[i]=0;
10744 bool instancePar_given_m=in.given(
"m");
10746 bool instancePar_given_trise=in.given(
"trise");
10753 int instancePar_sw_noise=in.sw_noise;
10754 bool instancePar_given_sw_noise=in.given(
"sw_noise");
10755 int instancePar_sw_et=in.sw_et;
10756 bool instancePar_given_sw_et=in.given(
"sw_et");
10776 Linear::Vector * solVectorPtr = in.extData.nextSolVectorPtr;
10779 probeVars[in.admsProbeID_V_xf2_GND] = (*solVectorPtr)[in.li_xf2];
10780 probeVars[in.admsProbeID_V_xf1_GND] = (*solVectorPtr)[in.li_xf1];
10781 probeVars[in.admsProbeID_V_s_si] = (*solVectorPtr)[in.li_s] - (*solVectorPtr)[in.li_si];
10782 probeVars[in.admsProbeID_V_bx_si] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_si];
10783 probeVars[in.admsProbeID_V_si_bp] = (*solVectorPtr)[in.li_si] - (*solVectorPtr)[in.li_bp];
10784 probeVars[in.admsProbeID_V_bp_cx] = (*solVectorPtr)[in.li_bp] - (*solVectorPtr)[in.li_cx];
10785 probeVars[in.admsProbeID_V_e_ei] = (*solVectorPtr)[in.li_e] - (*solVectorPtr)[in.li_ei];
10786 probeVars[in.admsProbeID_V_bx_bi] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_bi];
10787 probeVars[in.admsProbeID_V_b_bx] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_bx];
10788 probeVars[in.admsProbeID_V_cx_ci] = (*solVectorPtr)[in.li_cx] - (*solVectorPtr)[in.li_ci];
10789 probeVars[in.admsProbeID_V_c_cx] = (*solVectorPtr)[in.li_c] - (*solVectorPtr)[in.li_cx];
10790 probeVars[in.admsProbeID_V_b_c] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_c];
10791 probeVars[in.admsProbeID_V_b_e] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_e];
10792 probeVars[in.admsProbeID_V_bx_bp] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_bp];
10793 probeVars[in.admsProbeID_V_ci_ei] = (*solVectorPtr)[in.li_ci] - (*solVectorPtr)[in.li_ei];
10794 probeVars[in.admsProbeID_V_bx_cx] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_cx];
10795 probeVars[in.admsProbeID_V_bi_cx] = (*solVectorPtr)[in.li_bi] - (*solVectorPtr)[in.li_cx];
10796 probeVars[in.admsProbeID_V_bi_ci] = (*solVectorPtr)[in.li_bi] - (*solVectorPtr)[in.li_ci];
10797 probeVars[in.admsProbeID_V_bx_ei] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_ei];
10798 probeVars[in.admsProbeID_V_bi_ei] = (*solVectorPtr)[in.li_bi] - (*solVectorPtr)[in.li_ei];
10799 probeVars[in.admsProbeID_Temp_dt_GND] = (*solVectorPtr)[in.li_dt];
10802 probeVars[in.admsProbeID_V_bx_bp] *= modelPar_VBICtype;
10803 probeVars[in.admsProbeID_V_bx_cx] *= modelPar_VBICtype;
10804 probeVars[in.admsProbeID_V_bi_cx] *= modelPar_VBICtype;
10805 probeVars[in.admsProbeID_V_bi_ci] *= modelPar_VBICtype;
10806 probeVars[in.admsProbeID_V_bx_ei] *= modelPar_VBICtype;
10807 probeVars[in.admsProbeID_V_bi_ei] *= modelPar_VBICtype;
10813 evaluateModelEquations(
10816 in.admsProbeID_V_xf2_GND,
10817 in.admsProbeID_V_xf1_GND,
10818 in.admsProbeID_V_s_si,
10819 in.admsProbeID_V_bx_si,
10820 in.admsProbeID_V_si_bp,
10821 in.admsProbeID_V_bp_cx,
10822 in.admsProbeID_V_e_ei,
10823 in.admsProbeID_V_bx_bi,
10824 in.admsProbeID_V_b_bx,
10825 in.admsProbeID_V_cx_ci,
10826 in.admsProbeID_V_c_cx,
10827 in.admsProbeID_V_b_c,
10828 in.admsProbeID_V_b_e,
10829 in.admsProbeID_V_bx_bp,
10830 in.admsProbeID_V_ci_ei,
10831 in.admsProbeID_V_bx_cx,
10832 in.admsProbeID_V_bi_cx,
10833 in.admsProbeID_V_bi_ci,
10834 in.admsProbeID_V_bx_ei,
10835 in.admsProbeID_V_bi_ei,
10836 in.admsProbeID_Temp_dt_GND,
10856 instancePar_given_m,
10858 instancePar_given_trise,
10860 instancePar_sw_noise,
10861 instancePar_given_sw_noise,
10863 instancePar_given_sw_et,
10867 modelPar_given_npn,
10869 modelPar_given_pnp,
10871 modelPar_given_scale,
10873 modelPar_given_shrink,
10875 modelPar_given_tmin,
10877 modelPar_given_tmax,
10879 modelPar_given_gmin,
10881 modelPar_given_pnjmaxi,
10883 modelPar_given_maxexp,
10885 modelPar_given_tnom,
10887 modelPar_given_tminclip,
10889 modelPar_given_tmaxclip,
10891 modelPar_given_rcx,
10893 modelPar_given_rci,
10897 modelPar_given_gamm,
10899 modelPar_given_hrcf,
10901 modelPar_given_rbx,
10903 modelPar_given_rbi,
10909 modelPar_given_rbp,
10913 modelPar_given_isrr,
10919 modelPar_given_isp,
10921 modelPar_given_wsp,
10923 modelPar_given_nfp,
10927 modelPar_given_cbeo,
10929 modelPar_given_cje,
10935 modelPar_given_aje,
10937 modelPar_given_cbco,
10939 modelPar_given_cjc,
10945 modelPar_given_ajc,
10947 modelPar_given_vrt,
10949 modelPar_given_art,
10951 modelPar_given_qco,
10953 modelPar_given_cjep,
10955 modelPar_given_cjcp,
10961 modelPar_given_ajs,
10963 modelPar_given_ccso,
10965 modelPar_given_ibei,
10967 modelPar_given_wbe,
10969 modelPar_given_nei,
10971 modelPar_given_qnibeir,
10973 modelPar_given_iben,
10975 modelPar_given_nen,
10977 modelPar_given_ibci,
10979 modelPar_given_nci,
10981 modelPar_given_ibcn,
10983 modelPar_given_ncn,
10985 modelPar_given_ibeip,
10987 modelPar_given_ibenp,
10989 modelPar_given_ibcip,
10991 modelPar_given_ncip,
10993 modelPar_given_ibcnp,
10995 modelPar_given_ncnp,
10997 modelPar_given_vef,
10999 modelPar_given_ver,
11001 modelPar_given_ikf,
11003 modelPar_given_nkf,
11005 modelPar_given_ikr,
11007 modelPar_given_ikp,
11011 modelPar_given_qtf,
11013 modelPar_given_xtf,
11015 modelPar_given_vtf,
11017 modelPar_given_itf,
11023 modelPar_given_avc1,
11025 modelPar_given_avc2,
11027 modelPar_given_avcx1,
11029 modelPar_given_avcx2,
11031 modelPar_given_mcx,
11033 modelPar_given_vbbe,
11035 modelPar_given_nbbe,
11037 modelPar_given_ibbe,
11039 modelPar_given_tvbbe1,
11041 modelPar_given_tvbbe2,
11043 modelPar_given_tnbbe,
11045 modelPar_given_vpte,
11047 modelPar_given_ibk0,
11049 modelPar_given_abk,
11051 modelPar_given_bbk,
11053 modelPar_given_kfn,
11055 modelPar_given_afn,
11057 modelPar_given_bfn,
11059 modelPar_given_rth,
11061 modelPar_given_cth,
11063 modelPar_given_xre,
11065 modelPar_given_xrb,
11067 modelPar_given_xrbi,
11069 modelPar_given_xrbx,
11071 modelPar_given_xrc,
11073 modelPar_given_xrci,
11075 modelPar_given_xrcx,
11077 modelPar_given_xrbp,
11079 modelPar_given_xrs,
11081 modelPar_given_xvo,
11085 modelPar_given_eaie,
11087 modelPar_given_eaic,
11089 modelPar_given_eais,
11091 modelPar_given_eane,
11093 modelPar_given_eanc,
11095 modelPar_given_eans,
11097 modelPar_given_eap,
11099 modelPar_given_dear,
11101 modelPar_given_xis,
11103 modelPar_given_xii,
11105 modelPar_given_xin,
11107 modelPar_given_xisr,
11109 modelPar_given_xikf,
11111 modelPar_given_tavc,
11113 modelPar_given_tavcx,
11115 modelPar_given_tnf,
11117 modelPar_given_tcvef,
11119 modelPar_given_tcver,
11121 modelPar_given_tcrth,
11124 modelPar_given_type,
11127 modelPar_given_qbm,
11128 in.admsTemperature,
11130 in.getDeviceOptions().gmin,
11131 staticContributions,
11132 dynamicContributions,
11138 dfdp[in.admsNodeID_c+inst*(14+0)] += staticContributions[in.admsNodeID_c].dx(0);
11139 dqdp[in.admsNodeID_c+inst*(14+0)] += dynamicContributions[in.admsNodeID_c].dx(0);
11140 Findices[in.admsNodeID_c+inst*(14+0)] = in.li_c;
11141 Qindices[in.admsNodeID_c+inst*(14+0)] = in.li_c;
11142 dfdp[in.admsNodeID_b+inst*(14+0)] += staticContributions[in.admsNodeID_b].dx(0);
11143 dqdp[in.admsNodeID_b+inst*(14+0)] += dynamicContributions[in.admsNodeID_b].dx(0);
11144 Findices[in.admsNodeID_b+inst*(14+0)] = in.li_b;
11145 Qindices[in.admsNodeID_b+inst*(14+0)] = in.li_b;
11146 dfdp[in.admsNodeID_e+inst*(14+0)] += staticContributions[in.admsNodeID_e].dx(0);
11147 dqdp[in.admsNodeID_e+inst*(14+0)] += dynamicContributions[in.admsNodeID_e].dx(0);
11148 Findices[in.admsNodeID_e+inst*(14+0)] = in.li_e;
11149 Qindices[in.admsNodeID_e+inst*(14+0)] = in.li_e;
11150 dfdp[in.admsNodeID_s+inst*(14+0)] += staticContributions[in.admsNodeID_s].dx(0);
11151 dqdp[in.admsNodeID_s+inst*(14+0)] += dynamicContributions[in.admsNodeID_s].dx(0);
11152 Findices[in.admsNodeID_s+inst*(14+0)] = in.li_s;
11153 Qindices[in.admsNodeID_s+inst*(14+0)] = in.li_s;
11154 dfdp[in.admsNodeID_dt+inst*(14+0)] += staticContributions[in.admsNodeID_dt].dx(0);
11155 dqdp[in.admsNodeID_dt+inst*(14+0)] += dynamicContributions[in.admsNodeID_dt].dx(0);
11156 Findices[in.admsNodeID_dt+inst*(14+0)] = in.li_dt;
11157 Qindices[in.admsNodeID_dt+inst*(14+0)] = in.li_dt;
11158 dfdp[in.admsNodeID_cx+inst*(14+0)] += staticContributions[in.admsNodeID_cx].dx(0);
11159 dqdp[in.admsNodeID_cx+inst*(14+0)] += dynamicContributions[in.admsNodeID_cx].dx(0);
11160 Findices[in.admsNodeID_cx+inst*(14+0)] = in.li_cx;
11161 Qindices[in.admsNodeID_cx+inst*(14+0)] = in.li_cx;
11162 dfdp[in.admsNodeID_ci+inst*(14+0)] += staticContributions[in.admsNodeID_ci].dx(0);
11163 dqdp[in.admsNodeID_ci+inst*(14+0)] += dynamicContributions[in.admsNodeID_ci].dx(0);
11164 Findices[in.admsNodeID_ci+inst*(14+0)] = in.li_ci;
11165 Qindices[in.admsNodeID_ci+inst*(14+0)] = in.li_ci;
11166 dfdp[in.admsNodeID_bx+inst*(14+0)] += staticContributions[in.admsNodeID_bx].dx(0);
11167 dqdp[in.admsNodeID_bx+inst*(14+0)] += dynamicContributions[in.admsNodeID_bx].dx(0);
11168 Findices[in.admsNodeID_bx+inst*(14+0)] = in.li_bx;
11169 Qindices[in.admsNodeID_bx+inst*(14+0)] = in.li_bx;
11170 dfdp[in.admsNodeID_bi+inst*(14+0)] += staticContributions[in.admsNodeID_bi].dx(0);
11171 dqdp[in.admsNodeID_bi+inst*(14+0)] += dynamicContributions[in.admsNodeID_bi].dx(0);
11172 Findices[in.admsNodeID_bi+inst*(14+0)] = in.li_bi;
11173 Qindices[in.admsNodeID_bi+inst*(14+0)] = in.li_bi;
11174 dfdp[in.admsNodeID_ei+inst*(14+0)] += staticContributions[in.admsNodeID_ei].dx(0);
11175 dqdp[in.admsNodeID_ei+inst*(14+0)] += dynamicContributions[in.admsNodeID_ei].dx(0);
11176 Findices[in.admsNodeID_ei+inst*(14+0)] = in.li_ei;
11177 Qindices[in.admsNodeID_ei+inst*(14+0)] = in.li_ei;
11178 dfdp[in.admsNodeID_bp+inst*(14+0)] += staticContributions[in.admsNodeID_bp].dx(0);
11179 dqdp[in.admsNodeID_bp+inst*(14+0)] += dynamicContributions[in.admsNodeID_bp].dx(0);
11180 Findices[in.admsNodeID_bp+inst*(14+0)] = in.li_bp;
11181 Qindices[in.admsNodeID_bp+inst*(14+0)] = in.li_bp;
11182 dfdp[in.admsNodeID_si+inst*(14+0)] += staticContributions[in.admsNodeID_si].dx(0);
11183 dqdp[in.admsNodeID_si+inst*(14+0)] += dynamicContributions[in.admsNodeID_si].dx(0);
11184 Findices[in.admsNodeID_si+inst*(14+0)] = in.li_si;
11185 Qindices[in.admsNodeID_si+inst*(14+0)] = in.li_si;
11186 dfdp[in.admsNodeID_xf1+inst*(14+0)] += staticContributions[in.admsNodeID_xf1].dx(0);
11187 dqdp[in.admsNodeID_xf1+inst*(14+0)] += dynamicContributions[in.admsNodeID_xf1].dx(0);
11188 Findices[in.admsNodeID_xf1+inst*(14+0)] = in.li_xf1;
11189 Qindices[in.admsNodeID_xf1+inst*(14+0)] = in.li_xf1;
11190 dfdp[in.admsNodeID_xf2+inst*(14+0)] += staticContributions[in.admsNodeID_xf2].dx(0);
11191 dqdp[in.admsNodeID_xf2+inst*(14+0)] += dynamicContributions[in.admsNodeID_xf2].dx(0);
11192 Findices[in.admsNodeID_xf2+inst*(14+0)] = in.li_xf2;
11193 Qindices[in.admsNodeID_xf2+inst*(14+0)] = in.li_xf2;
11198 #endif // Xyce_ADMS_SENSITIVITIES
double * q_dt_Equ_bi_Node_Ptr
double * q_cx_Equ_ei_Node_Ptr
const InstanceName & getName() const
double * q_dt_Equ_ei_Node_Ptr
static const int admsNodeID_c
double * q_bp_Equ_bp_Node_Ptr
double * q_ei_Equ_dt_Node_Ptr
bool updateTemperature(const double &temp=-999.0)
double * q_s_Equ_si_Node_Ptr
int li_state_admsProbeID_V_bx_cx
double * f_ci_Equ_bp_Node_Ptr
static const int admsProbeID_V_bi_cx
static const int admsProbeID_V_bx_cx
void registerLIDs(const LocalIdVector &intLIDVecRef, const LocalIdVector &extLIDVecRef)
bool processInstanceParams()
processInstanceParams
static const int admsNodeID_ci
virtual std::ostream & printOutInstances(std::ostream &os) const
bool updateDependentParameters()
static const int admsProbeID_V_b_bx
double * f_ei_Equ_bi_Node_Ptr
double * f_e_Equ_b_Node_Ptr
double * f_dt_Equ_dt_Node_Ptr
double * q_si_Equ_bx_Node_Ptr
double * q_cx_Equ_si_Node_Ptr
const SolverState & solverState_
double * q_ei_Equ_bx_Node_Ptr
void registerJacLIDs(const JacobianStamp &jacLIDVec)
Descriptor & addPar(const char *parName, T default_value, T U::*varPtr)
Adds the parameter description to the parameter map.
double * q_ci_Equ_bi_Node_Ptr
std::vector< AdmsFadType > staticContributions
double * f_bx_Equ_bx_Node_Ptr
double * q_s_Equ_dt_Node_Ptr
double pnjlim_new(double vnew, double vold, double vt, double vcrit, int *icheck)
double * f_si_Equ_bp_Node_Ptr
double * f_xf1_Equ_dt_Node_Ptr
std::vector< double > Jdxp_dynamic
double * q_bp_Equ_dt_Node_Ptr
double * dFdxdVpVectorRawPtr
Linear::Vector * nextSolVectorPtr
std::vector< int > devConMap
double * f_bi_Equ_cx_Node_Ptr
bool given(const std::string ¶meter_name) const
double * q_dt_Equ_ci_Node_Ptr
Linear::Vector * daeQVectorPtr
Pure virtual class to augment a linear system.
double * q_ei_Equ_bp_Node_Ptr
double * f_bp_Equ_ci_Node_Ptr
double * q_ei_Equ_bi_Node_Ptr
void addInternalNode(Util::SymbolTable &symbol_table, int index, const InstanceName &instance_name, const std::string &lead_name)
double * q_bi_Equ_ei_Node_Ptr
double * q_xf1_Equ_ei_Node_Ptr
double * f_bi_Equ_dt_Node_Ptr
double * f_ei_Equ_cx_Node_Ptr
std::vector< double > Jdxp_static
double * f_bp_Equ_bi_Node_Ptr
double * f_si_Equ_bx_Node_Ptr
double * f_bi_Equ_ci_Node_Ptr
double * q_e_Equ_dt_Node_Ptr
double * f_e_Equ_ei_Node_Ptr
double * q_dt_Equ_xf2_Node_Ptr
double * f_e_Equ_e_Node_Ptr
double * q_cx_Equ_cx_Node_Ptr
double * f_bx_Equ_b_Node_Ptr
double * f_bp_Equ_cx_Node_Ptr
Sacado::Fad::SFad< double, 1 > AdmsSensFadType
double * q_bx_Equ_ei_Node_Ptr
double * f_ei_Equ_bx_Node_Ptr
double * q_dt_Equ_s_Node_Ptr
static const int admsProbeID_V_xf2_GND
double * q_ci_Equ_si_Node_Ptr
const JacobianStamp & jacobianStamp() const
static const int admsNodeID_xf1
double * q_ei_Equ_xf2_Node_Ptr
double * f_bx_Equ_dt_Node_Ptr
double * f_ci_Equ_si_Node_Ptr
double * q_ci_Equ_ei_Node_Ptr
double * q_ei_Equ_e_Node_Ptr
double * q_ci_Equ_ci_Node_Ptr
double * q_c_Equ_dt_Node_Ptr
static const int admsNodeID_bp
static const int admsNodeID_ei
double * f_ci_Equ_ci_Node_Ptr
double * q_e_Equ_ei_Node_Ptr
void loadNodeSymbols(Util::SymbolTable &symbol_table) const
Populates and returns the store name map.
virtual void registerJacLIDs(const JacobianStamp &jacLIDVec)
double * q_dt_Equ_b_Node_Ptr
double * f_e_Equ_dt_Node_Ptr
double * q_bi_Equ_dt_Node_Ptr
double * f_bi_Equ_bx_Node_Ptr
double * f_si_Equ_s_Node_Ptr
double * f_c_Equ_dt_Node_Ptr
double * f_c_Equ_c_Node_Ptr
static const int admsProbeID_V_ci_ei
double * q_ci_Equ_bp_Node_Ptr
static const int admsProbeID_V_xf1_GND
std::vector< double > probeDiffs
double * f_ei_Equ_xf2_Node_Ptr
double * q_bx_Equ_bx_Node_Ptr
double * q_bi_Equ_bx_Node_Ptr
double * f_bp_Equ_ei_Node_Ptr
double * q_bx_Equ_c_Node_Ptr
double * q_bp_Equ_bx_Node_Ptr
double * q_ci_Equ_cx_Node_Ptr
double * f_s_Equ_si_Node_Ptr
double * f_bp_Equ_si_Node_Ptr
double * f_cx_Equ_bx_Node_Ptr
static const int admsProbeID_V_bp_cx
double * q_bx_Equ_dt_Node_Ptr
double * f_dt_Equ_e_Node_Ptr
std::vector< Param > params
Parameters from the line.
double * q_cx_Equ_bi_Node_Ptr
double * f_si_Equ_si_Node_Ptr
double * f_ei_Equ_si_Node_Ptr
double * q_bx_Equ_si_Node_Ptr
double * f_dt_Equ_bi_Node_Ptr
double * f_ei_Equ_ci_Node_Ptr
double * q_si_Equ_si_Node_Ptr
double * q_bx_Equ_b_Node_Ptr
double * q_bp_Equ_cx_Node_Ptr
void setParams(const std::vector< Param > ¶ms)
double * f_b_Equ_b_Node_Ptr
double * q_bp_Equ_ci_Node_Ptr
double * f_bp_Equ_bx_Node_Ptr
const std::string & getName() const
double * q_bp_Equ_si_Node_Ptr
double * q_b_Equ_b_Node_Ptr
double * f_dt_Equ_cx_Node_Ptr
static std::vector< std::vector< int > > jacStamp
double * q_si_Equ_s_Node_Ptr
double * q_si_Equ_bi_Node_Ptr
The FactoryBlock contains parameters needed by the device, instance and model creation functions...
double * q_ci_Equ_xf2_Node_Ptr
double * q_si_Equ_ci_Node_Ptr
static const int admsProbeID_V_si_bp
double * q_bi_Equ_bp_Node_Ptr
double * q_b_Equ_e_Node_Ptr
static const int admsProbeID_V_bi_ci
double * f_bx_Equ_si_Node_Ptr
double * f_ci_Equ_dt_Node_Ptr
static const int admsProbeID_V_bx_bi
const DeviceOptions & getDeviceOptions() const
bool updateSecondaryState()
static const int admsNodeID_dt
double * q_b_Equ_dt_Node_Ptr
int li_state_admsProbeID_V_bi_ci
Parameter is not to be documented.
double * f_cx_Equ_dt_Node_Ptr
static const int admsNodeID_xf2
double * q_bi_Equ_cx_Node_Ptr
double * f_dt_Equ_bx_Node_Ptr
static const int admsProbeID_V_bi_ei
double * f_xf2_Equ_xf2_Node_Ptr
double * q_dt_Equ_bx_Node_Ptr
const DeviceOptions & deviceOptions_
std::vector< std::vector< int > > JacobianStamp
double * q_c_Equ_c_Node_Ptr
static const int admsNodeID_bi
double * f_xf1_Equ_xf1_Node_Ptr
double * q_c_Equ_cx_Node_Ptr
double * f_si_Equ_ci_Node_Ptr
double * f_bx_Equ_ci_Node_Ptr
double * q_ci_Equ_bx_Node_Ptr
Linear::Vector * nextStaVectorPtr
double * f_ci_Equ_xf2_Node_Ptr
static Config< T > & addConfiguration()
Adds the device to the Xyce device configuration.
double * f_s_Equ_dt_Node_Ptr
double * f_ci_Equ_bi_Node_Ptr
double * q_bx_Equ_cx_Node_Ptr
double * f_cx_Equ_bp_Node_Ptr
double * q_c_Equ_b_Node_Ptr
Linear::Matrix * dFdxMatrixPtr
double * q_ci_Equ_dt_Node_Ptr
double * q_bx_Equ_bi_Node_Ptr
double * q_b_Equ_bx_Node_Ptr
static const int admsProbeID_V_c_cx
int li_state_admsProbeID_V_bx_ei
int li_state_admsProbeID_V_bi_ei
double * f_dt_Equ_ci_Node_Ptr
double * f_xf1_Equ_bi_Node_Ptr
double * f_c_Equ_b_Node_Ptr
int li_state_admsProbeID_V_b_e
double * f_dt_Equ_ei_Node_Ptr
double * f_c_Equ_cx_Node_Ptr
The Device class is an interface for device implementations.
double * q_s_Equ_s_Node_Ptr
double * q_dt_Equ_bp_Node_Ptr
static const int admsProbeID_V_s_si
Instance(const Configuration &configuration, const InstanceBlock &instance_block, Model &model, const FactoryBlock &factory_block)
static const int admsNodeID_s
double * f_dt_Equ_s_Node_Ptr
double * q_cx_Equ_bp_Node_Ptr
double * q_si_Equ_bp_Node_Ptr
double * q_xf2_Equ_xf1_Node_Ptr
double * q_dt_Equ_dt_Node_Ptr
ScalarT limRTH(ScalarT orig, ScalarT old)
double * f_dt_Equ_bp_Node_Ptr
double * q_e_Equ_e_Node_Ptr
int li_state_admsProbeID_V_bx_bp
double * f_b_Equ_e_Node_Ptr
double * q_si_Equ_dt_Node_Ptr
static const int admsNodeID_bx
double * f_bi_Equ_si_Node_Ptr
double * q_b_Equ_c_Node_Ptr
bool processParams()
processParams
static std::vector< int > jacMap
double * f_b_Equ_c_Node_Ptr
Sacado::Fad::SFad< double, 21 > AdmsFadType
double * f_xf1_Equ_xf2_Node_Ptr
double * q_ei_Equ_ei_Node_Ptr
int li_state_admsProbeID_V_bi_cx
static std::vector< std::vector< int > > jacMap2
double * dQdxdVpVectorRawPtr
Class Configuration contains device configuration data.
double * f_bi_Equ_xf2_Node_Ptr
double * f_ei_Equ_e_Node_Ptr
static const int admsProbeID_V_bx_si
double * f_ei_Equ_dt_Node_Ptr
double * f_dt_Equ_b_Node_Ptr
double * f_bx_Equ_ei_Node_Ptr
static const int admsProbeID_V_cx_ci
std::vector< Instance * > instanceContainer
double * q_ei_Equ_cx_Node_Ptr
double * f_ci_Equ_bx_Node_Ptr
double * f_bp_Equ_bp_Node_Ptr
double * q_cx_Equ_ci_Node_Ptr
double * q_bx_Equ_ci_Node_Ptr
virtual void forEachInstance(DeviceInstanceOp &op) const
Apply a device instance "op" to all instances associated with this model.
double * f_b_Equ_dt_Node_Ptr
static const int admsProbeID_V_b_c
double * f_ei_Equ_bp_Node_Ptr
double * f_bi_Equ_bp_Node_Ptr
const SolverState & getSolverState() const
static void loadInstanceParameters(ParametricData< Instance > &instance_parameters)
double * q_bp_Equ_bi_Node_Ptr
static const int admsProbeID_V_b_e
double * q_si_Equ_ei_Node_Ptr
double * f_cx_Equ_bi_Node_Ptr
double * q_bi_Equ_si_Node_Ptr
double * q_ei_Equ_ci_Node_Ptr
std::vector< AdmsFadType > dynamicContributions
double * q_cx_Equ_bx_Node_Ptr
double * q_dt_Equ_cx_Node_Ptr
static T adms_vt(const T temp)
Linear::Vector * currStaVectorPtr
double * q_xf1_Equ_xf1_Node_Ptr
double * q_bi_Equ_xf2_Node_Ptr
double * nextStaVectorRawPtr
static const int admsProbeID_V_bx_bp
double * q_dt_Equ_si_Node_Ptr
Linear::Vector * daeFVectorPtr
double * f_dt_Equ_c_Node_Ptr
std::vector< AdmsFadType > probeVars
double * q_dt_Equ_c_Node_Ptr
double * q_cx_Equ_c_Node_Ptr
double * f_bx_Equ_bi_Node_Ptr
int li_state_admsProbeID_Temp_dt_GND
static void loadModelParameters(ParametricData< Model > &model_parameters)
static const int admsProbeID_V_bx_ei
double * q_cx_Equ_dt_Node_Ptr
const std::string & getType() const
bool updateIntermediateVars()
double gmin
minimum allowed conductance.
void registerStateLIDs(const LocalIdVector &staLIDVecRef)
double * q_xf1_Equ_xf2_Node_Ptr
static const int admsNodeID_si
double * f_ci_Equ_cx_Node_Ptr
double * f_bx_Equ_bp_Node_Ptr
double * q_bp_Equ_ei_Node_Ptr
double * f_s_Equ_s_Node_Ptr
double * q_bx_Equ_bp_Node_Ptr
double * q_xf2_Equ_xf2_Node_Ptr
double * q_bi_Equ_bi_Node_Ptr
double * q_dt_Equ_e_Node_Ptr
double * f_si_Equ_dt_Node_Ptr
double * q_ei_Equ_si_Node_Ptr
double * f_ci_Equ_ei_Node_Ptr
double * f_si_Equ_ei_Node_Ptr
static const int admsNodeID_cx
double * f_bi_Equ_ei_Node_Ptr
const ExternData & extData
double * f_bx_Equ_cx_Node_Ptr
double * f_cx_Equ_si_Node_Ptr
double * f_cx_Equ_cx_Node_Ptr
ModelBlock represents a .MODEL line from the netlist.
double * f_cx_Equ_c_Node_Ptr
Manages parameter binding for class C.
InstanceBlock represent a device instance line from the netlist.
static const int admsNodeID_e
static Device * factory(const Configuration &configuration, const FactoryBlock &factory_block)
double * q_bi_Equ_ci_Node_Ptr
bool initJctFlag_
true if on the first newton step of the first dcop solve of the first .STEP iteration. BJT, JFET, Diode, MOSFET, SW, Extern
double * f_dt_Equ_si_Node_Ptr
Util::Param temp
operating temperature of ckt.
std::vector< Param > params
double * f_bx_Equ_c_Node_Ptr
Linear::Matrix * dQdxMatrixPtr
static const int admsProbeID_V_e_ei
double * f_cx_Equ_ei_Node_Ptr
double * f_xf1_Equ_ci_Node_Ptr
double * f_xf1_Equ_ei_Node_Ptr
bool updatePrimaryState()
Model(const Configuration &configuration, const ModelBlock &model_block, const FactoryBlock &factory_block)
double * f_si_Equ_bi_Node_Ptr
double * q_e_Equ_b_Node_Ptr
double * f_ei_Equ_ei_Node_Ptr
double * f_bi_Equ_bi_Node_Ptr
double * q_xf1_Equ_bi_Node_Ptr
double * f_cx_Equ_ci_Node_Ptr
double * f_b_Equ_bx_Node_Ptr
double * f_dt_Equ_xf2_Node_Ptr
static const int admsNodeID_b
void setModParams(const std::vector< Param > ¶ms)
double * f_xf2_Equ_xf1_Node_Ptr
double * f_bp_Equ_dt_Node_Ptr
double * q_xf1_Equ_dt_Node_Ptr
static const int admsProbeID_Temp_dt_GND
double * q_xf1_Equ_ci_Node_Ptr