Xyce  6.1
N_DEV_ADMSvbic.h
Go to the documentation of this file.
1 
2 // -*-c++-*-
3 //-----------------------------------------------------------------------------
4 // Copyright Notice
5 //
6 // Copyright 2002 Sandia Corporation. Under the terms
7 // of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S.
8 // Government retains certain rights in this software.
9 //
10 // Xyce(TM) Parallel Electrical Simulator
11 // Copyright (C) 2002-2015 Sandia Corporation
12 //
13 // This program is free software: you can redistribute it and/or modify
14 // it under the terms of the GNU General Public License as published by
15 // the Free Software Foundation, either version 3 of the License, or
16 // (at your option) any later version.
17 //
18 // This program is distributed in the hope that it will be useful,
19 // but WITHOUT ANY WARRANTY; without even the implied warranty of
20 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 // GNU General Public License for more details.
22 //
23 // You should have received a copy of the GNU General Public License
24 // along with this program. If not, see <http://www.gnu.org/licenses/>.
25 //-----------------------------------------------------------------------------
26 
27 //-----------------------------------------------------------------------------
28 // Filename : $RCSfile: N_DEV_ADMSvbic.h,v $
29 //
30 // Purpose :
31 //
32 // Special Notes : Generated from verilog file vbic_3T_et_cf_Xyce_typed.vla with ADMS
33 // interface for Xyce 6.1.0
34 // DO NOT EDIT THIS FILE DIRECTLY! It may be overwritten!
35 //
36 // Creator : admsXml-2.3.4
37 //
38 // Creation Date : Wed, 04 Mar 2015 16:36:19
39 //
40 // Revision Information:
41 // ---------------------
42 //
43 // Revision Number: $Revision: 1.66.2.1 $
44 //
45 // Revision Date : $Date: 2015/04/02 18:20:08 $
46 //
47 // Current Owner : $Author: tvrusso $
48 //-----------------------------------------------------------------------------
49 #ifndef Xyce_N_DEV_ADMSvbic_h
50 #define Xyce_N_DEV_ADMSvbic_h
51 
52 
53 #include <Sacado.hpp>
54 
55 #include <N_DEV_Configuration.h>
56 #include <N_DEV_Const.h>
57 #include <N_DEV_DeviceBlock.h>
58 #include <N_DEV_DeviceInstance.h>
59 #include <N_DEV_DeviceModel.h>
60 #include <N_DEV_BJT.h>
61 
62 
63 namespace Xyce {
64 namespace Device {
65 namespace ADMSvbic {
66 
67 // This typedef is for our automatic differentiation:
68 typedef Sacado::Fad::SFad<double,15> AdmsFadType;
69 typedef Sacado::Fad::SFad<double,1> AdmsSensFadType;
70 
71 class Model;
72 class Instance;
74 
75 //-----------------------------------------------------------------------------
76 // Class : InstanceSensitivity
77 //
78 // Purpose : This class is a functor for sensitivity
79 //
80 // Special Notes :
81 // Creator :
82 // Creation Date :
83 //-----------------------------------------------------------------------------
85 {
86 public:
88  baseSensitivity() {};
89 
90  virtual ~InstanceSensitivity() {};
91 
92  virtual void operator()(
93  const ParameterBase &entity,
94  const std::string &param,
95  std::vector<double> & dfdp,
96  std::vector<double> & dqdp,
97  std::vector<double> & dbdp,
98  std::vector<int> & Findices,
99  std::vector<int> & Qindices,
100  std::vector<int> & Bindices
101  ) const ;
102 };
103 
105 
106 
107 //-----------------------------------------------------------------------------
108 // Class : ModelSensitivity
109 //
110 // Purpose : This class is a functor for sensitivity
111 //
112 // Special Notes :
113 // Creator :
114 // Creation Date :
115 //-----------------------------------------------------------------------------
117 {
118 public:
120  baseSensitivity() {};
121 
122  virtual ~ModelSensitivity() {};
123 
124  virtual void operator()(
125  const ParameterBase &entity,
126  const std::string &param,
127  std::vector<double> & dfdp,
128  std::vector<double> & dqdp,
129  std::vector<double> & dbdp,
130  std::vector<int> & Findices,
131  std::vector<int> & Qindices,
132  std::vector<int> & Bindices
133  ) const ;
134 };
135 
137 
138 // general purpose free functions
139 // thermal voltage at kelvin temperature temp)
140 template <typename T> static inline T adms_vt(const T temp) {return(CONSTKoverQ*temp);};
141 
142 // Figure out how to template this shiznit!
143 //-----------------------------------------------------------------------------
144 
145 
146 template<typename Tin>
147 static Tin adms_ternary_op(const bool cond, const Tin &ifTrue, const Tin &ifFalse)
148 {
149  if (cond)
150  return ifTrue;
151  else
152  return ifFalse;
153 }
154 
155 template<typename Tin>
156 static Tin adms_ternary_op(const bool cond, const Tin &ifTrue, const double &ifFalse)
157 {
158  if (cond)
159  return ifTrue;
160  else
161  return Tin(ifFalse);
162 }
163 
164 template<typename Tin>
165 static Tin adms_ternary_op(const bool cond, const double &ifTrue, const Tin &ifFalse)
166 {
167  if (cond)
168  return Tin(ifTrue);
169  else
170  return ifFalse;
171 }
172 
173 
174 
175 
176 
177 //-----------------------------------------------------------------------------
178 // Free functions used by sensitivity
179 //
180 //-----------------------------------------------------------------------------
182  std::vector <double> & probeVars,
183  // probe constants
184  const int admsProbeID_V_ci_ei,
185  const int admsProbeID_V_b_c,
186  const int admsProbeID_V_bp_cx,
187  const int admsProbeID_V_e_ei,
188  const int admsProbeID_V_b_bx,
189  const int admsProbeID_V_bx_bi,
190  const int admsProbeID_V_cx_ci,
191  const int admsProbeID_V_c_cx,
192  const int admsProbeID_V_b_e,
193  const int admsProbeID_V_dt_GND,
194  const int admsProbeID_V_bx_bp,
195  const int admsProbeID_V_bi_cx,
196  const int admsProbeID_V_bx_ei,
197  const int admsProbeID_V_bi_ci,
198  const int admsProbeID_V_bi_ei,
199  // node constants
200  const int admsNodeID_c,
201  const int admsNodeID_b,
202  const int admsNodeID_e,
203  const int admsNodeID_dt,
204  const int admsNodeID_cx,
205  const int admsNodeID_ci,
206  const int admsNodeID_bx,
207  const int admsNodeID_bi,
208  const int admsNodeID_ei,
209  const int admsNodeID_bp,
210  // instance parameters
211  // reals
212  AdmsSensFadType & instancePar_DTEMP,
213  bool instancePar_given_DTEMP,
214  // non-reals(including hidden)
215  int instancePar_M,
216  bool instancePar_given_M,
217  // model parameters
218  // reals
219  AdmsSensFadType & modelPar_TNOM,
220  bool modelPar_given_TNOM,
221  AdmsSensFadType & modelPar_RCX,
222  bool modelPar_given_RCX,
223  AdmsSensFadType & modelPar_RCI,
224  bool modelPar_given_RCI,
225  AdmsSensFadType & modelPar_VO,
226  bool modelPar_given_VO,
227  AdmsSensFadType & modelPar_GAMM,
228  bool modelPar_given_GAMM,
229  AdmsSensFadType & modelPar_HRCF,
230  bool modelPar_given_HRCF,
231  AdmsSensFadType & modelPar_RBX,
232  bool modelPar_given_RBX,
233  AdmsSensFadType & modelPar_RBI,
234  bool modelPar_given_RBI,
235  AdmsSensFadType & modelPar_RE,
236  bool modelPar_given_RE,
237  AdmsSensFadType & modelPar_RS,
238  bool modelPar_given_RS,
239  AdmsSensFadType & modelPar_RBP,
240  bool modelPar_given_RBP,
241  AdmsSensFadType & modelPar_IS,
242  bool modelPar_given_IS,
243  AdmsSensFadType & modelPar_NF,
244  bool modelPar_given_NF,
245  AdmsSensFadType & modelPar_NR,
246  bool modelPar_given_NR,
247  AdmsSensFadType & modelPar_FC,
248  bool modelPar_given_FC,
249  AdmsSensFadType & modelPar_CBEO,
250  bool modelPar_given_CBEO,
251  AdmsSensFadType & modelPar_CJE,
252  bool modelPar_given_CJE,
253  AdmsSensFadType & modelPar_PE,
254  bool modelPar_given_PE,
255  AdmsSensFadType & modelPar_ME,
256  bool modelPar_given_ME,
257  AdmsSensFadType & modelPar_AJE,
258  bool modelPar_given_AJE,
259  AdmsSensFadType & modelPar_CBCO,
260  bool modelPar_given_CBCO,
261  AdmsSensFadType & modelPar_CJC,
262  bool modelPar_given_CJC,
263  AdmsSensFadType & modelPar_QCO,
264  bool modelPar_given_QCO,
265  AdmsSensFadType & modelPar_CJEP,
266  bool modelPar_given_CJEP,
267  AdmsSensFadType & modelPar_PC,
268  bool modelPar_given_PC,
269  AdmsSensFadType & modelPar_MC,
270  bool modelPar_given_MC,
271  AdmsSensFadType & modelPar_AJC,
272  bool modelPar_given_AJC,
273  AdmsSensFadType & modelPar_CJCP,
274  bool modelPar_given_CJCP,
275  AdmsSensFadType & modelPar_PS,
276  bool modelPar_given_PS,
277  AdmsSensFadType & modelPar_MS,
278  bool modelPar_given_MS,
279  AdmsSensFadType & modelPar_AJS,
280  bool modelPar_given_AJS,
281  AdmsSensFadType & modelPar_IBEI,
282  bool modelPar_given_IBEI,
283  AdmsSensFadType & modelPar_WBE,
284  bool modelPar_given_WBE,
285  AdmsSensFadType & modelPar_NEI,
286  bool modelPar_given_NEI,
287  AdmsSensFadType & modelPar_IBEN,
288  bool modelPar_given_IBEN,
289  AdmsSensFadType & modelPar_NEN,
290  bool modelPar_given_NEN,
291  AdmsSensFadType & modelPar_IBCI,
292  bool modelPar_given_IBCI,
293  AdmsSensFadType & modelPar_NCI,
294  bool modelPar_given_NCI,
295  AdmsSensFadType & modelPar_IBCN,
296  bool modelPar_given_IBCN,
297  AdmsSensFadType & modelPar_NCN,
298  bool modelPar_given_NCN,
299  AdmsSensFadType & modelPar_AVC1,
300  bool modelPar_given_AVC1,
301  AdmsSensFadType & modelPar_AVC2,
302  bool modelPar_given_AVC2,
303  AdmsSensFadType & modelPar_ISP,
304  bool modelPar_given_ISP,
305  AdmsSensFadType & modelPar_WSP,
306  bool modelPar_given_WSP,
307  AdmsSensFadType & modelPar_NFP,
308  bool modelPar_given_NFP,
309  AdmsSensFadType & modelPar_IBEIP,
310  bool modelPar_given_IBEIP,
311  AdmsSensFadType & modelPar_IBENP,
312  bool modelPar_given_IBENP,
313  AdmsSensFadType & modelPar_IBCIP,
314  bool modelPar_given_IBCIP,
315  AdmsSensFadType & modelPar_NCIP,
316  bool modelPar_given_NCIP,
317  AdmsSensFadType & modelPar_IBCNP,
318  bool modelPar_given_IBCNP,
319  AdmsSensFadType & modelPar_NCNP,
320  bool modelPar_given_NCNP,
321  AdmsSensFadType & modelPar_VEF,
322  bool modelPar_given_VEF,
323  AdmsSensFadType & modelPar_VER,
324  bool modelPar_given_VER,
325  AdmsSensFadType & modelPar_IKF,
326  bool modelPar_given_IKF,
327  AdmsSensFadType & modelPar_IKR,
328  bool modelPar_given_IKR,
329  AdmsSensFadType & modelPar_IKP,
330  bool modelPar_given_IKP,
331  AdmsSensFadType & modelPar_TF,
332  bool modelPar_given_TF,
333  AdmsSensFadType & modelPar_QTF,
334  bool modelPar_given_QTF,
335  AdmsSensFadType & modelPar_XTF,
336  bool modelPar_given_XTF,
337  AdmsSensFadType & modelPar_VTF,
338  bool modelPar_given_VTF,
339  AdmsSensFadType & modelPar_ITF,
340  bool modelPar_given_ITF,
341  AdmsSensFadType & modelPar_TR,
342  bool modelPar_given_TR,
343  AdmsSensFadType & modelPar_TD,
344  bool modelPar_given_TD,
345  AdmsSensFadType & modelPar_KFN,
346  bool modelPar_given_KFN,
347  AdmsSensFadType & modelPar_AFN,
348  bool modelPar_given_AFN,
349  AdmsSensFadType & modelPar_BFN,
350  bool modelPar_given_BFN,
351  AdmsSensFadType & modelPar_XRE,
352  bool modelPar_given_XRE,
353  AdmsSensFadType & modelPar_XRBI,
354  bool modelPar_given_XRBI,
355  AdmsSensFadType & modelPar_XRCI,
356  bool modelPar_given_XRCI,
357  AdmsSensFadType & modelPar_XRS,
358  bool modelPar_given_XRS,
359  AdmsSensFadType & modelPar_XVO,
360  bool modelPar_given_XVO,
361  AdmsSensFadType & modelPar_EA,
362  bool modelPar_given_EA,
363  AdmsSensFadType & modelPar_EAIE,
364  bool modelPar_given_EAIE,
365  AdmsSensFadType & modelPar_EAIC,
366  bool modelPar_given_EAIC,
367  AdmsSensFadType & modelPar_EAIS,
368  bool modelPar_given_EAIS,
369  AdmsSensFadType & modelPar_EANE,
370  bool modelPar_given_EANE,
371  AdmsSensFadType & modelPar_EANC,
372  bool modelPar_given_EANC,
373  AdmsSensFadType & modelPar_EANS,
374  bool modelPar_given_EANS,
375  AdmsSensFadType & modelPar_XIS,
376  bool modelPar_given_XIS,
377  AdmsSensFadType & modelPar_XII,
378  bool modelPar_given_XII,
379  AdmsSensFadType & modelPar_XIN,
380  bool modelPar_given_XIN,
381  AdmsSensFadType & modelPar_TNF,
382  bool modelPar_given_TNF,
383  AdmsSensFadType & modelPar_TAVC,
384  bool modelPar_given_TAVC,
385  AdmsSensFadType & modelPar_RTH,
386  bool modelPar_given_RTH,
387  AdmsSensFadType & modelPar_CTH,
388  bool modelPar_given_CTH,
389  AdmsSensFadType & modelPar_VRT,
390  bool modelPar_given_VRT,
391  AdmsSensFadType & modelPar_ART,
392  bool modelPar_given_ART,
393  AdmsSensFadType & modelPar_CCSO,
394  bool modelPar_given_CCSO,
395  AdmsSensFadType & modelPar_QBM,
396  bool modelPar_given_QBM,
397  AdmsSensFadType & modelPar_NKF,
398  bool modelPar_given_NKF,
399  AdmsSensFadType & modelPar_XIKF,
400  bool modelPar_given_XIKF,
401  AdmsSensFadType & modelPar_XRCX,
402  bool modelPar_given_XRCX,
403  AdmsSensFadType & modelPar_XRBX,
404  bool modelPar_given_XRBX,
405  AdmsSensFadType & modelPar_XRBP,
406  bool modelPar_given_XRBP,
407  AdmsSensFadType & modelPar_ISRR,
408  bool modelPar_given_ISRR,
409  AdmsSensFadType & modelPar_XISR,
410  bool modelPar_given_XISR,
411  AdmsSensFadType & modelPar_DEAR,
412  bool modelPar_given_DEAR,
413  AdmsSensFadType & modelPar_EAP,
414  bool modelPar_given_EAP,
415  AdmsSensFadType & modelPar_VBBE,
416  bool modelPar_given_VBBE,
417  AdmsSensFadType & modelPar_NBBE,
418  bool modelPar_given_NBBE,
419  AdmsSensFadType & modelPar_IBBE,
420  bool modelPar_given_IBBE,
421  AdmsSensFadType & modelPar_TVBBE1,
422  bool modelPar_given_TVBBE1,
423  AdmsSensFadType & modelPar_TVBBE2,
424  bool modelPar_given_TVBBE2,
425  AdmsSensFadType & modelPar_TNBBE,
426  bool modelPar_given_TNBBE,
427  AdmsSensFadType & modelPar_EBBE,
428  bool modelPar_given_EBBE,
429  AdmsSensFadType & modelPar_DTEMP,
430  bool modelPar_given_DTEMP,
431  AdmsSensFadType & modelPar_VERS,
432  bool modelPar_given_VERS,
433  AdmsSensFadType & modelPar_VREV,
434  bool modelPar_given_VREV,
435  // non-reals (including hidden)
436  int modelPar_dtype,
437  // basic variables
438  double admsTemperature, double adms_vt_nom, double gmin, std::vector <AdmsSensFadType> & staticContributions, std::vector <AdmsSensFadType> & dynamicContributions, const Instance & theInstance);
439 
441  // instance parameters
442  // reals
443  AdmsSensFadType & instancePar_DTEMP,
444  bool instancePar_given_DTEMP,
445  // non-reals(including hidden)
446  int instancePar_M,
447  bool instancePar_given_M,
448  // model parameters
449  // reals
450  AdmsSensFadType & modelPar_TNOM,
451  bool modelPar_given_TNOM,
452  AdmsSensFadType & modelPar_RCX,
453  bool modelPar_given_RCX,
454  AdmsSensFadType & modelPar_RCI,
455  bool modelPar_given_RCI,
456  AdmsSensFadType & modelPar_VO,
457  bool modelPar_given_VO,
458  AdmsSensFadType & modelPar_GAMM,
459  bool modelPar_given_GAMM,
460  AdmsSensFadType & modelPar_HRCF,
461  bool modelPar_given_HRCF,
462  AdmsSensFadType & modelPar_RBX,
463  bool modelPar_given_RBX,
464  AdmsSensFadType & modelPar_RBI,
465  bool modelPar_given_RBI,
466  AdmsSensFadType & modelPar_RE,
467  bool modelPar_given_RE,
468  AdmsSensFadType & modelPar_RS,
469  bool modelPar_given_RS,
470  AdmsSensFadType & modelPar_RBP,
471  bool modelPar_given_RBP,
472  AdmsSensFadType & modelPar_IS,
473  bool modelPar_given_IS,
474  AdmsSensFadType & modelPar_NF,
475  bool modelPar_given_NF,
476  AdmsSensFadType & modelPar_NR,
477  bool modelPar_given_NR,
478  AdmsSensFadType & modelPar_FC,
479  bool modelPar_given_FC,
480  AdmsSensFadType & modelPar_CBEO,
481  bool modelPar_given_CBEO,
482  AdmsSensFadType & modelPar_CJE,
483  bool modelPar_given_CJE,
484  AdmsSensFadType & modelPar_PE,
485  bool modelPar_given_PE,
486  AdmsSensFadType & modelPar_ME,
487  bool modelPar_given_ME,
488  AdmsSensFadType & modelPar_AJE,
489  bool modelPar_given_AJE,
490  AdmsSensFadType & modelPar_CBCO,
491  bool modelPar_given_CBCO,
492  AdmsSensFadType & modelPar_CJC,
493  bool modelPar_given_CJC,
494  AdmsSensFadType & modelPar_QCO,
495  bool modelPar_given_QCO,
496  AdmsSensFadType & modelPar_CJEP,
497  bool modelPar_given_CJEP,
498  AdmsSensFadType & modelPar_PC,
499  bool modelPar_given_PC,
500  AdmsSensFadType & modelPar_MC,
501  bool modelPar_given_MC,
502  AdmsSensFadType & modelPar_AJC,
503  bool modelPar_given_AJC,
504  AdmsSensFadType & modelPar_CJCP,
505  bool modelPar_given_CJCP,
506  AdmsSensFadType & modelPar_PS,
507  bool modelPar_given_PS,
508  AdmsSensFadType & modelPar_MS,
509  bool modelPar_given_MS,
510  AdmsSensFadType & modelPar_AJS,
511  bool modelPar_given_AJS,
512  AdmsSensFadType & modelPar_IBEI,
513  bool modelPar_given_IBEI,
514  AdmsSensFadType & modelPar_WBE,
515  bool modelPar_given_WBE,
516  AdmsSensFadType & modelPar_NEI,
517  bool modelPar_given_NEI,
518  AdmsSensFadType & modelPar_IBEN,
519  bool modelPar_given_IBEN,
520  AdmsSensFadType & modelPar_NEN,
521  bool modelPar_given_NEN,
522  AdmsSensFadType & modelPar_IBCI,
523  bool modelPar_given_IBCI,
524  AdmsSensFadType & modelPar_NCI,
525  bool modelPar_given_NCI,
526  AdmsSensFadType & modelPar_IBCN,
527  bool modelPar_given_IBCN,
528  AdmsSensFadType & modelPar_NCN,
529  bool modelPar_given_NCN,
530  AdmsSensFadType & modelPar_AVC1,
531  bool modelPar_given_AVC1,
532  AdmsSensFadType & modelPar_AVC2,
533  bool modelPar_given_AVC2,
534  AdmsSensFadType & modelPar_ISP,
535  bool modelPar_given_ISP,
536  AdmsSensFadType & modelPar_WSP,
537  bool modelPar_given_WSP,
538  AdmsSensFadType & modelPar_NFP,
539  bool modelPar_given_NFP,
540  AdmsSensFadType & modelPar_IBEIP,
541  bool modelPar_given_IBEIP,
542  AdmsSensFadType & modelPar_IBENP,
543  bool modelPar_given_IBENP,
544  AdmsSensFadType & modelPar_IBCIP,
545  bool modelPar_given_IBCIP,
546  AdmsSensFadType & modelPar_NCIP,
547  bool modelPar_given_NCIP,
548  AdmsSensFadType & modelPar_IBCNP,
549  bool modelPar_given_IBCNP,
550  AdmsSensFadType & modelPar_NCNP,
551  bool modelPar_given_NCNP,
552  AdmsSensFadType & modelPar_VEF,
553  bool modelPar_given_VEF,
554  AdmsSensFadType & modelPar_VER,
555  bool modelPar_given_VER,
556  AdmsSensFadType & modelPar_IKF,
557  bool modelPar_given_IKF,
558  AdmsSensFadType & modelPar_IKR,
559  bool modelPar_given_IKR,
560  AdmsSensFadType & modelPar_IKP,
561  bool modelPar_given_IKP,
562  AdmsSensFadType & modelPar_TF,
563  bool modelPar_given_TF,
564  AdmsSensFadType & modelPar_QTF,
565  bool modelPar_given_QTF,
566  AdmsSensFadType & modelPar_XTF,
567  bool modelPar_given_XTF,
568  AdmsSensFadType & modelPar_VTF,
569  bool modelPar_given_VTF,
570  AdmsSensFadType & modelPar_ITF,
571  bool modelPar_given_ITF,
572  AdmsSensFadType & modelPar_TR,
573  bool modelPar_given_TR,
574  AdmsSensFadType & modelPar_TD,
575  bool modelPar_given_TD,
576  AdmsSensFadType & modelPar_KFN,
577  bool modelPar_given_KFN,
578  AdmsSensFadType & modelPar_AFN,
579  bool modelPar_given_AFN,
580  AdmsSensFadType & modelPar_BFN,
581  bool modelPar_given_BFN,
582  AdmsSensFadType & modelPar_XRE,
583  bool modelPar_given_XRE,
584  AdmsSensFadType & modelPar_XRBI,
585  bool modelPar_given_XRBI,
586  AdmsSensFadType & modelPar_XRCI,
587  bool modelPar_given_XRCI,
588  AdmsSensFadType & modelPar_XRS,
589  bool modelPar_given_XRS,
590  AdmsSensFadType & modelPar_XVO,
591  bool modelPar_given_XVO,
592  AdmsSensFadType & modelPar_EA,
593  bool modelPar_given_EA,
594  AdmsSensFadType & modelPar_EAIE,
595  bool modelPar_given_EAIE,
596  AdmsSensFadType & modelPar_EAIC,
597  bool modelPar_given_EAIC,
598  AdmsSensFadType & modelPar_EAIS,
599  bool modelPar_given_EAIS,
600  AdmsSensFadType & modelPar_EANE,
601  bool modelPar_given_EANE,
602  AdmsSensFadType & modelPar_EANC,
603  bool modelPar_given_EANC,
604  AdmsSensFadType & modelPar_EANS,
605  bool modelPar_given_EANS,
606  AdmsSensFadType & modelPar_XIS,
607  bool modelPar_given_XIS,
608  AdmsSensFadType & modelPar_XII,
609  bool modelPar_given_XII,
610  AdmsSensFadType & modelPar_XIN,
611  bool modelPar_given_XIN,
612  AdmsSensFadType & modelPar_TNF,
613  bool modelPar_given_TNF,
614  AdmsSensFadType & modelPar_TAVC,
615  bool modelPar_given_TAVC,
616  AdmsSensFadType & modelPar_RTH,
617  bool modelPar_given_RTH,
618  AdmsSensFadType & modelPar_CTH,
619  bool modelPar_given_CTH,
620  AdmsSensFadType & modelPar_VRT,
621  bool modelPar_given_VRT,
622  AdmsSensFadType & modelPar_ART,
623  bool modelPar_given_ART,
624  AdmsSensFadType & modelPar_CCSO,
625  bool modelPar_given_CCSO,
626  AdmsSensFadType & modelPar_QBM,
627  bool modelPar_given_QBM,
628  AdmsSensFadType & modelPar_NKF,
629  bool modelPar_given_NKF,
630  AdmsSensFadType & modelPar_XIKF,
631  bool modelPar_given_XIKF,
632  AdmsSensFadType & modelPar_XRCX,
633  bool modelPar_given_XRCX,
634  AdmsSensFadType & modelPar_XRBX,
635  bool modelPar_given_XRBX,
636  AdmsSensFadType & modelPar_XRBP,
637  bool modelPar_given_XRBP,
638  AdmsSensFadType & modelPar_ISRR,
639  bool modelPar_given_ISRR,
640  AdmsSensFadType & modelPar_XISR,
641  bool modelPar_given_XISR,
642  AdmsSensFadType & modelPar_DEAR,
643  bool modelPar_given_DEAR,
644  AdmsSensFadType & modelPar_EAP,
645  bool modelPar_given_EAP,
646  AdmsSensFadType & modelPar_VBBE,
647  bool modelPar_given_VBBE,
648  AdmsSensFadType & modelPar_NBBE,
649  bool modelPar_given_NBBE,
650  AdmsSensFadType & modelPar_IBBE,
651  bool modelPar_given_IBBE,
652  AdmsSensFadType & modelPar_TVBBE1,
653  bool modelPar_given_TVBBE1,
654  AdmsSensFadType & modelPar_TVBBE2,
655  bool modelPar_given_TVBBE2,
656  AdmsSensFadType & modelPar_TNBBE,
657  bool modelPar_given_TNBBE,
658  AdmsSensFadType & modelPar_EBBE,
659  bool modelPar_given_EBBE,
660  AdmsSensFadType & modelPar_DTEMP,
661  bool modelPar_given_DTEMP,
662  AdmsSensFadType & modelPar_VERS,
663  bool modelPar_given_VERS,
664  AdmsSensFadType & modelPar_VREV,
665  bool modelPar_given_VREV,
666  // non-reals (including hidden)
667  int modelPar_dtype,
668  double admsTemperature);
669 
671  // model parameters
672  // reals
673  AdmsSensFadType & modelPar_TNOM,
674  bool modelPar_given_TNOM,
675  AdmsSensFadType & modelPar_RCX,
676  bool modelPar_given_RCX,
677  AdmsSensFadType & modelPar_RCI,
678  bool modelPar_given_RCI,
679  AdmsSensFadType & modelPar_VO,
680  bool modelPar_given_VO,
681  AdmsSensFadType & modelPar_GAMM,
682  bool modelPar_given_GAMM,
683  AdmsSensFadType & modelPar_HRCF,
684  bool modelPar_given_HRCF,
685  AdmsSensFadType & modelPar_RBX,
686  bool modelPar_given_RBX,
687  AdmsSensFadType & modelPar_RBI,
688  bool modelPar_given_RBI,
689  AdmsSensFadType & modelPar_RE,
690  bool modelPar_given_RE,
691  AdmsSensFadType & modelPar_RS,
692  bool modelPar_given_RS,
693  AdmsSensFadType & modelPar_RBP,
694  bool modelPar_given_RBP,
695  AdmsSensFadType & modelPar_IS,
696  bool modelPar_given_IS,
697  AdmsSensFadType & modelPar_NF,
698  bool modelPar_given_NF,
699  AdmsSensFadType & modelPar_NR,
700  bool modelPar_given_NR,
701  AdmsSensFadType & modelPar_FC,
702  bool modelPar_given_FC,
703  AdmsSensFadType & modelPar_CBEO,
704  bool modelPar_given_CBEO,
705  AdmsSensFadType & modelPar_CJE,
706  bool modelPar_given_CJE,
707  AdmsSensFadType & modelPar_PE,
708  bool modelPar_given_PE,
709  AdmsSensFadType & modelPar_ME,
710  bool modelPar_given_ME,
711  AdmsSensFadType & modelPar_AJE,
712  bool modelPar_given_AJE,
713  AdmsSensFadType & modelPar_CBCO,
714  bool modelPar_given_CBCO,
715  AdmsSensFadType & modelPar_CJC,
716  bool modelPar_given_CJC,
717  AdmsSensFadType & modelPar_QCO,
718  bool modelPar_given_QCO,
719  AdmsSensFadType & modelPar_CJEP,
720  bool modelPar_given_CJEP,
721  AdmsSensFadType & modelPar_PC,
722  bool modelPar_given_PC,
723  AdmsSensFadType & modelPar_MC,
724  bool modelPar_given_MC,
725  AdmsSensFadType & modelPar_AJC,
726  bool modelPar_given_AJC,
727  AdmsSensFadType & modelPar_CJCP,
728  bool modelPar_given_CJCP,
729  AdmsSensFadType & modelPar_PS,
730  bool modelPar_given_PS,
731  AdmsSensFadType & modelPar_MS,
732  bool modelPar_given_MS,
733  AdmsSensFadType & modelPar_AJS,
734  bool modelPar_given_AJS,
735  AdmsSensFadType & modelPar_IBEI,
736  bool modelPar_given_IBEI,
737  AdmsSensFadType & modelPar_WBE,
738  bool modelPar_given_WBE,
739  AdmsSensFadType & modelPar_NEI,
740  bool modelPar_given_NEI,
741  AdmsSensFadType & modelPar_IBEN,
742  bool modelPar_given_IBEN,
743  AdmsSensFadType & modelPar_NEN,
744  bool modelPar_given_NEN,
745  AdmsSensFadType & modelPar_IBCI,
746  bool modelPar_given_IBCI,
747  AdmsSensFadType & modelPar_NCI,
748  bool modelPar_given_NCI,
749  AdmsSensFadType & modelPar_IBCN,
750  bool modelPar_given_IBCN,
751  AdmsSensFadType & modelPar_NCN,
752  bool modelPar_given_NCN,
753  AdmsSensFadType & modelPar_AVC1,
754  bool modelPar_given_AVC1,
755  AdmsSensFadType & modelPar_AVC2,
756  bool modelPar_given_AVC2,
757  AdmsSensFadType & modelPar_ISP,
758  bool modelPar_given_ISP,
759  AdmsSensFadType & modelPar_WSP,
760  bool modelPar_given_WSP,
761  AdmsSensFadType & modelPar_NFP,
762  bool modelPar_given_NFP,
763  AdmsSensFadType & modelPar_IBEIP,
764  bool modelPar_given_IBEIP,
765  AdmsSensFadType & modelPar_IBENP,
766  bool modelPar_given_IBENP,
767  AdmsSensFadType & modelPar_IBCIP,
768  bool modelPar_given_IBCIP,
769  AdmsSensFadType & modelPar_NCIP,
770  bool modelPar_given_NCIP,
771  AdmsSensFadType & modelPar_IBCNP,
772  bool modelPar_given_IBCNP,
773  AdmsSensFadType & modelPar_NCNP,
774  bool modelPar_given_NCNP,
775  AdmsSensFadType & modelPar_VEF,
776  bool modelPar_given_VEF,
777  AdmsSensFadType & modelPar_VER,
778  bool modelPar_given_VER,
779  AdmsSensFadType & modelPar_IKF,
780  bool modelPar_given_IKF,
781  AdmsSensFadType & modelPar_IKR,
782  bool modelPar_given_IKR,
783  AdmsSensFadType & modelPar_IKP,
784  bool modelPar_given_IKP,
785  AdmsSensFadType & modelPar_TF,
786  bool modelPar_given_TF,
787  AdmsSensFadType & modelPar_QTF,
788  bool modelPar_given_QTF,
789  AdmsSensFadType & modelPar_XTF,
790  bool modelPar_given_XTF,
791  AdmsSensFadType & modelPar_VTF,
792  bool modelPar_given_VTF,
793  AdmsSensFadType & modelPar_ITF,
794  bool modelPar_given_ITF,
795  AdmsSensFadType & modelPar_TR,
796  bool modelPar_given_TR,
797  AdmsSensFadType & modelPar_TD,
798  bool modelPar_given_TD,
799  AdmsSensFadType & modelPar_KFN,
800  bool modelPar_given_KFN,
801  AdmsSensFadType & modelPar_AFN,
802  bool modelPar_given_AFN,
803  AdmsSensFadType & modelPar_BFN,
804  bool modelPar_given_BFN,
805  AdmsSensFadType & modelPar_XRE,
806  bool modelPar_given_XRE,
807  AdmsSensFadType & modelPar_XRBI,
808  bool modelPar_given_XRBI,
809  AdmsSensFadType & modelPar_XRCI,
810  bool modelPar_given_XRCI,
811  AdmsSensFadType & modelPar_XRS,
812  bool modelPar_given_XRS,
813  AdmsSensFadType & modelPar_XVO,
814  bool modelPar_given_XVO,
815  AdmsSensFadType & modelPar_EA,
816  bool modelPar_given_EA,
817  AdmsSensFadType & modelPar_EAIE,
818  bool modelPar_given_EAIE,
819  AdmsSensFadType & modelPar_EAIC,
820  bool modelPar_given_EAIC,
821  AdmsSensFadType & modelPar_EAIS,
822  bool modelPar_given_EAIS,
823  AdmsSensFadType & modelPar_EANE,
824  bool modelPar_given_EANE,
825  AdmsSensFadType & modelPar_EANC,
826  bool modelPar_given_EANC,
827  AdmsSensFadType & modelPar_EANS,
828  bool modelPar_given_EANS,
829  AdmsSensFadType & modelPar_XIS,
830  bool modelPar_given_XIS,
831  AdmsSensFadType & modelPar_XII,
832  bool modelPar_given_XII,
833  AdmsSensFadType & modelPar_XIN,
834  bool modelPar_given_XIN,
835  AdmsSensFadType & modelPar_TNF,
836  bool modelPar_given_TNF,
837  AdmsSensFadType & modelPar_TAVC,
838  bool modelPar_given_TAVC,
839  AdmsSensFadType & modelPar_RTH,
840  bool modelPar_given_RTH,
841  AdmsSensFadType & modelPar_CTH,
842  bool modelPar_given_CTH,
843  AdmsSensFadType & modelPar_VRT,
844  bool modelPar_given_VRT,
845  AdmsSensFadType & modelPar_ART,
846  bool modelPar_given_ART,
847  AdmsSensFadType & modelPar_CCSO,
848  bool modelPar_given_CCSO,
849  AdmsSensFadType & modelPar_QBM,
850  bool modelPar_given_QBM,
851  AdmsSensFadType & modelPar_NKF,
852  bool modelPar_given_NKF,
853  AdmsSensFadType & modelPar_XIKF,
854  bool modelPar_given_XIKF,
855  AdmsSensFadType & modelPar_XRCX,
856  bool modelPar_given_XRCX,
857  AdmsSensFadType & modelPar_XRBX,
858  bool modelPar_given_XRBX,
859  AdmsSensFadType & modelPar_XRBP,
860  bool modelPar_given_XRBP,
861  AdmsSensFadType & modelPar_ISRR,
862  bool modelPar_given_ISRR,
863  AdmsSensFadType & modelPar_XISR,
864  bool modelPar_given_XISR,
865  AdmsSensFadType & modelPar_DEAR,
866  bool modelPar_given_DEAR,
867  AdmsSensFadType & modelPar_EAP,
868  bool modelPar_given_EAP,
869  AdmsSensFadType & modelPar_VBBE,
870  bool modelPar_given_VBBE,
871  AdmsSensFadType & modelPar_NBBE,
872  bool modelPar_given_NBBE,
873  AdmsSensFadType & modelPar_IBBE,
874  bool modelPar_given_IBBE,
875  AdmsSensFadType & modelPar_TVBBE1,
876  bool modelPar_given_TVBBE1,
877  AdmsSensFadType & modelPar_TVBBE2,
878  bool modelPar_given_TVBBE2,
879  AdmsSensFadType & modelPar_TNBBE,
880  bool modelPar_given_TNBBE,
881  AdmsSensFadType & modelPar_EBBE,
882  bool modelPar_given_EBBE,
883  AdmsSensFadType & modelPar_DTEMP,
884  bool modelPar_given_DTEMP,
885  AdmsSensFadType & modelPar_VERS,
886  bool modelPar_given_VERS,
887  AdmsSensFadType & modelPar_VREV,
888  bool modelPar_given_VREV,
889  // non-reals (including hidden)
890  int modelPar_dtype,
891  double admsTemperature);
892 
893 
894 
895 // Limited exponential --- NOT what verilog LRM says, but what qucs,
896 // ng-spice, and zspice do.
897 
898 template <typename T>
899 T limexp(const T &x)
900 {
901  if ((x) < 80.0)
902  return (exp(x));
903  else
904  return (exp(80.0)*(x-79.0));
905 }
906 
907 // Maybe this will do as a substitute for a sacado-provided "floor" and "ceil"?
908 // It is wrong to try to propagate the Sacado derivatives to the return
909 // value, as the floor and ceil functions have zero derivative w.r.t. any
910 // of the variables in the argument, except when X is an integer at which
911 // point the derivative is undefined.
912 template <typename T>
913 double ADMSfloor(const T & x)
914 {
915  return (floor(x.val()));
916 }
917 
918 template <typename T>
919 double ADMSceil(const T & x)
920 {
921  return (ceil(x.val()));
922 }
923 
924 
925 struct Traits: public DeviceTraits<Model, Instance, BJT::Traits>
926 {
927  static const char *name() {return "VBIC 3T et cf v1.2";}
928  static const char *deviceTypeName() {return "q level 10";}
929 
930  static int numNodes() {return 4;}
931  static int numOptionalNodes() {return 5;}
932  static bool modelRequired() {return true;}
933  static bool isLinearDevice() {return false;}
934 
935  static Device *factory(const Configuration &configuration, const FactoryBlock &factory_block);
936  static void loadModelParameters(ParametricData<Model> &model_parameters);
937  static void loadInstanceParameters(ParametricData<Instance> &instance_parameters);
938 };
939 
940 //-----------------------------------------------------------------------------
941 // Class : Instance
942 
943 //
944 // Purpose : This class represents a single instance of the
945 // device. It mainly contains indices and pointers into
946 // the matrix equation (see the resistor instance class for
947 // more details).
948 //
949 // Special Notes :
950 // Creator :
951 // Creation Date :
952 //-----------------------------------------------------------------------------
953 class Instance : public DeviceInstance
954 {
955  friend class ParametricData<Instance>;
956  friend class Model;
957  friend class InstanceSensitivity;
958  friend class ModelSensitivity;
959  friend class Traits;
960 
961 public:
962  Instance(
963  const Configuration & configuration,
964  const InstanceBlock & instance_block,
965  Model & model,
966  const FactoryBlock & factory_block);
967 
968  ~Instance();
969 
970 private:
971  Instance(const Instance &);
972  Instance &operator=(const Instance &);
973 
974 public:
975  void registerLIDs( const LocalIdVector & intLIDVecRef,
976  const LocalIdVector & extLIDVecRef );
977  void registerStateLIDs( const LocalIdVector & staLIDVecRef );
978  void setupPointers();
979 
980  void loadNodeSymbols(Util::SymbolTable &symbol_table) const;
981  std::map<int,std::string> & getIntNameMap ();
982 
983  const JacobianStamp & jacobianStamp() const;
984  void registerJacLIDs( const JacobianStamp & jacLIDVec );
985 
986  bool processParams();
987  bool updateTemperature ( const double & temp = -999.0 );
988  bool updateIntermediateVars ();
989  bool updatePrimaryState ();
990  bool updateSecondaryState ();
991 
992  // load functions, residual:
993  bool loadDAEQVector ();
994  bool loadDAEFVector ();
995 
996  // load functions, Jacobian:
997  bool loadDAEdQdx ();
998  bool loadDAEdFdx ();
999 
1000  void collapseNodes();
1001 
1002 private:
1003 
1004 public:
1005  // iterator reference to the vbic model which owns this instance.
1006  // Getters and setters
1008  {
1009  return model_;
1010  }
1011 
1012 private:
1013 
1014  Model & model_; //< Owning Model
1015  // Begin verilog Instance Variables
1016  // Instance Parameters
1017  double DTEMP;
1018  int M;
1019  // Variables of global_instance scope
1020  // end verilog Instance Variables=====
1021  // Nodal LID Variables
1022  int li_c;
1023  int li_b;
1024  int li_e;
1025  int li_dt;
1026  int li_cx;
1027  int li_ci;
1028  int li_bx;
1029  int li_bi;
1030  int li_ei;
1031  int li_bp;
1032  // end Nodal LID Variables
1033  // Branch LID Variables
1034  // end Branch LID Variables
1035  // Jacobian pointers
1156  // end of Jacobian and pointers
1157  // node numbers
1158  static const int admsNodeID_c = 0;
1159  static const int admsNodeID_b = 1;
1160  static const int admsNodeID_e = 2;
1161  static const int admsNodeID_dt = 3;
1162  static const int admsNodeID_cx = 4;
1163  static const int admsNodeID_ci = 5;
1164  static const int admsNodeID_bx = 6;
1165  static const int admsNodeID_bi = 7;
1166  static const int admsNodeID_ei = 8;
1167  static const int admsNodeID_bp = 9;
1168  // end node numbers
1169  // Additional IDs for branch equations
1170  // end branch numbers
1171  // Probe numbers
1172  static const int admsProbeID_V_ci_ei = 0;
1173  static const int admsProbeID_V_b_c = 1;
1174  static const int admsProbeID_V_bp_cx = 2;
1175  static const int admsProbeID_V_e_ei = 3;
1176  static const int admsProbeID_V_b_bx = 4;
1177  static const int admsProbeID_V_bx_bi = 5;
1178  static const int admsProbeID_V_cx_ci = 6;
1179  static const int admsProbeID_V_c_cx = 7;
1180  static const int admsProbeID_V_b_e = 8;
1181  static const int admsProbeID_V_dt_GND = 9;
1182  static const int admsProbeID_V_bx_bp = 10;
1183  static const int admsProbeID_V_bi_cx = 11;
1184  static const int admsProbeID_V_bx_ei = 12;
1185  static const int admsProbeID_V_bi_ci = 13;
1186  static const int admsProbeID_V_bi_ei = 14;
1187  // end probe numbers
1188  // State LIDs
1196  // end state LIDs
1197  // bools for collapsing nodes
1201  // Arrays to hold probes
1202  std::vector < AdmsFadType > probeVars;
1203  // Arrays to hold contributions
1204  // dynamic contributions are differentiated w.r.t time
1205  std::vector < AdmsFadType > staticContributions;
1206  std::vector < AdmsFadType > dynamicContributions;
1207 
1208  // This array stores the differences between original and limited variables.
1209  std::vector<double> probeDiffs;
1210  // These store the Jdxp's for F and Q, respectively
1211  std::vector<double> Jdxp_static;
1212  std::vector<double> Jdxp_dynamic;
1213 
1214  // this is what we'll use when any model uses $temperature. We'll
1215  // set it in updateTemperature, and initialize it to whatever
1216  // is in devOptions when the instance is constructed.
1218 
1219  // vt at $temperature;
1220  double adms_vt_nom;
1221 
1222  // This is used to flag whether the cx, bx, and ei nodes are exposed
1223  // on the instance line as external nodes.
1225 
1226 
1227  // This one is for the annoying bogus "XyceADMSInstTemp" parameter
1228  // that we need so we can set it from the device manager when there's no
1229  // "TEMP" parameter to use
1231 
1232 
1233  std::vector< std::vector<int> > jacStamp;
1234  std::vector<int> jacMap;
1235  std::vector< std::vector<int> > jacMap2;
1236 };
1237 
1238 
1239 
1240 namespace AnalogFunctions
1241 {
1242 
1243 // Analog Function limRTH
1244 template<typename ScalarT> ScalarT limRTH(ScalarT orig, ScalarT old)
1245 {
1246 
1247 
1248  ScalarT limRTH;
1249  ScalarT t0;
1250  ScalarT t1;
1251  ScalarT retval;
1252  {
1253  t0 = (orig-old);
1254  t1 = fabs(t0);
1255  retval = orig;
1256  if ((t1>5.0))
1257  {
1258  if ((t0>0))
1259  {
1260  retval = (old+5.0);
1261  }
1262  else
1263  {
1264  retval = (old-5.0);
1265  }
1266  }
1267  limRTH = retval;
1268  }
1269  return(limRTH);
1270 }
1271 
1272 }
1273 
1274 
1275 //-----------------------------------------------------------------------------
1276 // Class : Model
1277 
1278 // Purpose :
1279 // Special Notes :
1280 // Creator :
1281 // Creation Date :
1282 //-----------------------------------------------------------------------------
1283 class Model : public DeviceModel
1284 {
1285  typedef std::vector<Instance *> InstanceVector;
1286 
1287  friend class ParametricData<Model>;
1288  friend class Instance;
1289  friend class InstanceSensitivity;
1290  friend class ModelSensitivity;
1291  friend class Traits;
1292 
1293 public:
1294  Model(
1295  const Configuration & configuration,
1296  const ModelBlock & model_block,
1297  const FactoryBlock & factory_block);
1298 
1299  ~Model();
1300 
1301 private:
1302  Model(const Model &);
1303  Model &operator=(const Model &);
1304 
1305 public:
1306  virtual void forEachInstance(DeviceInstanceOp &op) const /* override */;
1307  virtual std::ostream &printOutInstances(std::ostream &os) const;
1308  bool processParams();
1309  bool processInstanceParams();
1310 
1311 private:
1312 
1313 public:
1314  void addInstance(Instance *instance)
1315  {
1316  instanceContainer.push_back(instance);
1317  }
1318 
1319 private:
1320  std::vector<Instance*> instanceContainer;
1321 
1322 private:
1323 
1324  // This one is for the annoying bogus "XyceADMSInstTemp" parameter
1325  // that we need so we can set it from the device manager when there's no
1326  // "TEMP" model parameter to use
1327  double admsModTemp;
1328  // Begin verilog Model Variables
1329  // Model Parameters
1330  double TNOM;
1331  double RCX;
1332  double RCI;
1333  double VO;
1334  double GAMM;
1335  double HRCF;
1336  double RBX;
1337  double RBI;
1338  double RE;
1339  double RS;
1340  double RBP;
1341  double IS;
1342  double NF;
1343  double NR;
1344  double FC;
1345  double CBEO;
1346  double CJE;
1347  double PE;
1348  double ME;
1349  double AJE;
1350  double CBCO;
1351  double CJC;
1352  double QCO;
1353  double CJEP;
1354  double PC;
1355  double MC;
1356  double AJC;
1357  double CJCP;
1358  double PS;
1359  double MS;
1360  double AJS;
1361  double IBEI;
1362  double WBE;
1363  double NEI;
1364  double IBEN;
1365  double NEN;
1366  double IBCI;
1367  double NCI;
1368  double IBCN;
1369  double NCN;
1370  double AVC1;
1371  double AVC2;
1372  double ISP;
1373  double WSP;
1374  double NFP;
1375  double IBEIP;
1376  double IBENP;
1377  double IBCIP;
1378  double NCIP;
1379  double IBCNP;
1380  double NCNP;
1381  double VEF;
1382  double VER;
1383  double IKF;
1384  double IKR;
1385  double IKP;
1386  double TF;
1387  double QTF;
1388  double XTF;
1389  double VTF;
1390  double ITF;
1391  double TR;
1392  double TD;
1393  double KFN;
1394  double AFN;
1395  double BFN;
1396  double XRE;
1397  double XRBI;
1398  double XRCI;
1399  double XRS;
1400  double XVO;
1401  double EA;
1402  double EAIE;
1403  double EAIC;
1404  double EAIS;
1405  double EANE;
1406  double EANC;
1407  double EANS;
1408  double XIS;
1409  double XII;
1410  double XIN;
1411  double TNF;
1412  double TAVC;
1413  double RTH;
1414  double CTH;
1415  double VRT;
1416  double ART;
1417  double CCSO;
1418  double QBM;
1419  double NKF;
1420  double XIKF;
1421  double XRCX;
1422  double XRBX;
1423  double XRBP;
1424  double ISRR;
1425  double XISR;
1426  double DEAR;
1427  double EAP;
1428  double VBBE;
1429  double NBBE;
1430  double IBBE;
1431  double TVBBE1;
1432  double TVBBE2;
1433  double TNBBE;
1434  double EBBE;
1435  double DTEMP;
1436  double VERS;
1437  double VREV;
1438  int dtype;
1439  // Variables of global_model scope
1440  // end verilog model variables=====
1441 };
1442 
1443 void registerDevice();
1444 
1445 } // namespace ADMSvbic
1446 } // namespace Device
1447 } // namespace Xyce
1448 #endif //Xyce_N_DEV_ADMSvbic_h
static T adms_vt(const T temp)
std::vector< double > Jdxp_dynamic
void registerLIDs(const LocalIdVector &intLIDVecRef, const LocalIdVector &extLIDVecRef)
std::vector< Instance * > InstanceVector
bool processParams()
processParams
static InstanceSensitivity instSens
Pure virtual class to augment a linear system.
std::map< int, std::string > & getIntNameMap()
static ModelSensitivity modSens
Instance & operator=(const Instance &)
Base class for all parameters.
Definition: N_DEV_Pars.h:169
Model & operator=(const Model &)
std::vector< AdmsFadType > staticContributions
static void loadModelParameters(ParametricData< Model > &model_parameters)
static const char * name()
virtual void forEachInstance(DeviceInstanceOp &op) const
Apply a device instance "op" to all instances associated with this model.
Instance(const Configuration &configuration, const InstanceBlock &instance_block, Model &model, const FactoryBlock &factory_block)
void addInstance(Instance *instance)
std::vector< std::vector< int > > jacMap2
double ADMSfloor(const T &x)
void evaluateInitialInstance(AdmsSensFadType &instancePar_DTEMP, bool instancePar_given_DTEMP, int instancePar_M, bool instancePar_given_M, AdmsSensFadType &modelPar_TNOM, bool modelPar_given_TNOM, AdmsSensFadType &modelPar_RCX, bool modelPar_given_RCX, AdmsSensFadType &modelPar_RCI, bool modelPar_given_RCI, AdmsSensFadType &modelPar_VO, bool modelPar_given_VO, AdmsSensFadType &modelPar_GAMM, bool modelPar_given_GAMM, AdmsSensFadType &modelPar_HRCF, bool modelPar_given_HRCF, AdmsSensFadType &modelPar_RBX, bool modelPar_given_RBX, AdmsSensFadType &modelPar_RBI, bool modelPar_given_RBI, AdmsSensFadType &modelPar_RE, bool modelPar_given_RE, AdmsSensFadType &modelPar_RS, bool modelPar_given_RS, AdmsSensFadType &modelPar_RBP, bool modelPar_given_RBP, AdmsSensFadType &modelPar_IS, bool modelPar_given_IS, AdmsSensFadType &modelPar_NF, bool modelPar_given_NF, AdmsSensFadType &modelPar_NR, bool modelPar_given_NR, AdmsSensFadType &modelPar_FC, bool modelPar_given_FC, AdmsSensFadType &modelPar_CBEO, bool modelPar_given_CBEO, AdmsSensFadType &modelPar_CJE, bool modelPar_given_CJE, AdmsSensFadType &modelPar_PE, bool modelPar_given_PE, AdmsSensFadType &modelPar_ME, bool modelPar_given_ME, AdmsSensFadType &modelPar_AJE, bool modelPar_given_AJE, AdmsSensFadType &modelPar_CBCO, bool modelPar_given_CBCO, AdmsSensFadType &modelPar_CJC, bool modelPar_given_CJC, AdmsSensFadType &modelPar_QCO, bool modelPar_given_QCO, AdmsSensFadType &modelPar_CJEP, bool modelPar_given_CJEP, AdmsSensFadType &modelPar_PC, bool modelPar_given_PC, AdmsSensFadType &modelPar_MC, bool modelPar_given_MC, AdmsSensFadType &modelPar_AJC, bool modelPar_given_AJC, AdmsSensFadType &modelPar_CJCP, bool modelPar_given_CJCP, AdmsSensFadType &modelPar_PS, bool modelPar_given_PS, AdmsSensFadType &modelPar_MS, bool modelPar_given_MS, AdmsSensFadType &modelPar_AJS, bool modelPar_given_AJS, AdmsSensFadType &modelPar_IBEI, bool modelPar_given_IBEI, AdmsSensFadType &modelPar_WBE, bool modelPar_given_WBE, AdmsSensFadType &modelPar_NEI, bool modelPar_given_NEI, AdmsSensFadType &modelPar_IBEN, bool modelPar_given_IBEN, AdmsSensFadType &modelPar_NEN, bool modelPar_given_NEN, AdmsSensFadType &modelPar_IBCI, bool modelPar_given_IBCI, AdmsSensFadType &modelPar_NCI, bool modelPar_given_NCI, AdmsSensFadType &modelPar_IBCN, bool modelPar_given_IBCN, AdmsSensFadType &modelPar_NCN, bool modelPar_given_NCN, AdmsSensFadType &modelPar_AVC1, bool modelPar_given_AVC1, AdmsSensFadType &modelPar_AVC2, bool modelPar_given_AVC2, AdmsSensFadType &modelPar_ISP, bool modelPar_given_ISP, AdmsSensFadType &modelPar_WSP, bool modelPar_given_WSP, AdmsSensFadType &modelPar_NFP, bool modelPar_given_NFP, AdmsSensFadType &modelPar_IBEIP, bool modelPar_given_IBEIP, AdmsSensFadType &modelPar_IBENP, bool modelPar_given_IBENP, AdmsSensFadType &modelPar_IBCIP, bool modelPar_given_IBCIP, AdmsSensFadType &modelPar_NCIP, bool modelPar_given_NCIP, AdmsSensFadType &modelPar_IBCNP, bool modelPar_given_IBCNP, AdmsSensFadType &modelPar_NCNP, bool modelPar_given_NCNP, AdmsSensFadType &modelPar_VEF, bool modelPar_given_VEF, AdmsSensFadType &modelPar_VER, bool modelPar_given_VER, AdmsSensFadType &modelPar_IKF, bool modelPar_given_IKF, AdmsSensFadType &modelPar_IKR, bool modelPar_given_IKR, AdmsSensFadType &modelPar_IKP, bool modelPar_given_IKP, AdmsSensFadType &modelPar_TF, bool modelPar_given_TF, AdmsSensFadType &modelPar_QTF, bool modelPar_given_QTF, AdmsSensFadType &modelPar_XTF, bool modelPar_given_XTF, AdmsSensFadType &modelPar_VTF, bool modelPar_given_VTF, AdmsSensFadType &modelPar_ITF, bool modelPar_given_ITF, AdmsSensFadType &modelPar_TR, bool modelPar_given_TR, AdmsSensFadType &modelPar_TD, bool modelPar_given_TD, AdmsSensFadType &modelPar_KFN, bool modelPar_given_KFN, AdmsSensFadType &modelPar_AFN, bool modelPar_given_AFN, AdmsSensFadType &modelPar_BFN, bool modelPar_given_BFN, AdmsSensFadType &modelPar_XRE, bool modelPar_given_XRE, AdmsSensFadType &modelPar_XRBI, bool modelPar_given_XRBI, AdmsSensFadType &modelPar_XRCI, bool modelPar_given_XRCI, AdmsSensFadType &modelPar_XRS, bool modelPar_given_XRS, AdmsSensFadType &modelPar_XVO, bool modelPar_given_XVO, AdmsSensFadType &modelPar_EA, bool modelPar_given_EA, AdmsSensFadType &modelPar_EAIE, bool modelPar_given_EAIE, AdmsSensFadType &modelPar_EAIC, bool modelPar_given_EAIC, AdmsSensFadType &modelPar_EAIS, bool modelPar_given_EAIS, AdmsSensFadType &modelPar_EANE, bool modelPar_given_EANE, AdmsSensFadType &modelPar_EANC, bool modelPar_given_EANC, AdmsSensFadType &modelPar_EANS, bool modelPar_given_EANS, AdmsSensFadType &modelPar_XIS, bool modelPar_given_XIS, AdmsSensFadType &modelPar_XII, bool modelPar_given_XII, AdmsSensFadType &modelPar_XIN, bool modelPar_given_XIN, AdmsSensFadType &modelPar_TNF, bool modelPar_given_TNF, AdmsSensFadType &modelPar_TAVC, bool modelPar_given_TAVC, AdmsSensFadType &modelPar_RTH, bool modelPar_given_RTH, AdmsSensFadType &modelPar_CTH, bool modelPar_given_CTH, AdmsSensFadType &modelPar_VRT, bool modelPar_given_VRT, AdmsSensFadType &modelPar_ART, bool modelPar_given_ART, AdmsSensFadType &modelPar_CCSO, bool modelPar_given_CCSO, AdmsSensFadType &modelPar_QBM, bool modelPar_given_QBM, AdmsSensFadType &modelPar_NKF, bool modelPar_given_NKF, AdmsSensFadType &modelPar_XIKF, bool modelPar_given_XIKF, AdmsSensFadType &modelPar_XRCX, bool modelPar_given_XRCX, AdmsSensFadType &modelPar_XRBX, bool modelPar_given_XRBX, AdmsSensFadType &modelPar_XRBP, bool modelPar_given_XRBP, AdmsSensFadType &modelPar_ISRR, bool modelPar_given_ISRR, AdmsSensFadType &modelPar_XISR, bool modelPar_given_XISR, AdmsSensFadType &modelPar_DEAR, bool modelPar_given_DEAR, AdmsSensFadType &modelPar_EAP, bool modelPar_given_EAP, AdmsSensFadType &modelPar_VBBE, bool modelPar_given_VBBE, AdmsSensFadType &modelPar_NBBE, bool modelPar_given_NBBE, AdmsSensFadType &modelPar_IBBE, bool modelPar_given_IBBE, AdmsSensFadType &modelPar_TVBBE1, bool modelPar_given_TVBBE1, AdmsSensFadType &modelPar_TVBBE2, bool modelPar_given_TVBBE2, AdmsSensFadType &modelPar_TNBBE, bool modelPar_given_TNBBE, AdmsSensFadType &modelPar_EBBE, bool modelPar_given_EBBE, AdmsSensFadType &modelPar_DTEMP, bool modelPar_given_DTEMP, AdmsSensFadType &modelPar_VERS, bool modelPar_given_VERS, AdmsSensFadType &modelPar_VREV, bool modelPar_given_VREV, int modelPar_dtype, double admsTemperature)
double ADMSceil(const T &x)
The FactoryBlock contains parameters needed by the device, instance and model creation functions...
Sacado::Fad::SFad< double, 1 > AdmsSensFadType
void registerJacLIDs(const JacobianStamp &jacLIDVec)
static void loadInstanceParameters(ParametricData< Instance > &instance_parameters)
std::vector< std::vector< int > > JacobianStamp
Definition: N_DEV_fwd.h:185
Model(const Configuration &configuration, const ModelBlock &model_block, const FactoryBlock &factory_block)
ScalarT limRTH(ScalarT orig, ScalarT old)
The Device class is an interface for device implementations.
Definition: N_DEV_Device.h:101
void loadNodeSymbols(Util::SymbolTable &symbol_table) const
Populates and returns the store name map.
IdVector LocalIdVector
Definition: N_DEV_fwd.h:187
std::vector< double > probeDiffs
Sacado::Fad::SFad< double, 15 > AdmsFadType
std::vector< AdmsFadType > probeVars
Class Configuration contains device configuration data.
bool processInstanceParams()
processInstanceParams
const JacobianStamp & jacobianStamp() const
std::vector< double > Jdxp_static
std::vector< Instance * > instanceContainer
void registerStateLIDs(const LocalIdVector &staLIDVecRef)
virtual std::ostream & printOutInstances(std::ostream &os) const
static Device * factory(const Configuration &configuration, const FactoryBlock &factory_block)
std::vector< AdmsFadType > dynamicContributions
virtual void operator()(const ParameterBase &entity, const std::string &param, std::vector< double > &dfdp, std::vector< double > &dqdp, std::vector< double > &dbdp, std::vector< int > &Findices, std::vector< int > &Qindices, std::vector< int > &Bindices) const
Compute sensitivity to a specified model parameter of all device instances of that model's outputs...
#define CONSTKoverQ
Definition: N_DEV_Const.h:58
Base sensitivity functor.
Definition: N_DEV_Pars.h:148
ModelBlock represents a .MODEL line from the netlist.
The DeviceTraits template describes the configuration of a device.
Manages parameter binding for class C.
Definition: N_DEV_Pars.h:214
InstanceBlock represent a device instance line from the netlist.
static const char * deviceTypeName()
bool updateTemperature(const double &temp=-999.0)
virtual void operator()(const ParameterBase &entity, const std::string &param, std::vector< double > &dfdp, std::vector< double > &dqdp, std::vector< double > &dbdp, std::vector< int > &Findices, std::vector< int > &Qindices, std::vector< int > &Bindices) const
Compute sensitivity of a device instance's outputs to a specified instance parameter.
std::vector< std::vector< int > > jacStamp
static Tin adms_ternary_op(const bool cond, const Tin &ifTrue, const Tin &ifFalse)
void evaluateModelEquations(std::vector< double > &probeVars, const int admsProbeID_V_ci_ei, const int admsProbeID_V_b_c, const int admsProbeID_V_bp_cx, const int admsProbeID_V_e_ei, const int admsProbeID_V_b_bx, const int admsProbeID_V_bx_bi, const int admsProbeID_V_cx_ci, const int admsProbeID_V_c_cx, const int admsProbeID_V_b_e, const int admsProbeID_V_dt_GND, const int admsProbeID_V_bx_bp, const int admsProbeID_V_bi_cx, const int admsProbeID_V_bx_ei, const int admsProbeID_V_bi_ci, const int admsProbeID_V_bi_ei, const int admsNodeID_c, const int admsNodeID_b, const int admsNodeID_e, const int admsNodeID_dt, const int admsNodeID_cx, const int admsNodeID_ci, const int admsNodeID_bx, const int admsNodeID_bi, const int admsNodeID_ei, const int admsNodeID_bp, AdmsSensFadType &instancePar_DTEMP, bool instancePar_given_DTEMP, int instancePar_M, bool instancePar_given_M, AdmsSensFadType &modelPar_TNOM, bool modelPar_given_TNOM, AdmsSensFadType &modelPar_RCX, bool modelPar_given_RCX, AdmsSensFadType &modelPar_RCI, bool modelPar_given_RCI, AdmsSensFadType &modelPar_VO, bool modelPar_given_VO, AdmsSensFadType &modelPar_GAMM, bool modelPar_given_GAMM, AdmsSensFadType &modelPar_HRCF, bool modelPar_given_HRCF, AdmsSensFadType &modelPar_RBX, bool modelPar_given_RBX, AdmsSensFadType &modelPar_RBI, bool modelPar_given_RBI, AdmsSensFadType &modelPar_RE, bool modelPar_given_RE, AdmsSensFadType &modelPar_RS, bool modelPar_given_RS, AdmsSensFadType &modelPar_RBP, bool modelPar_given_RBP, AdmsSensFadType &modelPar_IS, bool modelPar_given_IS, AdmsSensFadType &modelPar_NF, bool modelPar_given_NF, AdmsSensFadType &modelPar_NR, bool modelPar_given_NR, AdmsSensFadType &modelPar_FC, bool modelPar_given_FC, AdmsSensFadType &modelPar_CBEO, bool modelPar_given_CBEO, AdmsSensFadType &modelPar_CJE, bool modelPar_given_CJE, AdmsSensFadType &modelPar_PE, bool modelPar_given_PE, AdmsSensFadType &modelPar_ME, bool modelPar_given_ME, AdmsSensFadType &modelPar_AJE, bool modelPar_given_AJE, AdmsSensFadType &modelPar_CBCO, bool modelPar_given_CBCO, AdmsSensFadType &modelPar_CJC, bool modelPar_given_CJC, AdmsSensFadType &modelPar_QCO, bool modelPar_given_QCO, AdmsSensFadType &modelPar_CJEP, bool modelPar_given_CJEP, AdmsSensFadType &modelPar_PC, bool modelPar_given_PC, AdmsSensFadType &modelPar_MC, bool modelPar_given_MC, AdmsSensFadType &modelPar_AJC, bool modelPar_given_AJC, AdmsSensFadType &modelPar_CJCP, bool modelPar_given_CJCP, AdmsSensFadType &modelPar_PS, bool modelPar_given_PS, AdmsSensFadType &modelPar_MS, bool modelPar_given_MS, AdmsSensFadType &modelPar_AJS, bool modelPar_given_AJS, AdmsSensFadType &modelPar_IBEI, bool modelPar_given_IBEI, AdmsSensFadType &modelPar_WBE, bool modelPar_given_WBE, AdmsSensFadType &modelPar_NEI, bool modelPar_given_NEI, AdmsSensFadType &modelPar_IBEN, bool modelPar_given_IBEN, AdmsSensFadType &modelPar_NEN, bool modelPar_given_NEN, AdmsSensFadType &modelPar_IBCI, bool modelPar_given_IBCI, AdmsSensFadType &modelPar_NCI, bool modelPar_given_NCI, AdmsSensFadType &modelPar_IBCN, bool modelPar_given_IBCN, AdmsSensFadType &modelPar_NCN, bool modelPar_given_NCN, AdmsSensFadType &modelPar_AVC1, bool modelPar_given_AVC1, AdmsSensFadType &modelPar_AVC2, bool modelPar_given_AVC2, AdmsSensFadType &modelPar_ISP, bool modelPar_given_ISP, AdmsSensFadType &modelPar_WSP, bool modelPar_given_WSP, AdmsSensFadType &modelPar_NFP, bool modelPar_given_NFP, AdmsSensFadType &modelPar_IBEIP, bool modelPar_given_IBEIP, AdmsSensFadType &modelPar_IBENP, bool modelPar_given_IBENP, AdmsSensFadType &modelPar_IBCIP, bool modelPar_given_IBCIP, AdmsSensFadType &modelPar_NCIP, bool modelPar_given_NCIP, AdmsSensFadType &modelPar_IBCNP, bool modelPar_given_IBCNP, AdmsSensFadType &modelPar_NCNP, bool modelPar_given_NCNP, AdmsSensFadType &modelPar_VEF, bool modelPar_given_VEF, AdmsSensFadType &modelPar_VER, bool modelPar_given_VER, AdmsSensFadType &modelPar_IKF, bool modelPar_given_IKF, AdmsSensFadType &modelPar_IKR, bool modelPar_given_IKR, AdmsSensFadType &modelPar_IKP, bool modelPar_given_IKP, AdmsSensFadType &modelPar_TF, bool modelPar_given_TF, AdmsSensFadType &modelPar_QTF, bool modelPar_given_QTF, AdmsSensFadType &modelPar_XTF, bool modelPar_given_XTF, AdmsSensFadType &modelPar_VTF, bool modelPar_given_VTF, AdmsSensFadType &modelPar_ITF, bool modelPar_given_ITF, AdmsSensFadType &modelPar_TR, bool modelPar_given_TR, AdmsSensFadType &modelPar_TD, bool modelPar_given_TD, AdmsSensFadType &modelPar_KFN, bool modelPar_given_KFN, AdmsSensFadType &modelPar_AFN, bool modelPar_given_AFN, AdmsSensFadType &modelPar_BFN, bool modelPar_given_BFN, AdmsSensFadType &modelPar_XRE, bool modelPar_given_XRE, AdmsSensFadType &modelPar_XRBI, bool modelPar_given_XRBI, AdmsSensFadType &modelPar_XRCI, bool modelPar_given_XRCI, AdmsSensFadType &modelPar_XRS, bool modelPar_given_XRS, AdmsSensFadType &modelPar_XVO, bool modelPar_given_XVO, AdmsSensFadType &modelPar_EA, bool modelPar_given_EA, AdmsSensFadType &modelPar_EAIE, bool modelPar_given_EAIE, AdmsSensFadType &modelPar_EAIC, bool modelPar_given_EAIC, AdmsSensFadType &modelPar_EAIS, bool modelPar_given_EAIS, AdmsSensFadType &modelPar_EANE, bool modelPar_given_EANE, AdmsSensFadType &modelPar_EANC, bool modelPar_given_EANC, AdmsSensFadType &modelPar_EANS, bool modelPar_given_EANS, AdmsSensFadType &modelPar_XIS, bool modelPar_given_XIS, AdmsSensFadType &modelPar_XII, bool modelPar_given_XII, AdmsSensFadType &modelPar_XIN, bool modelPar_given_XIN, AdmsSensFadType &modelPar_TNF, bool modelPar_given_TNF, AdmsSensFadType &modelPar_TAVC, bool modelPar_given_TAVC, AdmsSensFadType &modelPar_RTH, bool modelPar_given_RTH, AdmsSensFadType &modelPar_CTH, bool modelPar_given_CTH, AdmsSensFadType &modelPar_VRT, bool modelPar_given_VRT, AdmsSensFadType &modelPar_ART, bool modelPar_given_ART, AdmsSensFadType &modelPar_CCSO, bool modelPar_given_CCSO, AdmsSensFadType &modelPar_QBM, bool modelPar_given_QBM, AdmsSensFadType &modelPar_NKF, bool modelPar_given_NKF, AdmsSensFadType &modelPar_XIKF, bool modelPar_given_XIKF, AdmsSensFadType &modelPar_XRCX, bool modelPar_given_XRCX, AdmsSensFadType &modelPar_XRBX, bool modelPar_given_XRBX, AdmsSensFadType &modelPar_XRBP, bool modelPar_given_XRBP, AdmsSensFadType &modelPar_ISRR, bool modelPar_given_ISRR, AdmsSensFadType &modelPar_XISR, bool modelPar_given_XISR, AdmsSensFadType &modelPar_DEAR, bool modelPar_given_DEAR, AdmsSensFadType &modelPar_EAP, bool modelPar_given_EAP, AdmsSensFadType &modelPar_VBBE, bool modelPar_given_VBBE, AdmsSensFadType &modelPar_NBBE, bool modelPar_given_NBBE, AdmsSensFadType &modelPar_IBBE, bool modelPar_given_IBBE, AdmsSensFadType &modelPar_TVBBE1, bool modelPar_given_TVBBE1, AdmsSensFadType &modelPar_TVBBE2, bool modelPar_given_TVBBE2, AdmsSensFadType &modelPar_TNBBE, bool modelPar_given_TNBBE, AdmsSensFadType &modelPar_EBBE, bool modelPar_given_EBBE, AdmsSensFadType &modelPar_DTEMP, bool modelPar_given_DTEMP, AdmsSensFadType &modelPar_VERS, bool modelPar_given_VERS, AdmsSensFadType &modelPar_VREV, bool modelPar_given_VREV, int modelPar_dtype, double admsTemperature, double adms_vt_nom, double gmin, std::vector< AdmsSensFadType > &staticContributions, std::vector< AdmsSensFadType > &dynamicContributions, const Instance &theInstance)
void evaluateInitialModel(AdmsSensFadType &modelPar_TNOM, bool modelPar_given_TNOM, AdmsSensFadType &modelPar_RCX, bool modelPar_given_RCX, AdmsSensFadType &modelPar_RCI, bool modelPar_given_RCI, AdmsSensFadType &modelPar_VO, bool modelPar_given_VO, AdmsSensFadType &modelPar_GAMM, bool modelPar_given_GAMM, AdmsSensFadType &modelPar_HRCF, bool modelPar_given_HRCF, AdmsSensFadType &modelPar_RBX, bool modelPar_given_RBX, AdmsSensFadType &modelPar_RBI, bool modelPar_given_RBI, AdmsSensFadType &modelPar_RE, bool modelPar_given_RE, AdmsSensFadType &modelPar_RS, bool modelPar_given_RS, AdmsSensFadType &modelPar_RBP, bool modelPar_given_RBP, AdmsSensFadType &modelPar_IS, bool modelPar_given_IS, AdmsSensFadType &modelPar_NF, bool modelPar_given_NF, AdmsSensFadType &modelPar_NR, bool modelPar_given_NR, AdmsSensFadType &modelPar_FC, bool modelPar_given_FC, AdmsSensFadType &modelPar_CBEO, bool modelPar_given_CBEO, AdmsSensFadType &modelPar_CJE, bool modelPar_given_CJE, AdmsSensFadType &modelPar_PE, bool modelPar_given_PE, AdmsSensFadType &modelPar_ME, bool modelPar_given_ME, AdmsSensFadType &modelPar_AJE, bool modelPar_given_AJE, AdmsSensFadType &modelPar_CBCO, bool modelPar_given_CBCO, AdmsSensFadType &modelPar_CJC, bool modelPar_given_CJC, AdmsSensFadType &modelPar_QCO, bool modelPar_given_QCO, AdmsSensFadType &modelPar_CJEP, bool modelPar_given_CJEP, AdmsSensFadType &modelPar_PC, bool modelPar_given_PC, AdmsSensFadType &modelPar_MC, bool modelPar_given_MC, AdmsSensFadType &modelPar_AJC, bool modelPar_given_AJC, AdmsSensFadType &modelPar_CJCP, bool modelPar_given_CJCP, AdmsSensFadType &modelPar_PS, bool modelPar_given_PS, AdmsSensFadType &modelPar_MS, bool modelPar_given_MS, AdmsSensFadType &modelPar_AJS, bool modelPar_given_AJS, AdmsSensFadType &modelPar_IBEI, bool modelPar_given_IBEI, AdmsSensFadType &modelPar_WBE, bool modelPar_given_WBE, AdmsSensFadType &modelPar_NEI, bool modelPar_given_NEI, AdmsSensFadType &modelPar_IBEN, bool modelPar_given_IBEN, AdmsSensFadType &modelPar_NEN, bool modelPar_given_NEN, AdmsSensFadType &modelPar_IBCI, bool modelPar_given_IBCI, AdmsSensFadType &modelPar_NCI, bool modelPar_given_NCI, AdmsSensFadType &modelPar_IBCN, bool modelPar_given_IBCN, AdmsSensFadType &modelPar_NCN, bool modelPar_given_NCN, AdmsSensFadType &modelPar_AVC1, bool modelPar_given_AVC1, AdmsSensFadType &modelPar_AVC2, bool modelPar_given_AVC2, AdmsSensFadType &modelPar_ISP, bool modelPar_given_ISP, AdmsSensFadType &modelPar_WSP, bool modelPar_given_WSP, AdmsSensFadType &modelPar_NFP, bool modelPar_given_NFP, AdmsSensFadType &modelPar_IBEIP, bool modelPar_given_IBEIP, AdmsSensFadType &modelPar_IBENP, bool modelPar_given_IBENP, AdmsSensFadType &modelPar_IBCIP, bool modelPar_given_IBCIP, AdmsSensFadType &modelPar_NCIP, bool modelPar_given_NCIP, AdmsSensFadType &modelPar_IBCNP, bool modelPar_given_IBCNP, AdmsSensFadType &modelPar_NCNP, bool modelPar_given_NCNP, AdmsSensFadType &modelPar_VEF, bool modelPar_given_VEF, AdmsSensFadType &modelPar_VER, bool modelPar_given_VER, AdmsSensFadType &modelPar_IKF, bool modelPar_given_IKF, AdmsSensFadType &modelPar_IKR, bool modelPar_given_IKR, AdmsSensFadType &modelPar_IKP, bool modelPar_given_IKP, AdmsSensFadType &modelPar_TF, bool modelPar_given_TF, AdmsSensFadType &modelPar_QTF, bool modelPar_given_QTF, AdmsSensFadType &modelPar_XTF, bool modelPar_given_XTF, AdmsSensFadType &modelPar_VTF, bool modelPar_given_VTF, AdmsSensFadType &modelPar_ITF, bool modelPar_given_ITF, AdmsSensFadType &modelPar_TR, bool modelPar_given_TR, AdmsSensFadType &modelPar_TD, bool modelPar_given_TD, AdmsSensFadType &modelPar_KFN, bool modelPar_given_KFN, AdmsSensFadType &modelPar_AFN, bool modelPar_given_AFN, AdmsSensFadType &modelPar_BFN, bool modelPar_given_BFN, AdmsSensFadType &modelPar_XRE, bool modelPar_given_XRE, AdmsSensFadType &modelPar_XRBI, bool modelPar_given_XRBI, AdmsSensFadType &modelPar_XRCI, bool modelPar_given_XRCI, AdmsSensFadType &modelPar_XRS, bool modelPar_given_XRS, AdmsSensFadType &modelPar_XVO, bool modelPar_given_XVO, AdmsSensFadType &modelPar_EA, bool modelPar_given_EA, AdmsSensFadType &modelPar_EAIE, bool modelPar_given_EAIE, AdmsSensFadType &modelPar_EAIC, bool modelPar_given_EAIC, AdmsSensFadType &modelPar_EAIS, bool modelPar_given_EAIS, AdmsSensFadType &modelPar_EANE, bool modelPar_given_EANE, AdmsSensFadType &modelPar_EANC, bool modelPar_given_EANC, AdmsSensFadType &modelPar_EANS, bool modelPar_given_EANS, AdmsSensFadType &modelPar_XIS, bool modelPar_given_XIS, AdmsSensFadType &modelPar_XII, bool modelPar_given_XII, AdmsSensFadType &modelPar_XIN, bool modelPar_given_XIN, AdmsSensFadType &modelPar_TNF, bool modelPar_given_TNF, AdmsSensFadType &modelPar_TAVC, bool modelPar_given_TAVC, AdmsSensFadType &modelPar_RTH, bool modelPar_given_RTH, AdmsSensFadType &modelPar_CTH, bool modelPar_given_CTH, AdmsSensFadType &modelPar_VRT, bool modelPar_given_VRT, AdmsSensFadType &modelPar_ART, bool modelPar_given_ART, AdmsSensFadType &modelPar_CCSO, bool modelPar_given_CCSO, AdmsSensFadType &modelPar_QBM, bool modelPar_given_QBM, AdmsSensFadType &modelPar_NKF, bool modelPar_given_NKF, AdmsSensFadType &modelPar_XIKF, bool modelPar_given_XIKF, AdmsSensFadType &modelPar_XRCX, bool modelPar_given_XRCX, AdmsSensFadType &modelPar_XRBX, bool modelPar_given_XRBX, AdmsSensFadType &modelPar_XRBP, bool modelPar_given_XRBP, AdmsSensFadType &modelPar_ISRR, bool modelPar_given_ISRR, AdmsSensFadType &modelPar_XISR, bool modelPar_given_XISR, AdmsSensFadType &modelPar_DEAR, bool modelPar_given_DEAR, AdmsSensFadType &modelPar_EAP, bool modelPar_given_EAP, AdmsSensFadType &modelPar_VBBE, bool modelPar_given_VBBE, AdmsSensFadType &modelPar_NBBE, bool modelPar_given_NBBE, AdmsSensFadType &modelPar_IBBE, bool modelPar_given_IBBE, AdmsSensFadType &modelPar_TVBBE1, bool modelPar_given_TVBBE1, AdmsSensFadType &modelPar_TVBBE2, bool modelPar_given_TVBBE2, AdmsSensFadType &modelPar_TNBBE, bool modelPar_given_TNBBE, AdmsSensFadType &modelPar_EBBE, bool modelPar_given_EBBE, AdmsSensFadType &modelPar_DTEMP, bool modelPar_given_DTEMP, AdmsSensFadType &modelPar_VERS, bool modelPar_given_VERS, AdmsSensFadType &modelPar_VREV, bool modelPar_given_VREV, int modelPar_dtype, double admsTemperature)