49 #ifndef Xyce_N_DEV_ADMSbjt504tva_h
50 #define Xyce_N_DEV_ADMSbjt504tva_h
65 namespace ADMSbjt504tva {
73 class InstanceSensitivity;
75 #ifdef Xyce_ADMS_SENSITIVITIES
88 InstanceSensitivity() :
91 virtual ~InstanceSensitivity() {};
93 virtual void operator()(
94 const ParameterBase &entity,
95 const std::string ¶m,
96 std::vector<double> & dfdp,
97 std::vector<double> & dqdp,
98 std::vector<double> & dbdp,
99 std::vector<int> & Findices,
100 std::vector<int> & Qindices,
101 std::vector<int> & Bindices
105 static InstanceSensitivity instSens;
117 class ModelSensitivity :
public baseSensitivity
121 baseSensitivity() {};
123 virtual ~ModelSensitivity() {};
125 virtual void operator()(
126 const ParameterBase &entity,
127 const std::string ¶m,
128 std::vector<double> & dfdp,
129 std::vector<double> & dqdp,
130 std::vector<double> & dbdp,
131 std::vector<int> & Findices,
132 std::vector<int> & Qindices,
133 std::vector<int> & Bindices
137 static ModelSensitivity modSens;
138 #endif // Xyce_ADMS_SENSITIVITIES
148 template<
typename Tin>
157 template<
typename Tin>
166 template<
typename Tin>
178 #ifdef Xyce_ADMS_SENSITIVITIES
183 void evaluateModelEquations(
184 std::vector <double> & probeVars,
186 const int admsProbeID_V_noi_e1,
187 const int admsProbeID_V_c3_c1,
188 const int admsProbeID_V_c3_c4,
189 const int admsProbeID_V_c4_c1,
190 const int admsProbeID_V_b_c,
191 const int admsProbeID_V_b_e,
192 const int admsProbeID_V_b_b1,
193 const int admsProbeID_V_e_e1,
194 const int admsProbeID_V_c1_c2,
195 const int admsProbeID_V_s_c1,
196 const int admsProbeID_V_b1_b2,
197 const int admsProbeID_V_b1_e1,
198 const int admsProbeID_V_b2_e1,
199 const int admsProbeID_V_b2_c2,
200 const int admsProbeID_V_b2_c1,
201 const int admsProbeID_V_dt_GND,
203 const int admsNodeID_c,
204 const int admsNodeID_b,
205 const int admsNodeID_e,
206 const int admsNodeID_s,
207 const int admsNodeID_dt,
208 const int admsNodeID_e1,
209 const int admsNodeID_b1,
210 const int admsNodeID_b2,
211 const int admsNodeID_c3,
212 const int admsNodeID_c4,
213 const int admsNodeID_c2,
214 const int admsNodeID_c1,
215 const int admsNodeID_noi,
218 AdmsSensFadType & instancePar_MULT,
219 bool instancePar_given_MULT,
222 AdmsSensFadType & instanceVar_Tk,
223 AdmsSensFadType & instanceVar_Izteb,
224 AdmsSensFadType & instanceVar_RE_TM,
225 AdmsSensFadType & instanceVar_RBC_TM,
226 AdmsSensFadType & instanceVar_GCCxx_TM,
227 AdmsSensFadType & instanceVar_GCCex_TM,
228 AdmsSensFadType & instanceVar_GCCin_TM,
229 AdmsSensFadType & instanceVar_KF_M,
230 AdmsSensFadType & instanceVar_KFN_M,
231 AdmsSensFadType & instanceVar_qBI,
232 AdmsSensFadType & instanceVar_Ir,
233 AdmsSensFadType & instanceVar_If,
234 AdmsSensFadType & instanceVar_Ib1,
235 AdmsSensFadType & instanceVar_Ib1_s,
236 AdmsSensFadType & instanceVar_Ib2,
237 AdmsSensFadType & instanceVar_Ib3,
238 AdmsSensFadType & instanceVar_Iex,
239 AdmsSensFadType & instanceVar_XIex,
240 AdmsSensFadType & instanceVar_Isub,
241 AdmsSensFadType & instanceVar_XIsub,
242 AdmsSensFadType & instanceVar_Rb2,
243 AdmsSensFadType & instanceVar_Gem,
244 AdmsSensFadType & instanceVar_eVb1b2,
247 AdmsSensFadType & modelPar_TREF,
248 bool modelPar_given_TREF,
249 AdmsSensFadType & modelPar_DTA,
250 bool modelPar_given_DTA,
251 AdmsSensFadType & modelPar_IS,
252 bool modelPar_given_IS,
253 AdmsSensFadType & modelPar_IK,
254 bool modelPar_given_IK,
255 AdmsSensFadType & modelPar_VER,
256 bool modelPar_given_VER,
257 AdmsSensFadType & modelPar_VEF,
258 bool modelPar_given_VEF,
259 AdmsSensFadType & modelPar_BF,
260 bool modelPar_given_BF,
261 AdmsSensFadType & modelPar_IBF,
262 bool modelPar_given_IBF,
263 AdmsSensFadType & modelPar_MLF,
264 bool modelPar_given_MLF,
265 AdmsSensFadType & modelPar_XIBI,
266 bool modelPar_given_XIBI,
267 AdmsSensFadType & modelPar_IZEB,
268 bool modelPar_given_IZEB,
269 AdmsSensFadType & modelPar_NZEB,
270 bool modelPar_given_NZEB,
271 AdmsSensFadType & modelPar_BRI,
272 bool modelPar_given_BRI,
273 AdmsSensFadType & modelPar_IBR,
274 bool modelPar_given_IBR,
275 AdmsSensFadType & modelPar_VLR,
276 bool modelPar_given_VLR,
277 AdmsSensFadType & modelPar_XEXT,
278 bool modelPar_given_XEXT,
279 AdmsSensFadType & modelPar_WAVL,
280 bool modelPar_given_WAVL,
281 AdmsSensFadType & modelPar_VAVL,
282 bool modelPar_given_VAVL,
283 AdmsSensFadType & modelPar_SFH,
284 bool modelPar_given_SFH,
285 AdmsSensFadType & modelPar_RE,
286 bool modelPar_given_RE,
287 AdmsSensFadType & modelPar_RBC,
288 bool modelPar_given_RBC,
289 AdmsSensFadType & modelPar_RBV,
290 bool modelPar_given_RBV,
291 AdmsSensFadType & modelPar_RCC,
292 bool modelPar_given_RCC,
293 AdmsSensFadType & modelPar_RCV,
294 bool modelPar_given_RCV,
295 AdmsSensFadType & modelPar_SCRCV,
296 bool modelPar_given_SCRCV,
297 AdmsSensFadType & modelPar_IHC,
298 bool modelPar_given_IHC,
299 AdmsSensFadType & modelPar_AXI,
300 bool modelPar_given_AXI,
301 AdmsSensFadType & modelPar_CJE,
302 bool modelPar_given_CJE,
303 AdmsSensFadType & modelPar_VDE,
304 bool modelPar_given_VDE,
305 AdmsSensFadType & modelPar_PE,
306 bool modelPar_given_PE,
307 AdmsSensFadType & modelPar_XCJE,
308 bool modelPar_given_XCJE,
309 AdmsSensFadType & modelPar_CBEO,
310 bool modelPar_given_CBEO,
311 AdmsSensFadType & modelPar_CJC,
312 bool modelPar_given_CJC,
313 AdmsSensFadType & modelPar_VDC,
314 bool modelPar_given_VDC,
315 AdmsSensFadType & modelPar_PC,
316 bool modelPar_given_PC,
317 AdmsSensFadType & modelPar_XP,
318 bool modelPar_given_XP,
319 AdmsSensFadType & modelPar_MC,
320 bool modelPar_given_MC,
321 AdmsSensFadType & modelPar_XCJC,
322 bool modelPar_given_XCJC,
323 AdmsSensFadType & modelPar_RCBLX,
324 bool modelPar_given_RCBLX,
325 AdmsSensFadType & modelPar_RCBLI,
326 bool modelPar_given_RCBLI,
327 AdmsSensFadType & modelPar_CBCO,
328 bool modelPar_given_CBCO,
329 AdmsSensFadType & modelPar_MTAU,
330 bool modelPar_given_MTAU,
331 AdmsSensFadType & modelPar_TAUE,
332 bool modelPar_given_TAUE,
333 AdmsSensFadType & modelPar_TAUB,
334 bool modelPar_given_TAUB,
335 AdmsSensFadType & modelPar_TEPI,
336 bool modelPar_given_TEPI,
337 AdmsSensFadType & modelPar_TAUR,
338 bool modelPar_given_TAUR,
339 AdmsSensFadType & modelPar_DEG,
340 bool modelPar_given_DEG,
341 AdmsSensFadType & modelPar_XREC,
342 bool modelPar_given_XREC,
343 AdmsSensFadType & modelPar_AQBO,
344 bool modelPar_given_AQBO,
345 AdmsSensFadType & modelPar_AE,
346 bool modelPar_given_AE,
347 AdmsSensFadType & modelPar_AB,
348 bool modelPar_given_AB,
349 AdmsSensFadType & modelPar_AEPI,
350 bool modelPar_given_AEPI,
351 AdmsSensFadType & modelPar_AEX,
352 bool modelPar_given_AEX,
353 AdmsSensFadType & modelPar_AC,
354 bool modelPar_given_AC,
355 AdmsSensFadType & modelPar_ACBL,
356 bool modelPar_given_ACBL,
357 AdmsSensFadType & modelPar_DVGBF,
358 bool modelPar_given_DVGBF,
359 AdmsSensFadType & modelPar_DVGBR,
360 bool modelPar_given_DVGBR,
361 AdmsSensFadType & modelPar_VGB,
362 bool modelPar_given_VGB,
363 AdmsSensFadType & modelPar_VGC,
364 bool modelPar_given_VGC,
365 AdmsSensFadType & modelPar_VGJ,
366 bool modelPar_given_VGJ,
367 AdmsSensFadType & modelPar_VGZEB,
368 bool modelPar_given_VGZEB,
369 AdmsSensFadType & modelPar_AVGEB,
370 bool modelPar_given_AVGEB,
371 AdmsSensFadType & modelPar_TVGEB,
372 bool modelPar_given_TVGEB,
373 AdmsSensFadType & modelPar_DVGTE,
374 bool modelPar_given_DVGTE,
375 AdmsSensFadType & modelPar_DAIS,
376 bool modelPar_given_DAIS,
377 AdmsSensFadType & modelPar_AF,
378 bool modelPar_given_AF,
379 AdmsSensFadType & modelPar_KF,
380 bool modelPar_given_KF,
381 AdmsSensFadType & modelPar_KFN,
382 bool modelPar_given_KFN,
383 AdmsSensFadType & modelPar_ISS,
384 bool modelPar_given_ISS,
385 AdmsSensFadType & modelPar_ICSS,
386 bool modelPar_given_ICSS,
387 AdmsSensFadType & modelPar_IKS,
388 bool modelPar_given_IKS,
389 AdmsSensFadType & modelPar_CJS,
390 bool modelPar_given_CJS,
391 AdmsSensFadType & modelPar_VDS,
392 bool modelPar_given_VDS,
393 AdmsSensFadType & modelPar_PS,
394 bool modelPar_given_PS,
395 AdmsSensFadType & modelPar_VGS,
396 bool modelPar_given_VGS,
397 AdmsSensFadType & modelPar_AS,
398 bool modelPar_given_AS,
399 AdmsSensFadType & modelPar_ASUB,
400 bool modelPar_given_ASUB,
401 AdmsSensFadType & modelPar_RTH,
402 bool modelPar_given_RTH,
403 AdmsSensFadType & modelPar_CTH,
404 bool modelPar_given_CTH,
405 AdmsSensFadType & modelPar_ATH,
406 bool modelPar_given_ATH,
407 AdmsSensFadType & modelPar_MULT,
408 bool modelPar_given_MULT,
409 AdmsSensFadType & modelPar_GMIN,
410 bool modelPar_given_GMIN,
413 bool modelPar_given_LEVEL,
415 bool modelPar_given_EXMOD,
417 bool modelPar_given_EXPHI,
419 bool modelPar_given_EXAVL,
421 bool modelPar_given_EXSUB,
423 bool modelPar_given_KAVL,
425 bool modelPar_given_TYPE,
427 double admsTemperature,
double adms_vt_nom,
double gmin, std::vector <AdmsSensFadType> & staticContributions, std::vector <AdmsSensFadType> & dynamicContributions,
const Instance & theInstance);
429 void evaluateInitialInstance(
432 AdmsSensFadType & instancePar_MULT,
433 bool instancePar_given_MULT,
436 AdmsSensFadType & instanceVar_Tk,
437 AdmsSensFadType & instanceVar_Izteb,
438 AdmsSensFadType & instanceVar_RE_TM,
439 AdmsSensFadType & instanceVar_RBC_TM,
440 AdmsSensFadType & instanceVar_GCCxx_TM,
441 AdmsSensFadType & instanceVar_GCCex_TM,
442 AdmsSensFadType & instanceVar_GCCin_TM,
443 AdmsSensFadType & instanceVar_KF_M,
444 AdmsSensFadType & instanceVar_KFN_M,
445 AdmsSensFadType & instanceVar_qBI,
446 AdmsSensFadType & instanceVar_Ir,
447 AdmsSensFadType & instanceVar_If,
448 AdmsSensFadType & instanceVar_Ib1,
449 AdmsSensFadType & instanceVar_Ib1_s,
450 AdmsSensFadType & instanceVar_Ib2,
451 AdmsSensFadType & instanceVar_Ib3,
452 AdmsSensFadType & instanceVar_Iex,
453 AdmsSensFadType & instanceVar_XIex,
454 AdmsSensFadType & instanceVar_Isub,
455 AdmsSensFadType & instanceVar_XIsub,
456 AdmsSensFadType & instanceVar_Rb2,
457 AdmsSensFadType & instanceVar_Gem,
458 AdmsSensFadType & instanceVar_eVb1b2,
461 AdmsSensFadType & modelPar_TREF,
462 bool modelPar_given_TREF,
463 AdmsSensFadType & modelPar_DTA,
464 bool modelPar_given_DTA,
465 AdmsSensFadType & modelPar_IS,
466 bool modelPar_given_IS,
467 AdmsSensFadType & modelPar_IK,
468 bool modelPar_given_IK,
469 AdmsSensFadType & modelPar_VER,
470 bool modelPar_given_VER,
471 AdmsSensFadType & modelPar_VEF,
472 bool modelPar_given_VEF,
473 AdmsSensFadType & modelPar_BF,
474 bool modelPar_given_BF,
475 AdmsSensFadType & modelPar_IBF,
476 bool modelPar_given_IBF,
477 AdmsSensFadType & modelPar_MLF,
478 bool modelPar_given_MLF,
479 AdmsSensFadType & modelPar_XIBI,
480 bool modelPar_given_XIBI,
481 AdmsSensFadType & modelPar_IZEB,
482 bool modelPar_given_IZEB,
483 AdmsSensFadType & modelPar_NZEB,
484 bool modelPar_given_NZEB,
485 AdmsSensFadType & modelPar_BRI,
486 bool modelPar_given_BRI,
487 AdmsSensFadType & modelPar_IBR,
488 bool modelPar_given_IBR,
489 AdmsSensFadType & modelPar_VLR,
490 bool modelPar_given_VLR,
491 AdmsSensFadType & modelPar_XEXT,
492 bool modelPar_given_XEXT,
493 AdmsSensFadType & modelPar_WAVL,
494 bool modelPar_given_WAVL,
495 AdmsSensFadType & modelPar_VAVL,
496 bool modelPar_given_VAVL,
497 AdmsSensFadType & modelPar_SFH,
498 bool modelPar_given_SFH,
499 AdmsSensFadType & modelPar_RE,
500 bool modelPar_given_RE,
501 AdmsSensFadType & modelPar_RBC,
502 bool modelPar_given_RBC,
503 AdmsSensFadType & modelPar_RBV,
504 bool modelPar_given_RBV,
505 AdmsSensFadType & modelPar_RCC,
506 bool modelPar_given_RCC,
507 AdmsSensFadType & modelPar_RCV,
508 bool modelPar_given_RCV,
509 AdmsSensFadType & modelPar_SCRCV,
510 bool modelPar_given_SCRCV,
511 AdmsSensFadType & modelPar_IHC,
512 bool modelPar_given_IHC,
513 AdmsSensFadType & modelPar_AXI,
514 bool modelPar_given_AXI,
515 AdmsSensFadType & modelPar_CJE,
516 bool modelPar_given_CJE,
517 AdmsSensFadType & modelPar_VDE,
518 bool modelPar_given_VDE,
519 AdmsSensFadType & modelPar_PE,
520 bool modelPar_given_PE,
521 AdmsSensFadType & modelPar_XCJE,
522 bool modelPar_given_XCJE,
523 AdmsSensFadType & modelPar_CBEO,
524 bool modelPar_given_CBEO,
525 AdmsSensFadType & modelPar_CJC,
526 bool modelPar_given_CJC,
527 AdmsSensFadType & modelPar_VDC,
528 bool modelPar_given_VDC,
529 AdmsSensFadType & modelPar_PC,
530 bool modelPar_given_PC,
531 AdmsSensFadType & modelPar_XP,
532 bool modelPar_given_XP,
533 AdmsSensFadType & modelPar_MC,
534 bool modelPar_given_MC,
535 AdmsSensFadType & modelPar_XCJC,
536 bool modelPar_given_XCJC,
537 AdmsSensFadType & modelPar_RCBLX,
538 bool modelPar_given_RCBLX,
539 AdmsSensFadType & modelPar_RCBLI,
540 bool modelPar_given_RCBLI,
541 AdmsSensFadType & modelPar_CBCO,
542 bool modelPar_given_CBCO,
543 AdmsSensFadType & modelPar_MTAU,
544 bool modelPar_given_MTAU,
545 AdmsSensFadType & modelPar_TAUE,
546 bool modelPar_given_TAUE,
547 AdmsSensFadType & modelPar_TAUB,
548 bool modelPar_given_TAUB,
549 AdmsSensFadType & modelPar_TEPI,
550 bool modelPar_given_TEPI,
551 AdmsSensFadType & modelPar_TAUR,
552 bool modelPar_given_TAUR,
553 AdmsSensFadType & modelPar_DEG,
554 bool modelPar_given_DEG,
555 AdmsSensFadType & modelPar_XREC,
556 bool modelPar_given_XREC,
557 AdmsSensFadType & modelPar_AQBO,
558 bool modelPar_given_AQBO,
559 AdmsSensFadType & modelPar_AE,
560 bool modelPar_given_AE,
561 AdmsSensFadType & modelPar_AB,
562 bool modelPar_given_AB,
563 AdmsSensFadType & modelPar_AEPI,
564 bool modelPar_given_AEPI,
565 AdmsSensFadType & modelPar_AEX,
566 bool modelPar_given_AEX,
567 AdmsSensFadType & modelPar_AC,
568 bool modelPar_given_AC,
569 AdmsSensFadType & modelPar_ACBL,
570 bool modelPar_given_ACBL,
571 AdmsSensFadType & modelPar_DVGBF,
572 bool modelPar_given_DVGBF,
573 AdmsSensFadType & modelPar_DVGBR,
574 bool modelPar_given_DVGBR,
575 AdmsSensFadType & modelPar_VGB,
576 bool modelPar_given_VGB,
577 AdmsSensFadType & modelPar_VGC,
578 bool modelPar_given_VGC,
579 AdmsSensFadType & modelPar_VGJ,
580 bool modelPar_given_VGJ,
581 AdmsSensFadType & modelPar_VGZEB,
582 bool modelPar_given_VGZEB,
583 AdmsSensFadType & modelPar_AVGEB,
584 bool modelPar_given_AVGEB,
585 AdmsSensFadType & modelPar_TVGEB,
586 bool modelPar_given_TVGEB,
587 AdmsSensFadType & modelPar_DVGTE,
588 bool modelPar_given_DVGTE,
589 AdmsSensFadType & modelPar_DAIS,
590 bool modelPar_given_DAIS,
591 AdmsSensFadType & modelPar_AF,
592 bool modelPar_given_AF,
593 AdmsSensFadType & modelPar_KF,
594 bool modelPar_given_KF,
595 AdmsSensFadType & modelPar_KFN,
596 bool modelPar_given_KFN,
597 AdmsSensFadType & modelPar_ISS,
598 bool modelPar_given_ISS,
599 AdmsSensFadType & modelPar_ICSS,
600 bool modelPar_given_ICSS,
601 AdmsSensFadType & modelPar_IKS,
602 bool modelPar_given_IKS,
603 AdmsSensFadType & modelPar_CJS,
604 bool modelPar_given_CJS,
605 AdmsSensFadType & modelPar_VDS,
606 bool modelPar_given_VDS,
607 AdmsSensFadType & modelPar_PS,
608 bool modelPar_given_PS,
609 AdmsSensFadType & modelPar_VGS,
610 bool modelPar_given_VGS,
611 AdmsSensFadType & modelPar_AS,
612 bool modelPar_given_AS,
613 AdmsSensFadType & modelPar_ASUB,
614 bool modelPar_given_ASUB,
615 AdmsSensFadType & modelPar_RTH,
616 bool modelPar_given_RTH,
617 AdmsSensFadType & modelPar_CTH,
618 bool modelPar_given_CTH,
619 AdmsSensFadType & modelPar_ATH,
620 bool modelPar_given_ATH,
621 AdmsSensFadType & modelPar_MULT,
622 bool modelPar_given_MULT,
623 AdmsSensFadType & modelPar_GMIN,
624 bool modelPar_given_GMIN,
627 bool modelPar_given_LEVEL,
629 bool modelPar_given_EXMOD,
631 bool modelPar_given_EXPHI,
633 bool modelPar_given_EXAVL,
635 bool modelPar_given_EXSUB,
637 bool modelPar_given_KAVL,
639 bool modelPar_given_TYPE,
640 double admsTemperature);
642 void evaluateInitialModel(
645 AdmsSensFadType & modelPar_TREF,
646 bool modelPar_given_TREF,
647 AdmsSensFadType & modelPar_DTA,
648 bool modelPar_given_DTA,
649 AdmsSensFadType & modelPar_IS,
650 bool modelPar_given_IS,
651 AdmsSensFadType & modelPar_IK,
652 bool modelPar_given_IK,
653 AdmsSensFadType & modelPar_VER,
654 bool modelPar_given_VER,
655 AdmsSensFadType & modelPar_VEF,
656 bool modelPar_given_VEF,
657 AdmsSensFadType & modelPar_BF,
658 bool modelPar_given_BF,
659 AdmsSensFadType & modelPar_IBF,
660 bool modelPar_given_IBF,
661 AdmsSensFadType & modelPar_MLF,
662 bool modelPar_given_MLF,
663 AdmsSensFadType & modelPar_XIBI,
664 bool modelPar_given_XIBI,
665 AdmsSensFadType & modelPar_IZEB,
666 bool modelPar_given_IZEB,
667 AdmsSensFadType & modelPar_NZEB,
668 bool modelPar_given_NZEB,
669 AdmsSensFadType & modelPar_BRI,
670 bool modelPar_given_BRI,
671 AdmsSensFadType & modelPar_IBR,
672 bool modelPar_given_IBR,
673 AdmsSensFadType & modelPar_VLR,
674 bool modelPar_given_VLR,
675 AdmsSensFadType & modelPar_XEXT,
676 bool modelPar_given_XEXT,
677 AdmsSensFadType & modelPar_WAVL,
678 bool modelPar_given_WAVL,
679 AdmsSensFadType & modelPar_VAVL,
680 bool modelPar_given_VAVL,
681 AdmsSensFadType & modelPar_SFH,
682 bool modelPar_given_SFH,
683 AdmsSensFadType & modelPar_RE,
684 bool modelPar_given_RE,
685 AdmsSensFadType & modelPar_RBC,
686 bool modelPar_given_RBC,
687 AdmsSensFadType & modelPar_RBV,
688 bool modelPar_given_RBV,
689 AdmsSensFadType & modelPar_RCC,
690 bool modelPar_given_RCC,
691 AdmsSensFadType & modelPar_RCV,
692 bool modelPar_given_RCV,
693 AdmsSensFadType & modelPar_SCRCV,
694 bool modelPar_given_SCRCV,
695 AdmsSensFadType & modelPar_IHC,
696 bool modelPar_given_IHC,
697 AdmsSensFadType & modelPar_AXI,
698 bool modelPar_given_AXI,
699 AdmsSensFadType & modelPar_CJE,
700 bool modelPar_given_CJE,
701 AdmsSensFadType & modelPar_VDE,
702 bool modelPar_given_VDE,
703 AdmsSensFadType & modelPar_PE,
704 bool modelPar_given_PE,
705 AdmsSensFadType & modelPar_XCJE,
706 bool modelPar_given_XCJE,
707 AdmsSensFadType & modelPar_CBEO,
708 bool modelPar_given_CBEO,
709 AdmsSensFadType & modelPar_CJC,
710 bool modelPar_given_CJC,
711 AdmsSensFadType & modelPar_VDC,
712 bool modelPar_given_VDC,
713 AdmsSensFadType & modelPar_PC,
714 bool modelPar_given_PC,
715 AdmsSensFadType & modelPar_XP,
716 bool modelPar_given_XP,
717 AdmsSensFadType & modelPar_MC,
718 bool modelPar_given_MC,
719 AdmsSensFadType & modelPar_XCJC,
720 bool modelPar_given_XCJC,
721 AdmsSensFadType & modelPar_RCBLX,
722 bool modelPar_given_RCBLX,
723 AdmsSensFadType & modelPar_RCBLI,
724 bool modelPar_given_RCBLI,
725 AdmsSensFadType & modelPar_CBCO,
726 bool modelPar_given_CBCO,
727 AdmsSensFadType & modelPar_MTAU,
728 bool modelPar_given_MTAU,
729 AdmsSensFadType & modelPar_TAUE,
730 bool modelPar_given_TAUE,
731 AdmsSensFadType & modelPar_TAUB,
732 bool modelPar_given_TAUB,
733 AdmsSensFadType & modelPar_TEPI,
734 bool modelPar_given_TEPI,
735 AdmsSensFadType & modelPar_TAUR,
736 bool modelPar_given_TAUR,
737 AdmsSensFadType & modelPar_DEG,
738 bool modelPar_given_DEG,
739 AdmsSensFadType & modelPar_XREC,
740 bool modelPar_given_XREC,
741 AdmsSensFadType & modelPar_AQBO,
742 bool modelPar_given_AQBO,
743 AdmsSensFadType & modelPar_AE,
744 bool modelPar_given_AE,
745 AdmsSensFadType & modelPar_AB,
746 bool modelPar_given_AB,
747 AdmsSensFadType & modelPar_AEPI,
748 bool modelPar_given_AEPI,
749 AdmsSensFadType & modelPar_AEX,
750 bool modelPar_given_AEX,
751 AdmsSensFadType & modelPar_AC,
752 bool modelPar_given_AC,
753 AdmsSensFadType & modelPar_ACBL,
754 bool modelPar_given_ACBL,
755 AdmsSensFadType & modelPar_DVGBF,
756 bool modelPar_given_DVGBF,
757 AdmsSensFadType & modelPar_DVGBR,
758 bool modelPar_given_DVGBR,
759 AdmsSensFadType & modelPar_VGB,
760 bool modelPar_given_VGB,
761 AdmsSensFadType & modelPar_VGC,
762 bool modelPar_given_VGC,
763 AdmsSensFadType & modelPar_VGJ,
764 bool modelPar_given_VGJ,
765 AdmsSensFadType & modelPar_VGZEB,
766 bool modelPar_given_VGZEB,
767 AdmsSensFadType & modelPar_AVGEB,
768 bool modelPar_given_AVGEB,
769 AdmsSensFadType & modelPar_TVGEB,
770 bool modelPar_given_TVGEB,
771 AdmsSensFadType & modelPar_DVGTE,
772 bool modelPar_given_DVGTE,
773 AdmsSensFadType & modelPar_DAIS,
774 bool modelPar_given_DAIS,
775 AdmsSensFadType & modelPar_AF,
776 bool modelPar_given_AF,
777 AdmsSensFadType & modelPar_KF,
778 bool modelPar_given_KF,
779 AdmsSensFadType & modelPar_KFN,
780 bool modelPar_given_KFN,
781 AdmsSensFadType & modelPar_ISS,
782 bool modelPar_given_ISS,
783 AdmsSensFadType & modelPar_ICSS,
784 bool modelPar_given_ICSS,
785 AdmsSensFadType & modelPar_IKS,
786 bool modelPar_given_IKS,
787 AdmsSensFadType & modelPar_CJS,
788 bool modelPar_given_CJS,
789 AdmsSensFadType & modelPar_VDS,
790 bool modelPar_given_VDS,
791 AdmsSensFadType & modelPar_PS,
792 bool modelPar_given_PS,
793 AdmsSensFadType & modelPar_VGS,
794 bool modelPar_given_VGS,
795 AdmsSensFadType & modelPar_AS,
796 bool modelPar_given_AS,
797 AdmsSensFadType & modelPar_ASUB,
798 bool modelPar_given_ASUB,
799 AdmsSensFadType & modelPar_RTH,
800 bool modelPar_given_RTH,
801 AdmsSensFadType & modelPar_CTH,
802 bool modelPar_given_CTH,
803 AdmsSensFadType & modelPar_ATH,
804 bool modelPar_given_ATH,
805 AdmsSensFadType & modelPar_MULT,
806 bool modelPar_given_MULT,
807 AdmsSensFadType & modelPar_GMIN,
808 bool modelPar_given_GMIN,
811 bool modelPar_given_LEVEL,
813 bool modelPar_given_EXMOD,
815 bool modelPar_given_EXPHI,
817 bool modelPar_given_EXAVL,
819 bool modelPar_given_EXSUB,
821 bool modelPar_given_KAVL,
823 bool modelPar_given_TYPE,
824 double admsTemperature);
826 #endif // Xyce_ADMS_SENSITIVITIES
832 template <
typename T>
838 return (exp(80.0)*(x-79.0));
846 template <
typename T>
849 return (floor(x.val()));
852 template <
typename T>
855 return (ceil(x.val()));
861 static const char *
name() {
return "MEXTRAM 504.11.0 with self heating";}
890 #ifdef Xyce_ADMS_SENSITIVITIES
891 friend class InstanceSensitivity;
892 friend class ModelSensitivity;
893 #endif // Xyce_ADMS_SENSITIVITIES
1339 namespace AnalogFunctions
1343 template<
typename ScalarT> ScalarT
trunc_ev(ScalarT Val, ScalarT Vprev, ScalarT Vmin, ScalarT Vmax)
1353 if ((Vprev>(Vmax-0.05)))
1355 if (((Val-Vprev)>0.05))
1357 result = (Vprev+0.05);
1369 if ((Vprev<(0.9*Vmin)))
1371 if ((Val<((1.5*Vprev)+(0.10*Vmin))))
1373 result = ((1.5*Vprev)+(0.10*Vmin));
1404 #ifdef Xyce_ADMS_SENSITIVITIES
1405 friend class InstanceSensitivity;
1406 friend class ModelSensitivity;
1407 #endif // Xyce_ADMS_SENSITIVITIES
1545 #endif //Xyce_N_DEV_ADMSbjt504tva_h
double * f_c2_Equ_noi_Node_Ptr
double * f_s_Equ_c1_Node_Ptr
double * q_c4_Equ_e1_Node_Ptr
double * f_dt_Equ_dt_Node_Ptr
double * q_b_Equ_c4_Node_Ptr
static const int admsProbeID_V_b_b1
double * q_c1_Equ_c3_Node_Ptr
double * f_noi_Equ_dt_Node_Ptr
double * f_c1_Equ_c4_Node_Ptr
std::vector< double > probeDiffs
double * f_b_Equ_c3_Node_Ptr
double * q_c4_Equ_c_Node_Ptr
static const int admsProbeID_V_b_c
static const int admsNodeID_s
double * q_b1_Equ_s_Node_Ptr
double * f_c4_Equ_c2_Node_Ptr
double * f_e_Equ_dt_Node_Ptr
double * q_c_Equ_c_Node_Ptr
double * f_c3_Equ_c3_Node_Ptr
double * q_s_Equ_b_Node_Ptr
double * q_e_Equ_e1_Node_Ptr
double * q_b_Equ_b2_Node_Ptr
static const int admsProbeID_V_b1_e1
double * f_c2_Equ_c4_Node_Ptr
Instance(const Configuration &configuration, const InstanceBlock &instance_block, Model &model, const FactoryBlock &factory_block)
double * f_c3_Equ_e1_Node_Ptr
static void loadInstanceParameters(ParametricData< Instance > &instance_parameters)
double * q_c4_Equ_dt_Node_Ptr
static const char * deviceTypeName()
double * q_c4_Equ_c2_Node_Ptr
double * f_c1_Equ_e1_Node_Ptr
static const int admsNodeID_noi
int li_state_admsProbeID_V_b2_c1
double * q_e1_Equ_e1_Node_Ptr
virtual void forEachInstance(DeviceInstanceOp &op) const
Apply a device instance "op" to all instances associated with this model.
static bool modelRequired()
double * f_b1_Equ_dt_Node_Ptr
std::vector< Instance * > InstanceVector
double * q_s_Equ_c4_Node_Ptr
Pure virtual class to augment a linear system.
bool processInstanceParams()
processInstanceParams
static const int admsProbeID_V_c3_c4
void registerStateLIDs(const LocalIdVector &staLIDVecRef)
double * q_c_Equ_c4_Node_Ptr
double * f_c4_Equ_s_Node_Ptr
static const int admsProbeID_V_b1_b2
double * f_c3_Equ_dt_Node_Ptr
double * f_c3_Equ_c_Node_Ptr
double * f_noi_Equ_noi_Node_Ptr
double * f_b1_Equ_e1_Node_Ptr
std::vector< std::vector< int > > jacStamp
double * f_dt_Equ_c4_Node_Ptr
double * q_c1_Equ_b2_Node_Ptr
double * f_c4_Equ_b2_Node_Ptr
double * f_b_Equ_dt_Node_Ptr
static const int admsProbeID_V_c4_c1
double * f_b2_Equ_b_Node_Ptr
double * q_c4_Equ_c3_Node_Ptr
double * q_s_Equ_dt_Node_Ptr
double * f_c3_Equ_c2_Node_Ptr
double * f_b_Equ_c1_Node_Ptr
double * f_c2_Equ_c3_Node_Ptr
double * f_b2_Equ_c4_Node_Ptr
double * f_b2_Equ_c2_Node_Ptr
double * q_c3_Equ_s_Node_Ptr
double * q_dt_Equ_c1_Node_Ptr
double * f_s_Equ_c4_Node_Ptr
double * q_b2_Equ_b2_Node_Ptr
double * f_b2_Equ_c_Node_Ptr
double * f_c_Equ_c1_Node_Ptr
static const int admsNodeID_c4
double * q_b2_Equ_e1_Node_Ptr
double * q_dt_Equ_s_Node_Ptr
const JacobianStamp & jacobianStamp() const
double * f_e_Equ_e_Node_Ptr
double * f_b_Equ_s_Node_Ptr
double * q_s_Equ_e1_Node_Ptr
double * f_s_Equ_b2_Node_Ptr
double * f_c_Equ_c2_Node_Ptr
double * f_c4_Equ_dt_Node_Ptr
double * q_b_Equ_b_Node_Ptr
double * f_c2_Equ_c_Node_Ptr
double * q_e1_Equ_c2_Node_Ptr
double * q_b_Equ_e_Node_Ptr
double ADMSfloor(const T &x)
double * q_c2_Equ_c3_Node_Ptr
bool updateTemperature(const double &temp=-999.0)
double * f_c_Equ_b_Node_Ptr
double * f_b1_Equ_b_Node_Ptr
double * q_e1_Equ_c4_Node_Ptr
double * f_e1_Equ_e_Node_Ptr
double * q_e_Equ_dt_Node_Ptr
double * q_dt_Equ_b_Node_Ptr
double * q_noi_Equ_dt_Node_Ptr
static const int admsNodeID_b2
double * f_c2_Equ_dt_Node_Ptr
static bool isLinearDevice()
double * f_c4_Equ_b_Node_Ptr
double * q_b1_Equ_c2_Node_Ptr
double * q_e1_Equ_dt_Node_Ptr
static const int admsNodeID_c3
double * f_c1_Equ_b2_Node_Ptr
double * q_b1_Equ_c_Node_Ptr
double * q_c_Equ_c1_Node_Ptr
double * q_c1_Equ_b1_Node_Ptr
double * q_b1_Equ_b_Node_Ptr
double * f_e1_Equ_noi_Node_Ptr
double * q_b2_Equ_b_Node_Ptr
double * q_b1_Equ_c4_Node_Ptr
static const int admsProbeID_V_b2_e1
static Device * factory(const Configuration &configuration, const FactoryBlock &factory_block)
double * q_b1_Equ_e1_Node_Ptr
std::vector< double > Jdxp_static
double * q_c_Equ_c3_Node_Ptr
void loadNodeSymbols(Util::SymbolTable &symbol_table) const
Populates and returns the store name map.
double * q_e1_Equ_c1_Node_Ptr
double * q_noi_Equ_noi_Node_Ptr
double * q_c2_Equ_b2_Node_Ptr
static const int admsProbeID_V_noi_e1
double * q_c4_Equ_b_Node_Ptr
double * f_b2_Equ_b2_Node_Ptr
static void loadModelParameters(ParametricData< Model > &model_parameters)
double * q_b1_Equ_b2_Node_Ptr
double * f_s_Equ_b1_Node_Ptr
double * f_b1_Equ_c1_Node_Ptr
double * q_s_Equ_b2_Node_Ptr
double * f_c3_Equ_b_Node_Ptr
std::vector< AdmsFadType > staticContributions
double * f_b1_Equ_s_Node_Ptr
double * f_c4_Equ_c3_Node_Ptr
double * q_noi_Equ_c1_Node_Ptr
double * f_c4_Equ_c4_Node_Ptr
double * f_c1_Equ_dt_Node_Ptr
double * f_c2_Equ_c2_Node_Ptr
double * q_c3_Equ_b2_Node_Ptr
void registerLIDs(const LocalIdVector &intLIDVecRef, const LocalIdVector &extLIDVecRef)
double * q_b_Equ_c1_Node_Ptr
double * f_c3_Equ_b2_Node_Ptr
double * q_b1_Equ_c1_Node_Ptr
The FactoryBlock contains parameters needed by the device, instance and model creation functions...
double * q_c2_Equ_c1_Node_Ptr
bool updateIntermediateVars()
double * q_c3_Equ_c1_Node_Ptr
double * q_s_Equ_c3_Node_Ptr
static Tin adms_ternary_op(const bool cond, const Tin &ifTrue, const Tin &ifFalse)
double * f_dt_Equ_c_Node_Ptr
double * q_b1_Equ_b1_Node_Ptr
double * f_s_Equ_dt_Node_Ptr
static T adms_vt(const T temp)
double * q_c2_Equ_dt_Node_Ptr
double * q_s_Equ_b1_Node_Ptr
static const int admsProbeID_V_dt_GND
static const int admsProbeID_V_b2_c2
double * f_b1_Equ_c4_Node_Ptr
double * q_c2_Equ_c2_Node_Ptr
double * q_c3_Equ_b1_Node_Ptr
double * q_e1_Equ_b_Node_Ptr
double * q_c2_Equ_e1_Node_Ptr
double * q_b_Equ_dt_Node_Ptr
double * f_e1_Equ_b2_Node_Ptr
double * f_e1_Equ_c1_Node_Ptr
double * f_c1_Equ_c1_Node_Ptr
double * q_e1_Equ_b1_Node_Ptr
double * q_c_Equ_b2_Node_Ptr
double * f_dt_Equ_s_Node_Ptr
double * q_e_Equ_e_Node_Ptr
static const int admsProbeID_V_b_e
double * f_e1_Equ_b1_Node_Ptr
std::vector< Instance * > instanceContainer
double * f_b2_Equ_b1_Node_Ptr
double * q_c3_Equ_dt_Node_Ptr
double * q_dt_Equ_dt_Node_Ptr
double * f_s_Equ_b_Node_Ptr
double * f_c_Equ_c4_Node_Ptr
std::vector< std::vector< int > > JacobianStamp
double * f_c2_Equ_b2_Node_Ptr
double * f_c3_Equ_s_Node_Ptr
double * q_b_Equ_c2_Node_Ptr
double * f_b2_Equ_dt_Node_Ptr
double * q_c1_Equ_s_Node_Ptr
double * q_c2_Equ_noi_Node_Ptr
double * f_b_Equ_e1_Node_Ptr
std::vector< AdmsFadType > probeVars
double * q_noi_Equ_e1_Node_Ptr
double * q_b2_Equ_c4_Node_Ptr
double * q_c3_Equ_c_Node_Ptr
std::vector< AdmsFadType > dynamicContributions
double * q_c1_Equ_e1_Node_Ptr
double * q_c3_Equ_b_Node_Ptr
double * f_c2_Equ_e1_Node_Ptr
ScalarT trunc_ev(ScalarT Val, ScalarT Vprev, ScalarT Vmin, ScalarT Vmax)
double * f_b_Equ_b2_Node_Ptr
double * f_b_Equ_c2_Node_Ptr
double * q_b2_Equ_dt_Node_Ptr
std::vector< int > jacMap
static const int admsProbeID_V_c3_c1
double * f_noi_Equ_b2_Node_Ptr
double * q_c4_Equ_b1_Node_Ptr
double * f_b1_Equ_c3_Node_Ptr
double * f_s_Equ_s_Node_Ptr
Model & operator=(const Model &)
double * f_b_Equ_e_Node_Ptr
double * q_noi_Equ_b2_Node_Ptr
double * f_noi_Equ_c2_Node_Ptr
double * f_e1_Equ_c_Node_Ptr
double * q_s_Equ_c2_Node_Ptr
The Device class is an interface for device implementations.
double * f_s_Equ_c2_Node_Ptr
double * f_s_Equ_c3_Node_Ptr
double * f_e1_Equ_b_Node_Ptr
double * f_c4_Equ_e1_Node_Ptr
int li_state_admsProbeID_V_b2_c2
double * q_c2_Equ_c4_Node_Ptr
void addInstance(Instance *instance)
double * f_c1_Equ_b_Node_Ptr
double * q_b_Equ_c3_Node_Ptr
double * f_b2_Equ_e1_Node_Ptr
double * q_c1_Equ_b_Node_Ptr
double * f_c4_Equ_b1_Node_Ptr
static const int admsNodeID_e
double * q_c2_Equ_c_Node_Ptr
double * q_b_Equ_s_Node_Ptr
double * q_dt_Equ_c3_Node_Ptr
static const int admsNodeID_b1
Sacado::Fad::SFad< double, 1 > AdmsSensFadType
double * f_c_Equ_dt_Node_Ptr
double * q_c_Equ_b_Node_Ptr
static const char * name()
Class Configuration contains device configuration data.
double * q_c_Equ_c2_Node_Ptr
double * q_c3_Equ_c4_Node_Ptr
double * f_s_Equ_c_Node_Ptr
double * f_s_Equ_e1_Node_Ptr
double * q_e1_Equ_noi_Node_Ptr
double * q_c4_Equ_c4_Node_Ptr
double * f_c2_Equ_c1_Node_Ptr
double * q_c1_Equ_c2_Node_Ptr
double * q_b1_Equ_c3_Node_Ptr
double * f_e_Equ_e1_Node_Ptr
static const int admsNodeID_b
Model(const Configuration &configuration, const ModelBlock &model_block, const FactoryBlock &factory_block)
double * q_c4_Equ_b2_Node_Ptr
double * f_b2_Equ_noi_Node_Ptr
static const int admsProbeID_V_e_e1
double * f_noi_Equ_c1_Node_Ptr
double * q_b_Equ_e1_Node_Ptr
double * q_e1_Equ_c_Node_Ptr
double * f_c1_Equ_c3_Node_Ptr
double * f_b_Equ_b_Node_Ptr
double * q_b2_Equ_c_Node_Ptr
double * f_dt_Equ_e_Node_Ptr
double * f_dt_Equ_c2_Node_Ptr
double * f_c1_Equ_b1_Node_Ptr
double * f_dt_Equ_c1_Node_Ptr
double * f_e1_Equ_c2_Node_Ptr
double * f_dt_Equ_b1_Node_Ptr
double * f_noi_Equ_e1_Node_Ptr
double * f_b1_Equ_c_Node_Ptr
double * q_c2_Equ_b_Node_Ptr
double * q_b_Equ_c_Node_Ptr
double * f_c1_Equ_c_Node_Ptr
double * f_b1_Equ_c2_Node_Ptr
double * q_s_Equ_s_Node_Ptr
void registerJacLIDs(const JacobianStamp &jacLIDVec)
double * f_e1_Equ_dt_Node_Ptr
double * f_dt_Equ_e1_Node_Ptr
double * f_c_Equ_b2_Node_Ptr
double * q_b2_Equ_c1_Node_Ptr
double * q_dt_Equ_c2_Node_Ptr
double * q_s_Equ_c1_Node_Ptr
double * f_c_Equ_b1_Node_Ptr
double * q_b2_Equ_noi_Node_Ptr
double * f_b_Equ_c_Node_Ptr
double * f_c3_Equ_c1_Node_Ptr
double * f_e1_Equ_c3_Node_Ptr
std::vector< double > Jdxp_dynamic
Instance & operator=(const Instance &)
static const int admsNodeID_e1
double * q_dt_Equ_b2_Node_Ptr
double * f_c2_Equ_b_Node_Ptr
double * q_dt_Equ_b1_Node_Ptr
double * f_c4_Equ_c_Node_Ptr
double * f_b2_Equ_c1_Node_Ptr
double * f_c_Equ_c_Node_Ptr
double * q_b1_Equ_dt_Node_Ptr
double * q_c1_Equ_c_Node_Ptr
double * q_e1_Equ_e_Node_Ptr
double * q_dt_Equ_c4_Node_Ptr
double * q_c3_Equ_c2_Node_Ptr
double * q_e1_Equ_b2_Node_Ptr
double * f_c3_Equ_b1_Node_Ptr
double * q_e1_Equ_c3_Node_Ptr
double * q_b_Equ_b1_Node_Ptr
double * q_c_Equ_b1_Node_Ptr
double * q_c1_Equ_dt_Node_Ptr
Sacado::Fad::SFad< double, 16 > AdmsFadType
double * f_e1_Equ_e1_Node_Ptr
static const int admsProbeID_V_c1_c2
double * q_c1_Equ_c4_Node_Ptr
double * f_c1_Equ_c2_Node_Ptr
double * f_b2_Equ_c3_Node_Ptr
double * q_dt_Equ_e_Node_Ptr
static const int admsProbeID_V_b2_c1
double * q_c3_Equ_e1_Node_Ptr
bool updatePrimaryState()
double * f_dt_Equ_b_Node_Ptr
static const int admsProbeID_V_s_c1
double * f_b1_Equ_b2_Node_Ptr
Base sensitivity functor.
bool processParams()
processParams
double * q_c3_Equ_c3_Node_Ptr
double * f_e_Equ_b_Node_Ptr
double * f_dt_Equ_b2_Node_Ptr
static const int admsNodeID_c2
double * q_c_Equ_dt_Node_Ptr
ModelBlock represents a .MODEL line from the netlist.
The DeviceTraits template describes the configuration of a device.
double * f_b_Equ_c4_Node_Ptr
Manages parameter binding for class C.
double * f_c1_Equ_s_Node_Ptr
double * q_b2_Equ_b1_Node_Ptr
InstanceBlock represent a device instance line from the netlist.
double * q_b2_Equ_c2_Node_Ptr
double * f_dt_Equ_c3_Node_Ptr
double * q_noi_Equ_c2_Node_Ptr
double * q_b2_Equ_c3_Node_Ptr
double * f_c3_Equ_c4_Node_Ptr
int li_state_admsProbeID_V_b1_e1
double * q_dt_Equ_c_Node_Ptr
double * q_dt_Equ_e1_Node_Ptr
double * q_s_Equ_c_Node_Ptr
double * q_c1_Equ_c1_Node_Ptr
double * f_c4_Equ_c1_Node_Ptr
double * q_c4_Equ_s_Node_Ptr
double ADMSceil(const T &x)
static const int admsNodeID_c
double * f_c_Equ_c3_Node_Ptr
static const int admsNodeID_c1
int li_state_admsProbeID_V_b1_b2
double * f_e1_Equ_c4_Node_Ptr
double * f_b_Equ_b1_Node_Ptr
static const int admsNodeID_dt
double * q_c4_Equ_c1_Node_Ptr
bool updateSecondaryState()
double * q_e_Equ_b_Node_Ptr
double * f_b1_Equ_b1_Node_Ptr
double * f_c2_Equ_b1_Node_Ptr
double * q_c2_Equ_b1_Node_Ptr
std::vector< std::vector< int > > jacMap2
virtual std::ostream & printOutInstances(std::ostream &os) const