Xyce  6.1
N_DEV_ADMSvbic13_4t.C
Go to the documentation of this file.
1 
2 //-----------------------------------------------------------------------------
3 // Copyright Notice
4 //
5 // Copyright 2002 Sandia Corporation. Under the terms
6 // of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S.
7 // Government retains certain rights in this software.
8 //
9 // Xyce(TM) Parallel Electrical Simulator
10 // Copyright (C) 2002-2015 Sandia Corporation
11 //
12 // This program is free software: you can redistribute it and/or modify
13 // it under the terms of the GNU General Public License as published by
14 // the Free Software Foundation, either version 3 of the License, or
15 // (at your option) any later version.
16 //
17 // This program is distributed in the hope that it will be useful,
18 // but WITHOUT ANY WARRANTY; without even the implied warranty of
19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 // GNU General Public License for more details.
21 //
22 // You should have received a copy of the GNU General Public License
23 // along with this program. If not, see <http://www.gnu.org/licenses/>.
24 //-----------------------------------------------------------------------------
25 
26 //-------------------------------------------------------------------------
27 // Filename : $RCSfile: N_DEV_ADMSvbic13_4t.C,v $
28 //
29 // Purpose :
30 //
31 // Special Notes : Generated from verilog file vbic_1p3.va with ADMS
32 // interface for Xyce 6.4.0
33 // DO NOT EDIT THIS FILE DIRECTLY! It may be overwritten!
34 //
35 // Creator : admsXml-2.3.4
36 //
37 // Creation Date : Wed, 04 Nov 2015 13:22:54
38 //
39 // Revision Information:
40 // ---------------------
41 //
42 // Revision Number: $Revision: 1.5 $
43 //
44 // Revision Date : $Date: 2015/11/04 21:33:47 $
45 //
46 // Current Owner : $Author: tvrusso $
47 //-------------------------------------------------------------------------
48 
49 #include <Xyce_config.h>
50 #include <N_DEV_ADMSvbic13_4t.h>
51 
52 
53 #include <N_DEV_Const.h>
54 #include <N_DEV_DeviceOptions.h>
55 #include <N_DEV_DeviceMaster.h>
56 #include <N_DEV_ExternData.h>
57 #include <N_DEV_MatrixLoadData.h>
58 #include <N_DEV_SolverState.h>
59 #include <N_DEV_Message.h>
60 
61 #include <N_LAS_Matrix.h>
62 #include <N_LAS_Vector.h>
63 
64 #include <N_UTL_FeatureTest.h>
65 #if defined(HAVE_UNORDERED_MAP)
66 #include <unordered_map>
67 using std::unordered_map;
68 #elif defined(HAVE_TR1_UNORDERED_MAP)
69 #include <tr1/unordered_map>
70 using std::tr1::unordered_map;
71 #else
72 #error neither unordered_map or tr1/unordered_map found
73 #endif
74 
75 namespace Xyce {
76 namespace Device {
77 namespace ADMSvbic13_4t {
78 std::vector< std::vector<int> > Instance::jacStamp;
79 std::vector<int> Instance::jacMap;
80 std::vector< std::vector<int> > Instance::jacMap2;
81 
82 
83 void
85 {
86  // Set up each parameter directly, using the up-cased variable name
87  // as the tag.
88 
89  // This kludge is to force us always to have an instance parameter
90  // that the device manager can set to the temperature, even if we have
91  // no "TEMP".
92  p.addPar("XYCEADMSINSTTEMP", 0.0, &ADMSvbic13_4t::Instance::admsInstTemp)
93  .setExpressionAccess(NO_DOC)
94  .setUnit(U_DEGK)
95  .setCategory(CAT_TEMP)
96  .setDescription("Internal-use parameter for setting device instance temperature");
97  p.addPar("M", static_cast<double>(1.0), &ADMSvbic13_4t::Instance::m)
98  .setUnit(U_UNKNOWN)
99  .setDescription("multiplicity factor")
100 #ifdef Xyce_ADMS_SENSITIVITIES
101  .setAnalyticSensitivityAvailable(true)
102  .setSensitivityFunctor(&instSens)
103 #endif // Xyce_ADMS_SENSITIVITIES
104  ;
105  p.addPar("TRISE", static_cast<double>(0.0), &ADMSvbic13_4t::Instance::trise)
106  .setUnit(U_DEGC)
107  .setDescription("local temperature delta to ambient (before self-heating)")
108 #ifdef Xyce_ADMS_SENSITIVITIES
109  .setAnalyticSensitivityAvailable(true)
110  .setSensitivityFunctor(&instSens)
111 #endif // Xyce_ADMS_SENSITIVITIES
112  ;
113  p.addPar("DTA", static_cast<double>(0.0), &ADMSvbic13_4t::Instance::trise)
114  .setUnit(U_DEGC)
115  .setDescription(" Alias for trise")
116 #ifdef Xyce_ADMS_SENSITIVITIES
117  .setAnalyticSensitivityAvailable(true)
118  .setSensitivityFunctor(&instSens)
119 #endif // Xyce_ADMS_SENSITIVITIES
120  ;
121  p.addPar("DTEMP", static_cast<double>(0.0), &ADMSvbic13_4t::Instance::trise)
122  .setUnit(U_DEGC)
123  .setDescription(" Alias for trise")
124 #ifdef Xyce_ADMS_SENSITIVITIES
125  .setAnalyticSensitivityAvailable(true)
126  .setSensitivityFunctor(&instSens)
127 #endif // Xyce_ADMS_SENSITIVITIES
128  ;
129  p.addPar("SW_NOISE", static_cast<int>(1), &ADMSvbic13_4t::Instance::sw_noise)
130  .setUnit(U_UNKNOWN)
131  .setDescription("switch for including noise: 0=no and 1=yes");
132  p.addPar("SW_ET", static_cast<int>(1), &ADMSvbic13_4t::Instance::sw_et)
133  .setUnit(U_UNKNOWN)
134  .setDescription("switch for self-heating: 0=no and 1=yes");
135 
136 
137 }
138 
140 {
141  // Set up each parameter directly, using the up-cased variable name
142  // as the tag.
143 
144  // This kludge is to force us always to have a model parameter
145  // that the device manager can set to the temperature, even if we have
146  // no "TEMP".
147  p.addPar("XYCEADMSMODTEMP", 0.0, &ADMSvbic13_4t::Model::admsModTemp)
148  .setExpressionAccess(NO_DOC)
149  .setUnit(U_DEGK)
150  .setCategory(CAT_TEMP)
151  .setDescription("Internal-use parameter for setting device model temperature");
152  p.addPar("NPN", static_cast<double>(0.0), &ADMSvbic13_4t::Model::npn)
153  .setUnit(U_UNKNOWN)
154  .setDescription("npn transistor type")
155 #ifdef Xyce_ADMS_SENSITIVITIES
156  .setAnalyticSensitivityAvailable(true)
157  .setSensitivityFunctor(&modSens)
158 #endif // Xyce_ADMS_SENSITIVITIES
159  ;
160  p.addPar("PNP", static_cast<double>(0.0), &ADMSvbic13_4t::Model::pnp)
161  .setUnit(U_UNKNOWN)
162  .setDescription("pnp transistor type")
163 #ifdef Xyce_ADMS_SENSITIVITIES
164  .setAnalyticSensitivityAvailable(true)
165  .setSensitivityFunctor(&modSens)
166 #endif // Xyce_ADMS_SENSITIVITIES
167  ;
168  p.addPar("TYPE", static_cast<int>((-1)), &ADMSvbic13_4t::Model::type)
169  .setUnit(U_UNKNOWN)
170  .setDescription("transistor type: -1=npn and +1=pnp (overriden by npn or pnp)");
171  //Hidden parameter VBICtype
172  p.addPar("SCALE", static_cast<double>(1.0), &ADMSvbic13_4t::Model::scale)
173  .setUnit(U_UNKNOWN)
174  .setDescription("scale factor for instance geometries")
175 #ifdef Xyce_ADMS_SENSITIVITIES
176  .setAnalyticSensitivityAvailable(true)
177  .setSensitivityFunctor(&modSens)
178 #endif // Xyce_ADMS_SENSITIVITIES
179  ;
180  p.addPar("SHRINK", static_cast<double>(0.0), &ADMSvbic13_4t::Model::shrink)
181  .setUnit(U_UNKNOWN)
182  .setDescription("shrink percentage for instance geometries")
183 #ifdef Xyce_ADMS_SENSITIVITIES
184  .setAnalyticSensitivityAvailable(true)
185  .setSensitivityFunctor(&modSens)
186 #endif // Xyce_ADMS_SENSITIVITIES
187  ;
188  p.addPar("TMIN", static_cast<double>((-100.0)), &ADMSvbic13_4t::Model::tmin)
189  .setUnit(U_DEGC)
190  .setDescription("minimum ambient temperature")
191 #ifdef Xyce_ADMS_SENSITIVITIES
192  .setAnalyticSensitivityAvailable(true)
193  .setSensitivityFunctor(&modSens)
194 #endif // Xyce_ADMS_SENSITIVITIES
195  ;
196  p.addPar("TMAX", static_cast<double>(500.0), &ADMSvbic13_4t::Model::tmax)
197  .setUnit(U_DEGC)
198  .setDescription("maximum ambient temperature")
199 #ifdef Xyce_ADMS_SENSITIVITIES
200  .setAnalyticSensitivityAvailable(true)
201  .setSensitivityFunctor(&modSens)
202 #endif // Xyce_ADMS_SENSITIVITIES
203  ;
204  p.addPar("GMIN", static_cast<double>(1.0e-12), &ADMSvbic13_4t::Model::gmin)
205  .setUnit(U_OHMM1)
206  .setDescription("minimum conductance")
207 #ifdef Xyce_ADMS_SENSITIVITIES
208  .setAnalyticSensitivityAvailable(true)
209  .setSensitivityFunctor(&modSens)
210 #endif // Xyce_ADMS_SENSITIVITIES
211  ;
212  p.addPar("PNJMAXI", static_cast<double>(1.0), &ADMSvbic13_4t::Model::pnjmaxi)
213  .setUnit(U_AMP)
214  .setDescription("current at which to linearize diode currents")
215 #ifdef Xyce_ADMS_SENSITIVITIES
216  .setAnalyticSensitivityAvailable(true)
217  .setSensitivityFunctor(&modSens)
218 #endif // Xyce_ADMS_SENSITIVITIES
219  ;
220  p.addPar("MAXEXP", static_cast<double>(1.0e22), &ADMSvbic13_4t::Model::maxexp)
221  .setUnit(U_UNKNOWN)
222  .setDescription("argument at which to linearize general exponentials")
223 #ifdef Xyce_ADMS_SENSITIVITIES
224  .setAnalyticSensitivityAvailable(true)
225  .setSensitivityFunctor(&modSens)
226 #endif // Xyce_ADMS_SENSITIVITIES
227  ;
228  p.addPar("TNOM", static_cast<double>(27.0), &ADMSvbic13_4t::Model::tnom)
229  .setUnit(U_DEGC)
230  .setDescription("nominal (reference) temperature")
231 #ifdef Xyce_ADMS_SENSITIVITIES
232  .setAnalyticSensitivityAvailable(true)
233  .setSensitivityFunctor(&modSens)
234 #endif // Xyce_ADMS_SENSITIVITIES
235  ;
236  p.addPar("TMINCLIP", static_cast<double>((-100.0)), &ADMSvbic13_4t::Model::tminclip)
237  .setUnit(U_DEGC)
238  .setDescription("clip minimum temperature")
239 #ifdef Xyce_ADMS_SENSITIVITIES
240  .setAnalyticSensitivityAvailable(true)
241  .setSensitivityFunctor(&modSens)
242 #endif // Xyce_ADMS_SENSITIVITIES
243  ;
244  p.addPar("TMAXCLIP", static_cast<double>(500.0), &ADMSvbic13_4t::Model::tmaxclip)
245  .setUnit(U_DEGC)
246  .setDescription("clip maximum temperature")
247 #ifdef Xyce_ADMS_SENSITIVITIES
248  .setAnalyticSensitivityAvailable(true)
249  .setSensitivityFunctor(&modSens)
250 #endif // Xyce_ADMS_SENSITIVITIES
251  ;
252  p.addPar("RCX", static_cast<double>(0.0), &ADMSvbic13_4t::Model::rcx)
253  .setUnit(U_OHM)
254  .setDescription("extrinsic collector resistance")
255 #ifdef Xyce_ADMS_SENSITIVITIES
256  .setAnalyticSensitivityAvailable(true)
257  .setSensitivityFunctor(&modSens)
258 #endif // Xyce_ADMS_SENSITIVITIES
259  ;
260  p.addPar("RCI", static_cast<double>(0.0), &ADMSvbic13_4t::Model::rci)
261  .setUnit(U_OHM)
262  .setDescription("intrinsic collector resistance")
263 #ifdef Xyce_ADMS_SENSITIVITIES
264  .setAnalyticSensitivityAvailable(true)
265  .setSensitivityFunctor(&modSens)
266 #endif // Xyce_ADMS_SENSITIVITIES
267  ;
268  p.addPar("VO", static_cast<double>(0.0), &ADMSvbic13_4t::Model::vo)
269  .setUnit(U_VOLT)
270  .setDescription("epi drift saturation voltage")
271 #ifdef Xyce_ADMS_SENSITIVITIES
272  .setAnalyticSensitivityAvailable(true)
273  .setSensitivityFunctor(&modSens)
274 #endif // Xyce_ADMS_SENSITIVITIES
275  ;
276  p.addPar("GAMM", static_cast<double>(0.0), &ADMSvbic13_4t::Model::gamm)
277  .setUnit(U_UNKNOWN)
278  .setDescription("epi doping parameter")
279 #ifdef Xyce_ADMS_SENSITIVITIES
280  .setAnalyticSensitivityAvailable(true)
281  .setSensitivityFunctor(&modSens)
282 #endif // Xyce_ADMS_SENSITIVITIES
283  ;
284  p.addPar("HRCF", static_cast<double>(0.0), &ADMSvbic13_4t::Model::hrcf)
285  .setUnit(U_UNKNOWN)
286  .setDescription("high current collector resistance factor")
287 #ifdef Xyce_ADMS_SENSITIVITIES
288  .setAnalyticSensitivityAvailable(true)
289  .setSensitivityFunctor(&modSens)
290 #endif // Xyce_ADMS_SENSITIVITIES
291  ;
292  p.addPar("RBX", static_cast<double>(0.0), &ADMSvbic13_4t::Model::rbx)
293  .setUnit(U_OHM)
294  .setDescription("extrinsic base resistance")
295 #ifdef Xyce_ADMS_SENSITIVITIES
296  .setAnalyticSensitivityAvailable(true)
297  .setSensitivityFunctor(&modSens)
298 #endif // Xyce_ADMS_SENSITIVITIES
299  ;
300  p.addPar("RBI", static_cast<double>(0.0), &ADMSvbic13_4t::Model::rbi)
301  .setUnit(U_OHM)
302  .setDescription("intrinsic base resistance")
303 #ifdef Xyce_ADMS_SENSITIVITIES
304  .setAnalyticSensitivityAvailable(true)
305  .setSensitivityFunctor(&modSens)
306 #endif // Xyce_ADMS_SENSITIVITIES
307  ;
308  p.addPar("RE", static_cast<double>(0.0), &ADMSvbic13_4t::Model::re)
309  .setUnit(U_OHM)
310  .setDescription("extrinsic emitter resistance")
311 #ifdef Xyce_ADMS_SENSITIVITIES
312  .setAnalyticSensitivityAvailable(true)
313  .setSensitivityFunctor(&modSens)
314 #endif // Xyce_ADMS_SENSITIVITIES
315  ;
316  p.addPar("RS", static_cast<double>(0.0), &ADMSvbic13_4t::Model::rs)
317  .setUnit(U_OHM)
318  .setDescription("extrinsic substrate resistance")
319 #ifdef Xyce_ADMS_SENSITIVITIES
320  .setAnalyticSensitivityAvailable(true)
321  .setSensitivityFunctor(&modSens)
322 #endif // Xyce_ADMS_SENSITIVITIES
323  ;
324  p.addPar("RBP", static_cast<double>(0.0), &ADMSvbic13_4t::Model::rbp)
325  .setUnit(U_OHM)
326  .setDescription("parasitic transistor base resistance")
327 #ifdef Xyce_ADMS_SENSITIVITIES
328  .setAnalyticSensitivityAvailable(true)
329  .setSensitivityFunctor(&modSens)
330 #endif // Xyce_ADMS_SENSITIVITIES
331  ;
332  p.addPar("IS", static_cast<double>(1.0e-16), &ADMSvbic13_4t::Model::is)
333  .setUnit(U_AMP)
334  .setDescription("transport saturation current")
335 #ifdef Xyce_ADMS_SENSITIVITIES
336  .setAnalyticSensitivityAvailable(true)
337  .setSensitivityFunctor(&modSens)
338 #endif // Xyce_ADMS_SENSITIVITIES
339  ;
340  p.addPar("ISRR", static_cast<double>(1.0), &ADMSvbic13_4t::Model::isrr)
341  .setUnit(U_UNKNOWN)
342  .setDescription("ratio of is(reverse) to is(forward)")
343 #ifdef Xyce_ADMS_SENSITIVITIES
344  .setAnalyticSensitivityAvailable(true)
345  .setSensitivityFunctor(&modSens)
346 #endif // Xyce_ADMS_SENSITIVITIES
347  ;
348  p.addPar("NF", static_cast<double>(1.0), &ADMSvbic13_4t::Model::nf)
349  .setUnit(U_UNKNOWN)
350  .setDescription("fwd emission coefficient (ideality factor)")
351 #ifdef Xyce_ADMS_SENSITIVITIES
352  .setAnalyticSensitivityAvailable(true)
353  .setSensitivityFunctor(&modSens)
354 #endif // Xyce_ADMS_SENSITIVITIES
355  ;
356  p.addPar("NR", static_cast<double>(1.0), &ADMSvbic13_4t::Model::nr)
357  .setUnit(U_UNKNOWN)
358  .setDescription("rev emission coefficient (ideality factor)")
359 #ifdef Xyce_ADMS_SENSITIVITIES
360  .setAnalyticSensitivityAvailable(true)
361  .setSensitivityFunctor(&modSens)
362 #endif // Xyce_ADMS_SENSITIVITIES
363  ;
364  p.addPar("QBM", static_cast<int>(0), &ADMSvbic13_4t::Model::qbm)
365  .setUnit(U_UNKNOWN)
366  .setDescription("base charge model selection switch: 0=GP and 1=SGP");
367  p.addPar("ISP", static_cast<double>(0.0), &ADMSvbic13_4t::Model::isp)
368  .setUnit(U_AMP)
369  .setDescription("parasitic transport saturation current")
370 #ifdef Xyce_ADMS_SENSITIVITIES
371  .setAnalyticSensitivityAvailable(true)
372  .setSensitivityFunctor(&modSens)
373 #endif // Xyce_ADMS_SENSITIVITIES
374  ;
375  p.addPar("WSP", static_cast<double>(1.0), &ADMSvbic13_4t::Model::wsp)
376  .setUnit(U_UNKNOWN)
377  .setDescription("partitioning of Iccp between Vbep and Vbci")
378 #ifdef Xyce_ADMS_SENSITIVITIES
379  .setAnalyticSensitivityAvailable(true)
380  .setSensitivityFunctor(&modSens)
381 #endif // Xyce_ADMS_SENSITIVITIES
382  ;
383  p.addPar("NFP", static_cast<double>(1.0), &ADMSvbic13_4t::Model::nfp)
384  .setUnit(U_UNKNOWN)
385  .setDescription("parasitic emission coeff (ideality factor)")
386 #ifdef Xyce_ADMS_SENSITIVITIES
387  .setAnalyticSensitivityAvailable(true)
388  .setSensitivityFunctor(&modSens)
389 #endif // Xyce_ADMS_SENSITIVITIES
390  ;
391  p.addPar("FC", static_cast<double>(0.9), &ADMSvbic13_4t::Model::fc)
392  .setUnit(U_UNKNOWN)
393  .setDescription("forward bias depletion capacitance limit")
394 #ifdef Xyce_ADMS_SENSITIVITIES
395  .setAnalyticSensitivityAvailable(true)
396  .setSensitivityFunctor(&modSens)
397 #endif // Xyce_ADMS_SENSITIVITIES
398  ;
399  p.addPar("CBEO", static_cast<double>(0.0), &ADMSvbic13_4t::Model::cbeo)
400  .setUnit(U_FARAD)
401  .setDescription("extrinsic b-e overlap capacitance")
402 #ifdef Xyce_ADMS_SENSITIVITIES
403  .setAnalyticSensitivityAvailable(true)
404  .setSensitivityFunctor(&modSens)
405 #endif // Xyce_ADMS_SENSITIVITIES
406  ;
407  p.addPar("CJE", static_cast<double>(0.0), &ADMSvbic13_4t::Model::cje)
408  .setUnit(U_FARAD)
409  .setDescription("zero-bias b-e depletion capacitance")
410 #ifdef Xyce_ADMS_SENSITIVITIES
411  .setAnalyticSensitivityAvailable(true)
412  .setSensitivityFunctor(&modSens)
413 #endif // Xyce_ADMS_SENSITIVITIES
414  ;
415  p.addPar("PE", static_cast<double>(0.75), &ADMSvbic13_4t::Model::pe)
416  .setUnit(U_VOLT)
417  .setDescription("b-e built-in potential")
418 #ifdef Xyce_ADMS_SENSITIVITIES
419  .setAnalyticSensitivityAvailable(true)
420  .setSensitivityFunctor(&modSens)
421 #endif // Xyce_ADMS_SENSITIVITIES
422  ;
423  p.addPar("ME", static_cast<double>(0.33), &ADMSvbic13_4t::Model::me)
424  .setUnit(U_UNKNOWN)
425  .setDescription("b-e grading coefficient")
426 #ifdef Xyce_ADMS_SENSITIVITIES
427  .setAnalyticSensitivityAvailable(true)
428  .setSensitivityFunctor(&modSens)
429 #endif // Xyce_ADMS_SENSITIVITIES
430  ;
431  p.addPar("AJE", static_cast<double>((-0.5)), &ADMSvbic13_4t::Model::aje)
432  .setUnit(U_UNKNOWN)
433  .setDescription("b-e capacitance smoothing factor")
434 #ifdef Xyce_ADMS_SENSITIVITIES
435  .setAnalyticSensitivityAvailable(true)
436  .setSensitivityFunctor(&modSens)
437 #endif // Xyce_ADMS_SENSITIVITIES
438  ;
439  p.addPar("CBCO", static_cast<double>(0.0), &ADMSvbic13_4t::Model::cbco)
440  .setUnit(U_FARAD)
441  .setDescription("extrinsic b-c overlap capacitance")
442 #ifdef Xyce_ADMS_SENSITIVITIES
443  .setAnalyticSensitivityAvailable(true)
444  .setSensitivityFunctor(&modSens)
445 #endif // Xyce_ADMS_SENSITIVITIES
446  ;
447  p.addPar("CJC", static_cast<double>(0.0), &ADMSvbic13_4t::Model::cjc)
448  .setUnit(U_FARAD)
449  .setDescription("zero-bias b-c depletion capacitance")
450 #ifdef Xyce_ADMS_SENSITIVITIES
451  .setAnalyticSensitivityAvailable(true)
452  .setSensitivityFunctor(&modSens)
453 #endif // Xyce_ADMS_SENSITIVITIES
454  ;
455  p.addPar("PC", static_cast<double>(0.75), &ADMSvbic13_4t::Model::pc)
456  .setUnit(U_VOLT)
457  .setDescription("b-c built-in potential")
458 #ifdef Xyce_ADMS_SENSITIVITIES
459  .setAnalyticSensitivityAvailable(true)
460  .setSensitivityFunctor(&modSens)
461 #endif // Xyce_ADMS_SENSITIVITIES
462  ;
463  p.addPar("MC", static_cast<double>(0.33), &ADMSvbic13_4t::Model::mc)
464  .setUnit(U_UNKNOWN)
465  .setDescription("b-c grading coefficient")
466 #ifdef Xyce_ADMS_SENSITIVITIES
467  .setAnalyticSensitivityAvailable(true)
468  .setSensitivityFunctor(&modSens)
469 #endif // Xyce_ADMS_SENSITIVITIES
470  ;
471  p.addPar("AJC", static_cast<double>((-0.5)), &ADMSvbic13_4t::Model::ajc)
472  .setUnit(U_UNKNOWN)
473  .setDescription("b-c capacitance smoothing factor")
474 #ifdef Xyce_ADMS_SENSITIVITIES
475  .setAnalyticSensitivityAvailable(true)
476  .setSensitivityFunctor(&modSens)
477 #endif // Xyce_ADMS_SENSITIVITIES
478  ;
479  p.addPar("VRT", static_cast<double>(0.0), &ADMSvbic13_4t::Model::vrt)
480  .setUnit(U_VOLT)
481  .setDescription("reach-through voltage for Cbc limiting")
482 #ifdef Xyce_ADMS_SENSITIVITIES
483  .setAnalyticSensitivityAvailable(true)
484  .setSensitivityFunctor(&modSens)
485 #endif // Xyce_ADMS_SENSITIVITIES
486  ;
487  p.addPar("ART", static_cast<double>(0.1), &ADMSvbic13_4t::Model::art)
488  .setUnit(U_UNKNOWN)
489  .setDescription("smoothing parameter for reach-through")
490 #ifdef Xyce_ADMS_SENSITIVITIES
491  .setAnalyticSensitivityAvailable(true)
492  .setSensitivityFunctor(&modSens)
493 #endif // Xyce_ADMS_SENSITIVITIES
494  ;
495  p.addPar("QCO", static_cast<double>(0.0), &ADMSvbic13_4t::Model::qco)
496  .setUnit(U_COULOMB)
497  .setDescription("epi charge parameter")
498 #ifdef Xyce_ADMS_SENSITIVITIES
499  .setAnalyticSensitivityAvailable(true)
500  .setSensitivityFunctor(&modSens)
501 #endif // Xyce_ADMS_SENSITIVITIES
502  ;
503  p.addPar("CJEP", static_cast<double>(0.0), &ADMSvbic13_4t::Model::cjep)
504  .setUnit(U_FARAD)
505  .setDescription("zero-bias extrinsic b-c depletion capacitance")
506 #ifdef Xyce_ADMS_SENSITIVITIES
507  .setAnalyticSensitivityAvailable(true)
508  .setSensitivityFunctor(&modSens)
509 #endif // Xyce_ADMS_SENSITIVITIES
510  ;
511  p.addPar("CJCP", static_cast<double>(0.0), &ADMSvbic13_4t::Model::cjcp)
512  .setUnit(U_FARAD)
513  .setDescription("zero-bias extrinsic c-s depletion capacitance")
514 #ifdef Xyce_ADMS_SENSITIVITIES
515  .setAnalyticSensitivityAvailable(true)
516  .setSensitivityFunctor(&modSens)
517 #endif // Xyce_ADMS_SENSITIVITIES
518  ;
519  p.addPar("PS", static_cast<double>(0.75), &ADMSvbic13_4t::Model::ps)
520  .setUnit(U_VOLT)
521  .setDescription("c-s built-in potential")
522 #ifdef Xyce_ADMS_SENSITIVITIES
523  .setAnalyticSensitivityAvailable(true)
524  .setSensitivityFunctor(&modSens)
525 #endif // Xyce_ADMS_SENSITIVITIES
526  ;
527  p.addPar("MS", static_cast<double>(0.33), &ADMSvbic13_4t::Model::ms)
528  .setUnit(U_UNKNOWN)
529  .setDescription("c-s grading coefficient")
530 #ifdef Xyce_ADMS_SENSITIVITIES
531  .setAnalyticSensitivityAvailable(true)
532  .setSensitivityFunctor(&modSens)
533 #endif // Xyce_ADMS_SENSITIVITIES
534  ;
535  p.addPar("AJS", static_cast<double>((-0.5)), &ADMSvbic13_4t::Model::ajs)
536  .setUnit(U_UNKNOWN)
537  .setDescription("c-s capacitance smoothing factor")
538 #ifdef Xyce_ADMS_SENSITIVITIES
539  .setAnalyticSensitivityAvailable(true)
540  .setSensitivityFunctor(&modSens)
541 #endif // Xyce_ADMS_SENSITIVITIES
542  ;
543  p.addPar("CCSO", static_cast<double>(0.0), &ADMSvbic13_4t::Model::ccso)
544  .setUnit(U_FARAD)
545  .setDescription("extrinsic c-s overlap capacitance")
546 #ifdef Xyce_ADMS_SENSITIVITIES
547  .setAnalyticSensitivityAvailable(true)
548  .setSensitivityFunctor(&modSens)
549 #endif // Xyce_ADMS_SENSITIVITIES
550  ;
551  p.addPar("IBEI", static_cast<double>(1.0e-18), &ADMSvbic13_4t::Model::ibei)
552  .setUnit(U_AMP)
553  .setDescription("ideal b-e saturation current")
554 #ifdef Xyce_ADMS_SENSITIVITIES
555  .setAnalyticSensitivityAvailable(true)
556  .setSensitivityFunctor(&modSens)
557 #endif // Xyce_ADMS_SENSITIVITIES
558  ;
559  p.addPar("WBE", static_cast<double>(1.0), &ADMSvbic13_4t::Model::wbe)
560  .setUnit(U_UNKNOWN)
561  .setDescription("partitioning of Ibe/Ibex and Qbe/Qbex")
562 #ifdef Xyce_ADMS_SENSITIVITIES
563  .setAnalyticSensitivityAvailable(true)
564  .setSensitivityFunctor(&modSens)
565 #endif // Xyce_ADMS_SENSITIVITIES
566  ;
567  p.addPar("NEI", static_cast<double>(1.0), &ADMSvbic13_4t::Model::nei)
568  .setUnit(U_UNKNOWN)
569  .setDescription("ideal b-e emission coefficient")
570 #ifdef Xyce_ADMS_SENSITIVITIES
571  .setAnalyticSensitivityAvailable(true)
572  .setSensitivityFunctor(&modSens)
573 #endif // Xyce_ADMS_SENSITIVITIES
574  ;
575  p.addPar("QNIBEIR", static_cast<double>(0.0), &ADMSvbic13_4t::Model::qnibeir)
576  .setUnit(U_UNKNOWN)
577  .setDescription("ideal b-e quasi-neutral base recombination parameter")
578 #ifdef Xyce_ADMS_SENSITIVITIES
579  .setAnalyticSensitivityAvailable(true)
580  .setSensitivityFunctor(&modSens)
581 #endif // Xyce_ADMS_SENSITIVITIES
582  ;
583  p.addPar("IBEN", static_cast<double>(0.0), &ADMSvbic13_4t::Model::iben)
584  .setUnit(U_AMP)
585  .setDescription("non-ideal b-e saturation current")
586 #ifdef Xyce_ADMS_SENSITIVITIES
587  .setAnalyticSensitivityAvailable(true)
588  .setSensitivityFunctor(&modSens)
589 #endif // Xyce_ADMS_SENSITIVITIES
590  ;
591  p.addPar("NEN", static_cast<double>(2.0), &ADMSvbic13_4t::Model::nen)
592  .setUnit(U_UNKNOWN)
593  .setDescription("non-ideal b-e emission coefficient")
594 #ifdef Xyce_ADMS_SENSITIVITIES
595  .setAnalyticSensitivityAvailable(true)
596  .setSensitivityFunctor(&modSens)
597 #endif // Xyce_ADMS_SENSITIVITIES
598  ;
599  p.addPar("IBCI", static_cast<double>(1.0e-16), &ADMSvbic13_4t::Model::ibci)
600  .setUnit(U_AMP)
601  .setDescription("ideal b-c saturation current")
602 #ifdef Xyce_ADMS_SENSITIVITIES
603  .setAnalyticSensitivityAvailable(true)
604  .setSensitivityFunctor(&modSens)
605 #endif // Xyce_ADMS_SENSITIVITIES
606  ;
607  p.addPar("NCI", static_cast<double>(1.0), &ADMSvbic13_4t::Model::nci)
608  .setUnit(U_UNKNOWN)
609  .setDescription("ideal b-c emission coefficient")
610 #ifdef Xyce_ADMS_SENSITIVITIES
611  .setAnalyticSensitivityAvailable(true)
612  .setSensitivityFunctor(&modSens)
613 #endif // Xyce_ADMS_SENSITIVITIES
614  ;
615  p.addPar("IBCN", static_cast<double>(0.0), &ADMSvbic13_4t::Model::ibcn)
616  .setUnit(U_AMP)
617  .setDescription("non-ideal b-c saturation current")
618 #ifdef Xyce_ADMS_SENSITIVITIES
619  .setAnalyticSensitivityAvailable(true)
620  .setSensitivityFunctor(&modSens)
621 #endif // Xyce_ADMS_SENSITIVITIES
622  ;
623  p.addPar("NCN", static_cast<double>(2.0), &ADMSvbic13_4t::Model::ncn)
624  .setUnit(U_UNKNOWN)
625  .setDescription("non-ideal b-c emission coefficient")
626 #ifdef Xyce_ADMS_SENSITIVITIES
627  .setAnalyticSensitivityAvailable(true)
628  .setSensitivityFunctor(&modSens)
629 #endif // Xyce_ADMS_SENSITIVITIES
630  ;
631  p.addPar("IBEIP", static_cast<double>(0.0), &ADMSvbic13_4t::Model::ibeip)
632  .setUnit(U_AMP)
633  .setDescription("ideal parasitic b-e saturation current")
634 #ifdef Xyce_ADMS_SENSITIVITIES
635  .setAnalyticSensitivityAvailable(true)
636  .setSensitivityFunctor(&modSens)
637 #endif // Xyce_ADMS_SENSITIVITIES
638  ;
639  p.addPar("IBENP", static_cast<double>(0.0), &ADMSvbic13_4t::Model::ibenp)
640  .setUnit(U_AMP)
641  .setDescription("non-ideal parasitic b-e saturation current")
642 #ifdef Xyce_ADMS_SENSITIVITIES
643  .setAnalyticSensitivityAvailable(true)
644  .setSensitivityFunctor(&modSens)
645 #endif // Xyce_ADMS_SENSITIVITIES
646  ;
647  p.addPar("IBCIP", static_cast<double>(0.0), &ADMSvbic13_4t::Model::ibcip)
648  .setUnit(U_AMP)
649  .setDescription("ideal parasitic b-c saturation current")
650 #ifdef Xyce_ADMS_SENSITIVITIES
651  .setAnalyticSensitivityAvailable(true)
652  .setSensitivityFunctor(&modSens)
653 #endif // Xyce_ADMS_SENSITIVITIES
654  ;
655  p.addPar("NCIP", static_cast<double>(1.0), &ADMSvbic13_4t::Model::ncip)
656  .setUnit(U_UNKNOWN)
657  .setDescription("ideal parasitic b-c emission coefficient")
658 #ifdef Xyce_ADMS_SENSITIVITIES
659  .setAnalyticSensitivityAvailable(true)
660  .setSensitivityFunctor(&modSens)
661 #endif // Xyce_ADMS_SENSITIVITIES
662  ;
663  p.addPar("IBCNP", static_cast<double>(0.0), &ADMSvbic13_4t::Model::ibcnp)
664  .setUnit(U_AMP)
665  .setDescription("non-ideal parasitic b-c saturation current")
666 #ifdef Xyce_ADMS_SENSITIVITIES
667  .setAnalyticSensitivityAvailable(true)
668  .setSensitivityFunctor(&modSens)
669 #endif // Xyce_ADMS_SENSITIVITIES
670  ;
671  p.addPar("NCNP", static_cast<double>(2.0), &ADMSvbic13_4t::Model::ncnp)
672  .setUnit(U_UNKNOWN)
673  .setDescription("non-ideal parasitic b-c emission coefficient")
674 #ifdef Xyce_ADMS_SENSITIVITIES
675  .setAnalyticSensitivityAvailable(true)
676  .setSensitivityFunctor(&modSens)
677 #endif // Xyce_ADMS_SENSITIVITIES
678  ;
679  p.addPar("VEF", static_cast<double>(0.0), &ADMSvbic13_4t::Model::vef)
680  .setUnit(U_VOLT)
681  .setDescription("forward Early voltage (zero=infinite)")
682 #ifdef Xyce_ADMS_SENSITIVITIES
683  .setAnalyticSensitivityAvailable(true)
684  .setSensitivityFunctor(&modSens)
685 #endif // Xyce_ADMS_SENSITIVITIES
686  ;
687  p.addPar("VER", static_cast<double>(0.0), &ADMSvbic13_4t::Model::ver)
688  .setUnit(U_VOLT)
689  .setDescription("reverse Early voltage (zero=infinite)")
690 #ifdef Xyce_ADMS_SENSITIVITIES
691  .setAnalyticSensitivityAvailable(true)
692  .setSensitivityFunctor(&modSens)
693 #endif // Xyce_ADMS_SENSITIVITIES
694  ;
695  p.addPar("IKF", static_cast<double>(0.0), &ADMSvbic13_4t::Model::ikf)
696  .setUnit(U_AMP)
697  .setDescription("forward knee current (zero=infinite)")
698 #ifdef Xyce_ADMS_SENSITIVITIES
699  .setAnalyticSensitivityAvailable(true)
700  .setSensitivityFunctor(&modSens)
701 #endif // Xyce_ADMS_SENSITIVITIES
702  ;
703  p.addPar("NKF", static_cast<double>(0.5), &ADMSvbic13_4t::Model::nkf)
704  .setUnit(U_UNKNOWN)
705  .setDescription("high current beta roll-off parameter")
706 #ifdef Xyce_ADMS_SENSITIVITIES
707  .setAnalyticSensitivityAvailable(true)
708  .setSensitivityFunctor(&modSens)
709 #endif // Xyce_ADMS_SENSITIVITIES
710  ;
711  p.addPar("IKR", static_cast<double>(0.0), &ADMSvbic13_4t::Model::ikr)
712  .setUnit(U_AMP)
713  .setDescription("reverse knee current (zero=infinite)")
714 #ifdef Xyce_ADMS_SENSITIVITIES
715  .setAnalyticSensitivityAvailable(true)
716  .setSensitivityFunctor(&modSens)
717 #endif // Xyce_ADMS_SENSITIVITIES
718  ;
719  p.addPar("IKP", static_cast<double>(0.0), &ADMSvbic13_4t::Model::ikp)
720  .setUnit(U_AMP)
721  .setDescription("parasitic knee current (zero=infinite)")
722 #ifdef Xyce_ADMS_SENSITIVITIES
723  .setAnalyticSensitivityAvailable(true)
724  .setSensitivityFunctor(&modSens)
725 #endif // Xyce_ADMS_SENSITIVITIES
726  ;
727  p.addPar("TF", static_cast<double>(0.0), &ADMSvbic13_4t::Model::tf)
728  .setUnit(U_SECOND)
729  .setDescription("forward transit time")
730 #ifdef Xyce_ADMS_SENSITIVITIES
731  .setAnalyticSensitivityAvailable(true)
732  .setSensitivityFunctor(&modSens)
733 #endif // Xyce_ADMS_SENSITIVITIES
734  ;
735  p.addPar("QTF", static_cast<double>(0.0), &ADMSvbic13_4t::Model::qtf)
736  .setUnit(U_UNKNOWN)
737  .setDescription("variation of tf with base-width modulation")
738 #ifdef Xyce_ADMS_SENSITIVITIES
739  .setAnalyticSensitivityAvailable(true)
740  .setSensitivityFunctor(&modSens)
741 #endif // Xyce_ADMS_SENSITIVITIES
742  ;
743  p.addPar("XTF", static_cast<double>(0.0), &ADMSvbic13_4t::Model::xtf)
744  .setUnit(U_UNKNOWN)
745  .setDescription("tf bias dependence coefficient")
746 #ifdef Xyce_ADMS_SENSITIVITIES
747  .setAnalyticSensitivityAvailable(true)
748  .setSensitivityFunctor(&modSens)
749 #endif // Xyce_ADMS_SENSITIVITIES
750  ;
751  p.addPar("VTF", static_cast<double>(0.0), &ADMSvbic13_4t::Model::vtf)
752  .setUnit(U_VOLT)
753  .setDescription("tf coefficient of Vbci dependence")
754 #ifdef Xyce_ADMS_SENSITIVITIES
755  .setAnalyticSensitivityAvailable(true)
756  .setSensitivityFunctor(&modSens)
757 #endif // Xyce_ADMS_SENSITIVITIES
758  ;
759  p.addPar("ITF", static_cast<double>(0.0), &ADMSvbic13_4t::Model::itf)
760  .setUnit(U_AMP)
761  .setDescription("tf coefficient of Ic dependence")
762 #ifdef Xyce_ADMS_SENSITIVITIES
763  .setAnalyticSensitivityAvailable(true)
764  .setSensitivityFunctor(&modSens)
765 #endif // Xyce_ADMS_SENSITIVITIES
766  ;
767  p.addPar("TR", static_cast<double>(0.0), &ADMSvbic13_4t::Model::tr)
768  .setUnit(U_SECOND)
769  .setDescription("reverse transit time")
770 #ifdef Xyce_ADMS_SENSITIVITIES
771  .setAnalyticSensitivityAvailable(true)
772  .setSensitivityFunctor(&modSens)
773 #endif // Xyce_ADMS_SENSITIVITIES
774  ;
775  p.addPar("TD", static_cast<double>(0.0), &ADMSvbic13_4t::Model::td)
776  .setUnit(U_SECOND)
777  .setDescription("forward excess-phase delay time")
778 #ifdef Xyce_ADMS_SENSITIVITIES
779  .setAnalyticSensitivityAvailable(true)
780  .setSensitivityFunctor(&modSens)
781 #endif // Xyce_ADMS_SENSITIVITIES
782  ;
783  p.addPar("AVC1", static_cast<double>(0.0), &ADMSvbic13_4t::Model::avc1)
784  .setUnit(U_VOLTM1)
785  .setDescription("b-c weak avalanche parameter 1")
786 #ifdef Xyce_ADMS_SENSITIVITIES
787  .setAnalyticSensitivityAvailable(true)
788  .setSensitivityFunctor(&modSens)
789 #endif // Xyce_ADMS_SENSITIVITIES
790  ;
791  p.addPar("AVC2", static_cast<double>(0.0), &ADMSvbic13_4t::Model::avc2)
792  .setUnit(U_UNKNOWN)
793  .setDescription("b-c weak avalanche parameter 2")
794 #ifdef Xyce_ADMS_SENSITIVITIES
795  .setAnalyticSensitivityAvailable(true)
796  .setSensitivityFunctor(&modSens)
797 #endif // Xyce_ADMS_SENSITIVITIES
798  ;
799  p.addPar("AVCX1", static_cast<double>(0.0), &ADMSvbic13_4t::Model::avcx1)
800  .setUnit(U_VOLTM1)
801  .setDescription("bx-cx weak avalanche parameter 1")
802 #ifdef Xyce_ADMS_SENSITIVITIES
803  .setAnalyticSensitivityAvailable(true)
804  .setSensitivityFunctor(&modSens)
805 #endif // Xyce_ADMS_SENSITIVITIES
806  ;
807  p.addPar("AVCX2", static_cast<double>(0.0), &ADMSvbic13_4t::Model::avcx2)
808  .setUnit(U_UNKNOWN)
809  .setDescription("bx-cx weak avalanche parameter 2")
810 #ifdef Xyce_ADMS_SENSITIVITIES
811  .setAnalyticSensitivityAvailable(true)
812  .setSensitivityFunctor(&modSens)
813 #endif // Xyce_ADMS_SENSITIVITIES
814  ;
815  p.addPar("MCX", static_cast<double>(0.33), &ADMSvbic13_4t::Model::mcx)
816  .setUnit(U_UNKNOWN)
817  .setDescription("bx-cx grading coefficient for avalanche")
818 #ifdef Xyce_ADMS_SENSITIVITIES
819  .setAnalyticSensitivityAvailable(true)
820  .setSensitivityFunctor(&modSens)
821 #endif // Xyce_ADMS_SENSITIVITIES
822  ;
823  p.addPar("VBBE", static_cast<double>(0.0), &ADMSvbic13_4t::Model::vbbe)
824  .setUnit(U_VOLT)
825  .setDescription("b-e breakdown voltage")
826 #ifdef Xyce_ADMS_SENSITIVITIES
827  .setAnalyticSensitivityAvailable(true)
828  .setSensitivityFunctor(&modSens)
829 #endif // Xyce_ADMS_SENSITIVITIES
830  ;
831  p.addPar("NBBE", static_cast<double>(1.0), &ADMSvbic13_4t::Model::nbbe)
832  .setUnit(U_UNKNOWN)
833  .setDescription("b-e breakdown emission coefficient")
834 #ifdef Xyce_ADMS_SENSITIVITIES
835  .setAnalyticSensitivityAvailable(true)
836  .setSensitivityFunctor(&modSens)
837 #endif // Xyce_ADMS_SENSITIVITIES
838  ;
839  p.addPar("IBBE", static_cast<double>(1.0e-06), &ADMSvbic13_4t::Model::ibbe)
840  .setUnit(U_AMP)
841  .setDescription("b-e breakdown current")
842 #ifdef Xyce_ADMS_SENSITIVITIES
843  .setAnalyticSensitivityAvailable(true)
844  .setSensitivityFunctor(&modSens)
845 #endif // Xyce_ADMS_SENSITIVITIES
846  ;
847  p.addPar("TVBBE1", static_cast<double>(0.0), &ADMSvbic13_4t::Model::tvbbe1)
848  .setUnit(U_DEGCM1)
849  .setDescription("linear temperature coefficient of vbbe")
850 #ifdef Xyce_ADMS_SENSITIVITIES
851  .setAnalyticSensitivityAvailable(true)
852  .setSensitivityFunctor(&modSens)
853 #endif // Xyce_ADMS_SENSITIVITIES
854  ;
855  p.addPar("TVBBE2", static_cast<double>(0.0), &ADMSvbic13_4t::Model::tvbbe2)
856  .setUnit(U_UNKNOWN)
857  .setDescription("quadratic temperature coefficient of vbbe")
858 #ifdef Xyce_ADMS_SENSITIVITIES
859  .setAnalyticSensitivityAvailable(true)
860  .setSensitivityFunctor(&modSens)
861 #endif // Xyce_ADMS_SENSITIVITIES
862  ;
863  p.addPar("TNBBE", static_cast<double>(0.0), &ADMSvbic13_4t::Model::tnbbe)
864  .setUnit(U_DEGCM1)
865  .setDescription("temperature coefficient of nbbe")
866 #ifdef Xyce_ADMS_SENSITIVITIES
867  .setAnalyticSensitivityAvailable(true)
868  .setSensitivityFunctor(&modSens)
869 #endif // Xyce_ADMS_SENSITIVITIES
870  ;
871  p.addPar("VPTE", static_cast<double>(0.0), &ADMSvbic13_4t::Model::vpte)
872  .setUnit(U_VOLT)
873  .setDescription("SiGe base current kink voltage")
874 #ifdef Xyce_ADMS_SENSITIVITIES
875  .setAnalyticSensitivityAvailable(true)
876  .setSensitivityFunctor(&modSens)
877 #endif // Xyce_ADMS_SENSITIVITIES
878  ;
879  p.addPar("IBK0", static_cast<double>(0.0), &ADMSvbic13_4t::Model::ibk0)
880  .setUnit(U_AMP)
881  .setDescription("SiGe base current kink current reference")
882 #ifdef Xyce_ADMS_SENSITIVITIES
883  .setAnalyticSensitivityAvailable(true)
884  .setSensitivityFunctor(&modSens)
885 #endif // Xyce_ADMS_SENSITIVITIES
886  ;
887  p.addPar("ABK", static_cast<double>(1.0), &ADMSvbic13_4t::Model::abk)
888  .setUnit(U_UNKNOWN)
889  .setDescription("SiGe base current kink exponent")
890 #ifdef Xyce_ADMS_SENSITIVITIES
891  .setAnalyticSensitivityAvailable(true)
892  .setSensitivityFunctor(&modSens)
893 #endif // Xyce_ADMS_SENSITIVITIES
894  ;
895  p.addPar("BBK", static_cast<double>(0.0), &ADMSvbic13_4t::Model::bbk)
896  .setUnit(U_AMP)
897  .setDescription("SiGe base current kink current factor")
898 #ifdef Xyce_ADMS_SENSITIVITIES
899  .setAnalyticSensitivityAvailable(true)
900  .setSensitivityFunctor(&modSens)
901 #endif // Xyce_ADMS_SENSITIVITIES
902  ;
903  p.addPar("KFN", static_cast<double>(0.0), &ADMSvbic13_4t::Model::kfn)
904  .setUnit(U_UNKNOWN)
905  .setDescription("b-e flicker noise constant")
906 #ifdef Xyce_ADMS_SENSITIVITIES
907  .setAnalyticSensitivityAvailable(true)
908  .setSensitivityFunctor(&modSens)
909 #endif // Xyce_ADMS_SENSITIVITIES
910  ;
911  p.addPar("AFN", static_cast<double>(1.0), &ADMSvbic13_4t::Model::afn)
912  .setUnit(U_UNKNOWN)
913  .setDescription("b-e flicker noise current exponent")
914 #ifdef Xyce_ADMS_SENSITIVITIES
915  .setAnalyticSensitivityAvailable(true)
916  .setSensitivityFunctor(&modSens)
917 #endif // Xyce_ADMS_SENSITIVITIES
918  ;
919  p.addPar("BFN", static_cast<double>(1.0), &ADMSvbic13_4t::Model::bfn)
920  .setUnit(U_UNKNOWN)
921  .setDescription("b-e flicker noise 1/f exponent")
922 #ifdef Xyce_ADMS_SENSITIVITIES
923  .setAnalyticSensitivityAvailable(true)
924  .setSensitivityFunctor(&modSens)
925 #endif // Xyce_ADMS_SENSITIVITIES
926  ;
927  p.addPar("RTH", static_cast<double>(0.0), &ADMSvbic13_4t::Model::rth)
928  .setUnit(U_UNKNOWN)
929  .setDescription("thermal resistance")
930 #ifdef Xyce_ADMS_SENSITIVITIES
931  .setAnalyticSensitivityAvailable(true)
932  .setSensitivityFunctor(&modSens)
933 #endif // Xyce_ADMS_SENSITIVITIES
934  ;
935  p.addPar("CTH", static_cast<double>(0.0), &ADMSvbic13_4t::Model::cth)
936  .setUnit(U_UNKNOWN)
937  .setDescription("thermal capacitance")
938 #ifdef Xyce_ADMS_SENSITIVITIES
939  .setAnalyticSensitivityAvailable(true)
940  .setSensitivityFunctor(&modSens)
941 #endif // Xyce_ADMS_SENSITIVITIES
942  ;
943  p.addPar("XRE", static_cast<double>(0.0), &ADMSvbic13_4t::Model::xre)
944  .setUnit(U_UNKNOWN)
945  .setDescription("temperature exponent of re")
946 #ifdef Xyce_ADMS_SENSITIVITIES
947  .setAnalyticSensitivityAvailable(true)
948  .setSensitivityFunctor(&modSens)
949 #endif // Xyce_ADMS_SENSITIVITIES
950  ;
951  p.addPar("XRB", static_cast<double>(0.0), &ADMSvbic13_4t::Model::xrb)
952  .setUnit(U_UNKNOWN)
953  .setDescription("temperature exponent of rbx and rbi")
954 #ifdef Xyce_ADMS_SENSITIVITIES
955  .setAnalyticSensitivityAvailable(true)
956  .setSensitivityFunctor(&modSens)
957 #endif // Xyce_ADMS_SENSITIVITIES
958  ;
959  p.addPar("XRBI", static_cast<double>(0.0), &ADMSvbic13_4t::Model::xrbi)
960  .setUnit(U_UNKNOWN)
961  .setDescription("temperature exponent of rbi (overrides xrb)")
962 #ifdef Xyce_ADMS_SENSITIVITIES
963  .setAnalyticSensitivityAvailable(true)
964  .setSensitivityFunctor(&modSens)
965 #endif // Xyce_ADMS_SENSITIVITIES
966  ;
967  p.addPar("XRBX", static_cast<double>(0.0), &ADMSvbic13_4t::Model::xrbx)
968  .setUnit(U_UNKNOWN)
969  .setDescription("temperature exponent of rbx (overrides xrb)")
970 #ifdef Xyce_ADMS_SENSITIVITIES
971  .setAnalyticSensitivityAvailable(true)
972  .setSensitivityFunctor(&modSens)
973 #endif // Xyce_ADMS_SENSITIVITIES
974  ;
975  p.addPar("XRC", static_cast<double>(0.0), &ADMSvbic13_4t::Model::xrc)
976  .setUnit(U_UNKNOWN)
977  .setDescription("temperature exponent of rci and rcx and rbp")
978 #ifdef Xyce_ADMS_SENSITIVITIES
979  .setAnalyticSensitivityAvailable(true)
980  .setSensitivityFunctor(&modSens)
981 #endif // Xyce_ADMS_SENSITIVITIES
982  ;
983  p.addPar("XRCI", static_cast<double>(0.0), &ADMSvbic13_4t::Model::xrci)
984  .setUnit(U_UNKNOWN)
985  .setDescription("temperature exponent of rci (overrides xrc)")
986 #ifdef Xyce_ADMS_SENSITIVITIES
987  .setAnalyticSensitivityAvailable(true)
988  .setSensitivityFunctor(&modSens)
989 #endif // Xyce_ADMS_SENSITIVITIES
990  ;
991  p.addPar("XRCX", static_cast<double>(0.0), &ADMSvbic13_4t::Model::xrcx)
992  .setUnit(U_UNKNOWN)
993  .setDescription("temperature exponent of rcx (overrides xrc)")
994 #ifdef Xyce_ADMS_SENSITIVITIES
995  .setAnalyticSensitivityAvailable(true)
996  .setSensitivityFunctor(&modSens)
997 #endif // Xyce_ADMS_SENSITIVITIES
998  ;
999  p.addPar("XRBP", static_cast<double>(0.0), &ADMSvbic13_4t::Model::xrbp)
1000  .setUnit(U_UNKNOWN)
1001  .setDescription("temperature exponent of rbp (overrides xrc)")
1002 #ifdef Xyce_ADMS_SENSITIVITIES
1003  .setAnalyticSensitivityAvailable(true)
1004  .setSensitivityFunctor(&modSens)
1005 #endif // Xyce_ADMS_SENSITIVITIES
1006  ;
1007  p.addPar("XRS", static_cast<double>(0.0), &ADMSvbic13_4t::Model::xrs)
1008  .setUnit(U_UNKNOWN)
1009  .setDescription("temperature exponent of rs")
1010 #ifdef Xyce_ADMS_SENSITIVITIES
1011  .setAnalyticSensitivityAvailable(true)
1012  .setSensitivityFunctor(&modSens)
1013 #endif // Xyce_ADMS_SENSITIVITIES
1014  ;
1015  p.addPar("XVO", static_cast<double>(0.0), &ADMSvbic13_4t::Model::xvo)
1016  .setUnit(U_UNKNOWN)
1017  .setDescription("temperature exponent of vo")
1018 #ifdef Xyce_ADMS_SENSITIVITIES
1019  .setAnalyticSensitivityAvailable(true)
1020  .setSensitivityFunctor(&modSens)
1021 #endif // Xyce_ADMS_SENSITIVITIES
1022  ;
1023  p.addPar("EA", static_cast<double>(1.12), &ADMSvbic13_4t::Model::ea)
1024  .setUnit(U_VOLT)
1025  .setDescription("activation energy for is")
1026 #ifdef Xyce_ADMS_SENSITIVITIES
1027  .setAnalyticSensitivityAvailable(true)
1028  .setSensitivityFunctor(&modSens)
1029 #endif // Xyce_ADMS_SENSITIVITIES
1030  ;
1031  p.addPar("EAIE", static_cast<double>(1.12), &ADMSvbic13_4t::Model::eaie)
1032  .setUnit(U_VOLT)
1033  .setDescription("activation energy for ibei")
1034 #ifdef Xyce_ADMS_SENSITIVITIES
1035  .setAnalyticSensitivityAvailable(true)
1036  .setSensitivityFunctor(&modSens)
1037 #endif // Xyce_ADMS_SENSITIVITIES
1038  ;
1039  p.addPar("EAIC", static_cast<double>(1.12), &ADMSvbic13_4t::Model::eaic)
1040  .setUnit(U_VOLT)
1041  .setDescription("activation energy for ibci and ibeip")
1042 #ifdef Xyce_ADMS_SENSITIVITIES
1043  .setAnalyticSensitivityAvailable(true)
1044  .setSensitivityFunctor(&modSens)
1045 #endif // Xyce_ADMS_SENSITIVITIES
1046  ;
1047  p.addPar("EAIS", static_cast<double>(1.12), &ADMSvbic13_4t::Model::eais)
1048  .setUnit(U_VOLT)
1049  .setDescription("activation energy for ibcip")
1050 #ifdef Xyce_ADMS_SENSITIVITIES
1051  .setAnalyticSensitivityAvailable(true)
1052  .setSensitivityFunctor(&modSens)
1053 #endif // Xyce_ADMS_SENSITIVITIES
1054  ;
1055  p.addPar("EANE", static_cast<double>(1.12), &ADMSvbic13_4t::Model::eane)
1056  .setUnit(U_VOLT)
1057  .setDescription("activation energy for iben")
1058 #ifdef Xyce_ADMS_SENSITIVITIES
1059  .setAnalyticSensitivityAvailable(true)
1060  .setSensitivityFunctor(&modSens)
1061 #endif // Xyce_ADMS_SENSITIVITIES
1062  ;
1063  p.addPar("EANC", static_cast<double>(1.12), &ADMSvbic13_4t::Model::eanc)
1064  .setUnit(U_VOLT)
1065  .setDescription("activation energy for ibcn and ibenp")
1066 #ifdef Xyce_ADMS_SENSITIVITIES
1067  .setAnalyticSensitivityAvailable(true)
1068  .setSensitivityFunctor(&modSens)
1069 #endif // Xyce_ADMS_SENSITIVITIES
1070  ;
1071  p.addPar("EANS", static_cast<double>(1.12), &ADMSvbic13_4t::Model::eans)
1072  .setUnit(U_VOLT)
1073  .setDescription("activation energy for ibcnp")
1074 #ifdef Xyce_ADMS_SENSITIVITIES
1075  .setAnalyticSensitivityAvailable(true)
1076  .setSensitivityFunctor(&modSens)
1077 #endif // Xyce_ADMS_SENSITIVITIES
1078  ;
1079  p.addPar("EAP", static_cast<double>(1.12), &ADMSvbic13_4t::Model::eap)
1080  .setUnit(U_VOLT)
1081  .setDescription("activation energy for isp")
1082 #ifdef Xyce_ADMS_SENSITIVITIES
1083  .setAnalyticSensitivityAvailable(true)
1084  .setSensitivityFunctor(&modSens)
1085 #endif // Xyce_ADMS_SENSITIVITIES
1086  ;
1087  p.addPar("DEAR", static_cast<double>(0.0), &ADMSvbic13_4t::Model::dear)
1088  .setUnit(U_VOLT)
1089  .setDescription("delta activation energy for isrr")
1090 #ifdef Xyce_ADMS_SENSITIVITIES
1091  .setAnalyticSensitivityAvailable(true)
1092  .setSensitivityFunctor(&modSens)
1093 #endif // Xyce_ADMS_SENSITIVITIES
1094  ;
1095  p.addPar("XIS", static_cast<double>(3.0), &ADMSvbic13_4t::Model::xis)
1096  .setUnit(U_UNKNOWN)
1097  .setDescription("temperature exponent of is")
1098 #ifdef Xyce_ADMS_SENSITIVITIES
1099  .setAnalyticSensitivityAvailable(true)
1100  .setSensitivityFunctor(&modSens)
1101 #endif // Xyce_ADMS_SENSITIVITIES
1102  ;
1103  p.addPar("XII", static_cast<double>(3.0), &ADMSvbic13_4t::Model::xii)
1104  .setUnit(U_UNKNOWN)
1105  .setDescription("temperature exponent of ibei, ibci, ibeip, ibcip")
1106 #ifdef Xyce_ADMS_SENSITIVITIES
1107  .setAnalyticSensitivityAvailable(true)
1108  .setSensitivityFunctor(&modSens)
1109 #endif // Xyce_ADMS_SENSITIVITIES
1110  ;
1111  p.addPar("XIN", static_cast<double>(3.0), &ADMSvbic13_4t::Model::xin)
1112  .setUnit(U_UNKNOWN)
1113  .setDescription("temperature exponent of iben, ibcn, ibenp, ibcnp")
1114 #ifdef Xyce_ADMS_SENSITIVITIES
1115  .setAnalyticSensitivityAvailable(true)
1116  .setSensitivityFunctor(&modSens)
1117 #endif // Xyce_ADMS_SENSITIVITIES
1118  ;
1119  p.addPar("XISR", static_cast<double>(0.0), &ADMSvbic13_4t::Model::xisr)
1120  .setUnit(U_UNKNOWN)
1121  .setDescription("temperature exponent for isrr")
1122 #ifdef Xyce_ADMS_SENSITIVITIES
1123  .setAnalyticSensitivityAvailable(true)
1124  .setSensitivityFunctor(&modSens)
1125 #endif // Xyce_ADMS_SENSITIVITIES
1126  ;
1127  p.addPar("XIKF", static_cast<double>(0.0), &ADMSvbic13_4t::Model::xikf)
1128  .setUnit(U_UNKNOWN)
1129  .setDescription("temperature exponent of ikf")
1130 #ifdef Xyce_ADMS_SENSITIVITIES
1131  .setAnalyticSensitivityAvailable(true)
1132  .setSensitivityFunctor(&modSens)
1133 #endif // Xyce_ADMS_SENSITIVITIES
1134  ;
1135  p.addPar("TAVC", static_cast<double>(0.0), &ADMSvbic13_4t::Model::tavc)
1136  .setUnit(U_DEGCM1)
1137  .setDescription("temperature exponent of avc2")
1138 #ifdef Xyce_ADMS_SENSITIVITIES
1139  .setAnalyticSensitivityAvailable(true)
1140  .setSensitivityFunctor(&modSens)
1141 #endif // Xyce_ADMS_SENSITIVITIES
1142  ;
1143  p.addPar("TAVCX", static_cast<double>(0.0), &ADMSvbic13_4t::Model::tavcx)
1144  .setUnit(U_DEGCM1)
1145  .setDescription("temperature exponent of avcx2")
1146 #ifdef Xyce_ADMS_SENSITIVITIES
1147  .setAnalyticSensitivityAvailable(true)
1148  .setSensitivityFunctor(&modSens)
1149 #endif // Xyce_ADMS_SENSITIVITIES
1150  ;
1151  p.addPar("TNF", static_cast<double>(0.0), &ADMSvbic13_4t::Model::tnf)
1152  .setUnit(U_DEGCM1)
1153  .setDescription("temperature exponent of nf and nr")
1154 #ifdef Xyce_ADMS_SENSITIVITIES
1155  .setAnalyticSensitivityAvailable(true)
1156  .setSensitivityFunctor(&modSens)
1157 #endif // Xyce_ADMS_SENSITIVITIES
1158  ;
1159  p.addPar("TCVEF", static_cast<double>(0.0), &ADMSvbic13_4t::Model::tcvef)
1160  .setUnit(U_DEGCM1)
1161  .setDescription("temperature exponent of vef")
1162 #ifdef Xyce_ADMS_SENSITIVITIES
1163  .setAnalyticSensitivityAvailable(true)
1164  .setSensitivityFunctor(&modSens)
1165 #endif // Xyce_ADMS_SENSITIVITIES
1166  ;
1167  p.addPar("TCVER", static_cast<double>(0.0), &ADMSvbic13_4t::Model::tcver)
1168  .setUnit(U_DEGCM1)
1169  .setDescription("temperature exponent of ver")
1170 #ifdef Xyce_ADMS_SENSITIVITIES
1171  .setAnalyticSensitivityAvailable(true)
1172  .setSensitivityFunctor(&modSens)
1173 #endif // Xyce_ADMS_SENSITIVITIES
1174  ;
1175  p.addPar("TCRTH", static_cast<double>(0.0), &ADMSvbic13_4t::Model::tcrth)
1176  .setUnit(U_DEGCM1)
1177  .setDescription("temperature exponent of rth")
1178 #ifdef Xyce_ADMS_SENSITIVITIES
1179  .setAnalyticSensitivityAvailable(true)
1180  .setSensitivityFunctor(&modSens)
1181 #endif // Xyce_ADMS_SENSITIVITIES
1182  ;
1183 
1184 }
1185 
1186 //-----------------------------------------------------------------------------
1187 // Function : Instance::processParams
1188 // Purpose :
1189 // Special Notes :
1190 // Scope : public
1191 // Creator : admsXml
1192 // Creation Date :
1193 //-----------------------------------------------------------------------------
1195 {
1196  // set any non-constant parameter defaults
1197 
1198  // copy any model variables that have associated instance variables, but
1199  // are only given in the model card:
1200 
1201 
1202 
1203  // Set any parameters that were not given and whose defaults depend on other
1204  // parameters:
1205 
1206 
1207  // Now we need to check that any parameters are within their ranges as
1208  // specified in the verilog:
1209 
1210  // Parameter m : ] 0.0, (+inf) [
1211  if ( (!((m >0.0))) )
1212  {
1213  UserError0(*this) << "ADMSvbic13_4t: Parameter m value " << m << " out of range ] 0.0, (+inf) [";
1214  }
1215 
1216  // Parameter sw_noise : [ 0, 1 ]
1217  if ( (!((sw_noise >=0 && sw_noise <=1 ))) )
1218  {
1219  UserError0(*this) << "ADMSvbic13_4t: Parameter sw_noise value " << sw_noise << " out of range [ 0, 1 ]";
1220  }
1221 
1222  // Parameter sw_et : [ 0, 1 ]
1223  if ( (!((sw_et >=0 && sw_et <=1 ))) )
1224  {
1225  UserError0(*this) << "ADMSvbic13_4t: Parameter sw_et value " << sw_et << " out of range [ 0, 1 ]";
1226  }
1227 
1228 
1229  // this seems a little stupid, but verilog models that use $temperature
1230  // don't also use a defined parameter "Temp", and count on $temperature
1231  // to be the one the simulator wants:
1232 
1234 
1235  // and of course, this routine is where we should put the initial_instance
1236  // stuff
1237 
1238 
1239  return true;
1240 }
1241 
1242 //-----------------------------------------------------------------------------
1243 // Function : Instance::Instance
1244 // Purpose : "instance block" constructor
1245 // Special Notes :
1246 // Scope : public
1247 // Creator : admsXml
1248 // Creation Date :
1249 //-----------------------------------------------------------------------------
1250 
1252  const Configuration & configuration,
1253  const InstanceBlock & instance_block,
1254  Model & model,
1255  const FactoryBlock & factory_block)
1256  : DeviceInstance(instance_block, configuration.getInstanceParameters(), factory_block),
1257  model_(model),
1258  m(1.0),
1259  trise(0.0),
1260  sw_noise(1),
1261  sw_et(1),
1262  li_c(-1),
1263  li_b(-1),
1264  li_e(-1),
1265  li_s(-1),
1266  li_dt(-1),
1267  li_cx(-1),
1268  li_ci(-1),
1269  li_bx(-1),
1270  li_bi(-1),
1271  li_ei(-1),
1272  li_bp(-1),
1273  li_si(-1),
1274  li_xf1(-1),
1275  li_xf2(-1),
1276  f_bi_Equ_bx_Node_Ptr(0),
1277  f_bi_Equ_bp_Node_Ptr(0),
1278  f_ei_Equ_bx_Node_Ptr(0),
1279  f_ei_Equ_bp_Node_Ptr(0),
1280  f_bi_Equ_si_Node_Ptr(0),
1281  f_ei_Equ_si_Node_Ptr(0),
1282  f_bi_Equ_bi_Node_Ptr(0),
1283  f_bi_Equ_ci_Node_Ptr(0),
1284  f_ei_Equ_bi_Node_Ptr(0),
1285  f_ei_Equ_ci_Node_Ptr(0),
1286  f_bi_Equ_ei_Node_Ptr(0),
1287  f_ei_Equ_ei_Node_Ptr(0),
1288  f_bi_Equ_dt_Node_Ptr(0),
1289  f_ei_Equ_dt_Node_Ptr(0),
1290  f_bx_Equ_bi_Node_Ptr(0),
1291  f_bx_Equ_ei_Node_Ptr(0),
1292  f_bx_Equ_ci_Node_Ptr(0),
1293  f_bx_Equ_bx_Node_Ptr(0),
1294  f_bx_Equ_bp_Node_Ptr(0),
1295  f_bx_Equ_si_Node_Ptr(0),
1296  f_bx_Equ_dt_Node_Ptr(0),
1297  f_ci_Equ_xf2_Node_Ptr(0),
1298  f_ei_Equ_xf2_Node_Ptr(0),
1299  f_ci_Equ_bi_Node_Ptr(0),
1300  f_ci_Equ_ei_Node_Ptr(0),
1301  f_ci_Equ_ci_Node_Ptr(0),
1302  f_ci_Equ_dt_Node_Ptr(0),
1303  f_bi_Equ_xf2_Node_Ptr(0),
1304  f_ci_Equ_bx_Node_Ptr(0),
1305  f_ci_Equ_bp_Node_Ptr(0),
1306  f_ci_Equ_si_Node_Ptr(0),
1307  f_cx_Equ_bi_Node_Ptr(0),
1308  f_cx_Equ_ci_Node_Ptr(0),
1309  f_bx_Equ_cx_Node_Ptr(0),
1310  f_cx_Equ_bx_Node_Ptr(0),
1311  f_cx_Equ_cx_Node_Ptr(0),
1312  f_cx_Equ_dt_Node_Ptr(0),
1313  f_bx_Equ_c_Node_Ptr(0),
1314  f_cx_Equ_c_Node_Ptr(0),
1315  f_bp_Equ_bi_Node_Ptr(0),
1316  f_bp_Equ_ei_Node_Ptr(0),
1317  f_bp_Equ_ci_Node_Ptr(0),
1318  f_bp_Equ_bx_Node_Ptr(0),
1319  f_bp_Equ_bp_Node_Ptr(0),
1320  f_bp_Equ_si_Node_Ptr(0),
1321  f_bp_Equ_dt_Node_Ptr(0),
1322  f_c_Equ_dt_Node_Ptr(0),
1323  f_c_Equ_c_Node_Ptr(0),
1324  f_c_Equ_cx_Node_Ptr(0),
1325  f_ci_Equ_cx_Node_Ptr(0),
1326  f_cx_Equ_ei_Node_Ptr(0),
1327  f_cx_Equ_bp_Node_Ptr(0),
1328  f_cx_Equ_si_Node_Ptr(0),
1329  f_b_Equ_dt_Node_Ptr(0),
1330  f_b_Equ_b_Node_Ptr(0),
1331  f_b_Equ_bx_Node_Ptr(0),
1332  f_bx_Equ_b_Node_Ptr(0),
1333  f_e_Equ_dt_Node_Ptr(0),
1334  f_e_Equ_e_Node_Ptr(0),
1335  f_e_Equ_ei_Node_Ptr(0),
1336  f_ei_Equ_e_Node_Ptr(0),
1337  f_bp_Equ_cx_Node_Ptr(0),
1338  f_si_Equ_bi_Node_Ptr(0),
1339  f_si_Equ_ei_Node_Ptr(0),
1340  f_si_Equ_ci_Node_Ptr(0),
1341  f_si_Equ_bx_Node_Ptr(0),
1342  f_si_Equ_bp_Node_Ptr(0),
1343  f_si_Equ_si_Node_Ptr(0),
1344  f_si_Equ_dt_Node_Ptr(0),
1345  f_s_Equ_dt_Node_Ptr(0),
1346  f_s_Equ_s_Node_Ptr(0),
1347  f_s_Equ_si_Node_Ptr(0),
1348  f_si_Equ_s_Node_Ptr(0),
1349  f_xf1_Equ_bi_Node_Ptr(0),
1350  f_xf1_Equ_ci_Node_Ptr(0),
1351  f_xf1_Equ_ei_Node_Ptr(0),
1352  f_xf1_Equ_dt_Node_Ptr(0),
1353  f_xf1_Equ_xf2_Node_Ptr(0),
1354  f_xf2_Equ_xf1_Node_Ptr(0),
1355  f_xf2_Equ_xf2_Node_Ptr(0),
1356  f_dt_Equ_dt_Node_Ptr(0),
1357  f_dt_Equ_bp_Node_Ptr(0),
1358  f_dt_Equ_cx_Node_Ptr(0),
1359  f_dt_Equ_e_Node_Ptr(0),
1360  f_dt_Equ_ei_Node_Ptr(0),
1361  f_dt_Equ_bx_Node_Ptr(0),
1362  f_dt_Equ_bi_Node_Ptr(0),
1363  f_dt_Equ_b_Node_Ptr(0),
1364  f_dt_Equ_ci_Node_Ptr(0),
1365  f_dt_Equ_c_Node_Ptr(0),
1366  f_dt_Equ_si_Node_Ptr(0),
1367  f_dt_Equ_s_Node_Ptr(0),
1368  f_dt_Equ_xf2_Node_Ptr(0),
1369  f_bi_Equ_cx_Node_Ptr(0),
1370  f_ei_Equ_cx_Node_Ptr(0),
1371  f_b_Equ_e_Node_Ptr(0),
1372  f_e_Equ_b_Node_Ptr(0),
1373  f_b_Equ_c_Node_Ptr(0),
1374  f_c_Equ_b_Node_Ptr(0),
1375  f_xf1_Equ_xf1_Node_Ptr(0),
1376  q_bi_Equ_bx_Node_Ptr(0),
1377  q_bi_Equ_bp_Node_Ptr(0),
1378  q_ei_Equ_bx_Node_Ptr(0),
1379  q_ei_Equ_bp_Node_Ptr(0),
1380  q_bi_Equ_si_Node_Ptr(0),
1381  q_ei_Equ_si_Node_Ptr(0),
1382  q_bi_Equ_bi_Node_Ptr(0),
1383  q_bi_Equ_ci_Node_Ptr(0),
1384  q_ei_Equ_bi_Node_Ptr(0),
1385  q_ei_Equ_ci_Node_Ptr(0),
1386  q_bi_Equ_ei_Node_Ptr(0),
1387  q_ei_Equ_ei_Node_Ptr(0),
1388  q_bi_Equ_dt_Node_Ptr(0),
1389  q_ei_Equ_dt_Node_Ptr(0),
1390  q_bx_Equ_bi_Node_Ptr(0),
1391  q_bx_Equ_ei_Node_Ptr(0),
1392  q_bx_Equ_ci_Node_Ptr(0),
1393  q_bx_Equ_bx_Node_Ptr(0),
1394  q_bx_Equ_bp_Node_Ptr(0),
1395  q_bx_Equ_si_Node_Ptr(0),
1396  q_bx_Equ_dt_Node_Ptr(0),
1397  q_ci_Equ_xf2_Node_Ptr(0),
1398  q_ei_Equ_xf2_Node_Ptr(0),
1399  q_ci_Equ_bi_Node_Ptr(0),
1400  q_ci_Equ_ei_Node_Ptr(0),
1401  q_ci_Equ_ci_Node_Ptr(0),
1402  q_ci_Equ_dt_Node_Ptr(0),
1403  q_bi_Equ_xf2_Node_Ptr(0),
1404  q_ci_Equ_bx_Node_Ptr(0),
1405  q_ci_Equ_bp_Node_Ptr(0),
1406  q_ci_Equ_si_Node_Ptr(0),
1407  q_cx_Equ_bi_Node_Ptr(0),
1408  q_cx_Equ_ci_Node_Ptr(0),
1409  q_bx_Equ_cx_Node_Ptr(0),
1410  q_cx_Equ_bx_Node_Ptr(0),
1411  q_cx_Equ_cx_Node_Ptr(0),
1412  q_cx_Equ_dt_Node_Ptr(0),
1413  q_bx_Equ_c_Node_Ptr(0),
1414  q_cx_Equ_c_Node_Ptr(0),
1415  q_bp_Equ_bi_Node_Ptr(0),
1416  q_bp_Equ_ei_Node_Ptr(0),
1417  q_bp_Equ_ci_Node_Ptr(0),
1418  q_bp_Equ_bx_Node_Ptr(0),
1419  q_bp_Equ_bp_Node_Ptr(0),
1420  q_bp_Equ_si_Node_Ptr(0),
1421  q_bp_Equ_dt_Node_Ptr(0),
1422  q_c_Equ_dt_Node_Ptr(0),
1423  q_c_Equ_c_Node_Ptr(0),
1424  q_c_Equ_cx_Node_Ptr(0),
1425  q_ci_Equ_cx_Node_Ptr(0),
1426  q_cx_Equ_ei_Node_Ptr(0),
1427  q_cx_Equ_bp_Node_Ptr(0),
1428  q_cx_Equ_si_Node_Ptr(0),
1429  q_b_Equ_dt_Node_Ptr(0),
1430  q_b_Equ_b_Node_Ptr(0),
1431  q_b_Equ_bx_Node_Ptr(0),
1432  q_bx_Equ_b_Node_Ptr(0),
1433  q_e_Equ_dt_Node_Ptr(0),
1434  q_e_Equ_e_Node_Ptr(0),
1435  q_e_Equ_ei_Node_Ptr(0),
1436  q_ei_Equ_e_Node_Ptr(0),
1437  q_bp_Equ_cx_Node_Ptr(0),
1438  q_si_Equ_bi_Node_Ptr(0),
1439  q_si_Equ_ei_Node_Ptr(0),
1440  q_si_Equ_ci_Node_Ptr(0),
1441  q_si_Equ_bx_Node_Ptr(0),
1442  q_si_Equ_bp_Node_Ptr(0),
1443  q_si_Equ_si_Node_Ptr(0),
1444  q_si_Equ_dt_Node_Ptr(0),
1445  q_s_Equ_dt_Node_Ptr(0),
1446  q_s_Equ_s_Node_Ptr(0),
1447  q_s_Equ_si_Node_Ptr(0),
1448  q_si_Equ_s_Node_Ptr(0),
1449  q_xf1_Equ_bi_Node_Ptr(0),
1450  q_xf1_Equ_ci_Node_Ptr(0),
1451  q_xf1_Equ_ei_Node_Ptr(0),
1452  q_xf1_Equ_dt_Node_Ptr(0),
1453  q_xf1_Equ_xf2_Node_Ptr(0),
1454  q_xf2_Equ_xf1_Node_Ptr(0),
1455  q_xf2_Equ_xf2_Node_Ptr(0),
1456  q_dt_Equ_dt_Node_Ptr(0),
1457  q_dt_Equ_bp_Node_Ptr(0),
1458  q_dt_Equ_cx_Node_Ptr(0),
1459  q_dt_Equ_e_Node_Ptr(0),
1460  q_dt_Equ_ei_Node_Ptr(0),
1461  q_dt_Equ_bx_Node_Ptr(0),
1462  q_dt_Equ_bi_Node_Ptr(0),
1463  q_dt_Equ_b_Node_Ptr(0),
1464  q_dt_Equ_ci_Node_Ptr(0),
1465  q_dt_Equ_c_Node_Ptr(0),
1466  q_dt_Equ_si_Node_Ptr(0),
1467  q_dt_Equ_s_Node_Ptr(0),
1468  q_dt_Equ_xf2_Node_Ptr(0),
1469  q_bi_Equ_cx_Node_Ptr(0),
1470  q_ei_Equ_cx_Node_Ptr(0),
1471  q_b_Equ_e_Node_Ptr(0),
1472  q_e_Equ_b_Node_Ptr(0),
1473  q_b_Equ_c_Node_Ptr(0),
1474  q_c_Equ_b_Node_Ptr(0),
1475  q_xf1_Equ_xf1_Node_Ptr(0),
1476  admsTemperature(getDeviceOptions().temp.getImmutableValue<double>()),
1477  dtExternalNodeMode(false),
1478  cxExternalNodeMode(false),
1479  ciExternalNodeMode(false),
1480  bxExternalNodeMode(false),
1481  biExternalNodeMode(false),
1482  eiExternalNodeMode(false)
1483 
1484 {
1485  numIntVars = 10 + 0;
1486  numExtVars = 4;
1487 
1488 
1489  // Right now, we only have state for limited probes...
1490  numStateVars = 8;
1491 
1492  // Manually inserted code: detect extra nodes given on instance line,
1493  // set external node mode for those normally-internal nodes.
1494  devConMap.resize(numExtVars);
1495  for (int j=0; j< numExtVars; j++)
1496  devConMap[j] = 1;
1497 
1498  if (instance_block.numExtVars > numExtVars)
1499  {
1500  devConMap.resize(instance_block.numExtVars);
1501  if (instance_block.numExtVars >= numExtVars+1)
1502  {
1503  dtExternalNodeMode=true;
1504  --numIntVars;
1505  devConMap[numExtVars] = 2;
1506  }
1507  if (instance_block.numExtVars >= numExtVars+2)
1508  {
1509  cxExternalNodeMode=true;
1510  --numIntVars;
1511  devConMap[numExtVars+1] = 1;
1512  }
1513  if (instance_block.numExtVars >= numExtVars+3)
1514  {
1515  ciExternalNodeMode=true;
1516  --numIntVars;
1517  devConMap[numExtVars+2] = 1;
1518  }
1519  if (instance_block.numExtVars >= numExtVars+4)
1520  {
1521  bxExternalNodeMode=true;
1522  --numIntVars;
1523  devConMap[numExtVars+3] = 1;
1524  }
1525  if (instance_block.numExtVars >= numExtVars+5)
1526  {
1527  biExternalNodeMode=true;
1528  --numIntVars;
1529  devConMap[numExtVars+4] = 1;
1530  }
1531  if (instance_block.numExtVars >= numExtVars+6)
1532  {
1533  eiExternalNodeMode=true;
1534  --numIntVars;
1535  devConMap[numExtVars+5] = 1;
1536  }
1537  numExtVars=instance_block.numExtVars;
1538  }
1539  // End manually inserted code
1540 
1541  // Set up jacobian stamp:
1542 
1543  if (jacStamp.empty())
1544  {
1545  jacStamp.resize(14);
1546  jacStamp[admsNodeID_c].resize(4);
1551  jacStamp[admsNodeID_b].resize(5);
1557  jacStamp[admsNodeID_e].resize(4);
1562  jacStamp[admsNodeID_s].resize(3);
1566  jacStamp[admsNodeID_dt].resize(13);
1580  jacStamp[admsNodeID_cx].resize(9);
1590  jacStamp[admsNodeID_ci].resize(9);
1600  jacStamp[admsNodeID_bx].resize(10);
1611  jacStamp[admsNodeID_bi].resize(9);
1621  jacStamp[admsNodeID_ei].resize(10);
1632  jacStamp[admsNodeID_bp].resize(8);
1641  jacStamp[admsNodeID_si].resize(8);
1650  jacStamp[admsNodeID_xf1].resize(6);
1657  jacStamp[admsNodeID_xf2].resize(2);
1660 
1661 
1662  // This is really not strictly necessary when not mapping away nodes,
1663  // but makes life easier when we get to registerJacLIDs. This block
1664  // simply makes a map that leaves everything in place. Later, when we
1665  // start making nodes go away, we will need to modify this.
1666 
1667  int mapSize = jacStamp.size();
1668  jacMap.clear();
1669  jacMap2.clear();
1670  jacMap.resize(mapSize);
1671  jacMap2.resize(mapSize);
1672  for (int i=0;i<mapSize;++i)
1673  {
1674  int rowSize=jacStamp[i].size();
1675  jacMap[i]=i;
1676  jacMap2[i].resize(rowSize);
1677  for (int j=0;j<rowSize;++j)
1678  {
1679  jacMap2[i][j] = j;
1680  }
1681  }
1682 
1683  }
1684 
1685 
1686  setDefaultParams();
1687  setParams(instance_block.params);
1688 
1689  // Real bogosity here...
1690  if (!given("XYCEADMSINSTTEMP"))
1691  admsInstTemp=getDeviceOptions().temp.getImmutableValue<double>();
1692 
1693  //calculate any parameters specified as expressions
1695 
1696  // calculate dependent (i.e. computed params) and check for errors.
1697  processParams();
1698 }
1699 
1700 //-----------------------------------------------------------------------------
1701 // Function : Instance::~Instance
1702 // Purpose : destructor
1703 // Special Notes :
1704 // Scope : public
1705 // Creator : admsXml
1706 // Creation Date :
1707 //-----------------------------------------------------------------------------
1709 {
1710 }
1711 
1712 //-----------------------------------------------------------------------------
1713 // Function : Instance::registerLIDs
1714 // Purpose : function for registering, and setting up, local ID's.
1715 // Special Notes :
1716 // Scope : public
1717 // Creator : admsXml
1718 // Creation Date :
1719 //-----------------------------------------------------------------------------
1720 void Instance::registerLIDs( const LocalIdVector & intLIDVecRef,
1721  const LocalIdVector & extLIDVecRef)
1722 {
1723  AssertLIDs(intLIDVecRef.size() == numIntVars);
1724  AssertLIDs(extLIDVecRef.size() == numExtVars);
1725 
1726  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS))
1727  {
1728  Xyce::dout() << std::endl << section_divider << std::endl
1729  << "In ADMSvbic13_4t::Instance::register LIDs\n\n"
1730  << "name = " << getName() << std::endl
1731  << "number of internal variables: " << numIntVars << std::endl
1732  << "number of external variables: " << numExtVars << std::endl;
1733  }
1734 
1735  // copy over the global ID lists.
1736  intLIDVec = intLIDVecRef;
1737  extLIDVec = extLIDVecRef;
1738 
1739  // Now use these lists to obtain the indices into the linear algebra
1740  // entities. This assumes an order.
1741  int i=0;
1742  li_c = extLIDVecRef[i++];
1743  li_b = extLIDVecRef[i++];
1744  li_e = extLIDVecRef[i++];
1745  li_s = extLIDVecRef[i++];
1746 
1747 
1748  int j=i;
1749  i=0;
1750  if (dtExternalNodeMode)
1751  li_dt = extLIDVecRef[j++];
1752  else
1753  li_dt = intLIDVecRef[i++];
1754  if (cxExternalNodeMode)
1755  li_cx = extLIDVecRef[j++];
1756  else
1757  li_cx = intLIDVecRef[i++];
1758  if (ciExternalNodeMode)
1759  li_ci = extLIDVecRef[j++];
1760  else
1761  li_ci = intLIDVecRef[i++];
1762  if (bxExternalNodeMode)
1763  li_bx = extLIDVecRef[j++];
1764  else
1765  li_bx = intLIDVecRef[i++];
1766  if (biExternalNodeMode)
1767  li_bi = extLIDVecRef[j++];
1768  else
1769  li_bi = intLIDVecRef[i++];
1770  if (eiExternalNodeMode)
1771  li_ei = extLIDVecRef[j++];
1772  else
1773  li_ei = intLIDVecRef[i++];
1774  li_bp = intLIDVecRef[i++];
1775  li_si = intLIDVecRef[i++];
1776  li_xf1 = intLIDVecRef[i++];
1777  li_xf2 = intLIDVecRef[i++];
1778 
1779 
1780  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS))
1781  {
1782  Xyce::dout() << "\nSolution and RHS variables:\n";
1783  Xyce::dout() << "\nli_c = " << li_c << std::endl;
1784  Xyce::dout() << "\nli_b = " << li_b << std::endl;
1785  Xyce::dout() << "\nli_e = " << li_e << std::endl;
1786  Xyce::dout() << "\nli_s = " << li_s << std::endl;
1787  Xyce::dout() << "\nli_dt = " << li_dt << std::endl;
1788  Xyce::dout() << "\nli_cx = " << li_cx << std::endl;
1789  Xyce::dout() << "\nli_ci = " << li_ci << std::endl;
1790  Xyce::dout() << "\nli_bx = " << li_bx << std::endl;
1791  Xyce::dout() << "\nli_bi = " << li_bi << std::endl;
1792  Xyce::dout() << "\nli_ei = " << li_ei << std::endl;
1793  Xyce::dout() << "\nli_bp = " << li_bp << std::endl;
1794  Xyce::dout() << "\nli_si = " << li_si << std::endl;
1795  Xyce::dout() << "\nli_xf1 = " << li_xf1 << std::endl;
1796  Xyce::dout() << "\nli_xf2 = " << li_xf2 << std::endl;
1797 
1798  Xyce::dout() << "\nEnd of ADMSvbic13_4t::Instance::register LIDs\n";
1799  Xyce::dout() << section_divider << std::endl;
1800  }
1801 }
1802 
1803 //-----------------------------------------------------------------------------
1804 // Function : Instance::loadNodeSymbols
1805 // Purpose :
1806 // Special Notes :
1807 // Scope : public
1808 // Creator : admsXml
1809 // Creation Date :
1810 //-----------------------------------------------------------------------------
1811 void Instance::loadNodeSymbols(Util::SymbolTable &symbol_table) const
1812 {
1813  addInternalNode(symbol_table, li_dt, getName(), "dt");
1814  addInternalNode(symbol_table, li_cx, getName(), "cx");
1815  addInternalNode(symbol_table, li_ci, getName(), "ci");
1816  addInternalNode(symbol_table, li_bx, getName(), "bx");
1817  addInternalNode(symbol_table, li_bi, getName(), "bi");
1818  addInternalNode(symbol_table, li_ei, getName(), "ei");
1819  addInternalNode(symbol_table, li_bp, getName(), "bp");
1820  addInternalNode(symbol_table, li_si, getName(), "si");
1821  addInternalNode(symbol_table, li_xf1, getName(), "xf1");
1822  addInternalNode(symbol_table, li_xf2, getName(), "xf2");
1823 }
1824 
1825 //-----------------------------------------------------------------------------
1826 // Function : Instance::registerStateLIDs
1827 // Purpose :
1828 // Special Notes :
1829 // Scope : public
1830 // Creator : admsXml
1831 // Creation Date :
1832 //-----------------------------------------------------------------------------
1833 void Instance::registerStateLIDs( const LocalIdVector & staLIDVecRef)
1834 {
1835  AssertLIDs(staLIDVecRef.size() == numStateVars);
1836 
1837  int numSta = staLIDVecRef.size();
1838  if (numSta > 0)
1839  {
1840  int i=0;
1841  staLIDVec = staLIDVecRef;
1842 
1851  }
1852 }
1853 
1854 //-----------------------------------------------------------------------------
1855 // Function : Instance::jacobianStamp
1856 // Purpose :
1857 // Special Notes : In initial version, we won't support mapping away nodes
1858 // Scope : public
1859 // Creator : admsXml
1860 // Creation Date :
1861 //-----------------------------------------------------------------------------
1863 {
1864  return jacStamp;
1865 }
1866 
1867 //-----------------------------------------------------------------------------
1868 // Function : Instance::registerJacLIDs
1869 // Purpose : Create Offset variables used for referencing jacobian
1870 // elements
1871 // Special Notes :
1872 // Scope : public
1873 // Creator : admsXml
1874 // Creation Date :
1875 //-----------------------------------------------------------------------------
1877 {
1879  std::vector<int> & map=jacMap;
1880  std::vector< std::vector<int> > & map2=jacMap2;
1881 
1882 
1883  // do nothing, we won't use the jac lids anymore, we'll use pointers
1884 
1885 }
1886 
1887 //-----------------------------------------------------------------------------
1888 // Function : Instance::setupPointers
1889 // Purpose : Create pointer variables used for referencing jacobian
1890 // elements
1891 // Special Notes :
1892 // Scope : public
1893 // Creator : admsXml
1894 // Creation Date :
1895 //-----------------------------------------------------------------------------
1897 {
1898 
1899  Linear::Matrix * dFdxMatPtr = extData.dFdxMatrixPtr;
1900  Linear::Matrix * dQdxMatPtr = extData.dQdxMatrixPtr;
1901  f_c_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_dt);
1902  q_c_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_dt);
1903  f_c_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_c);
1904  q_c_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_c);
1905  f_c_Equ_cx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_cx);
1906  q_c_Equ_cx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_cx);
1907  f_c_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_b);
1908  q_c_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_b);
1909  f_b_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_dt);
1910  q_b_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_dt);
1911  f_b_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_b);
1912  q_b_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_b);
1913  f_b_Equ_bx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_bx);
1914  q_b_Equ_bx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_bx);
1915  f_b_Equ_e_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_e);
1916  q_b_Equ_e_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_e);
1917  f_b_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_c);
1918  q_b_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_c);
1919  f_e_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e,li_dt);
1920  q_e_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e,li_dt);
1921  f_e_Equ_e_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e,li_e);
1922  q_e_Equ_e_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e,li_e);
1923  f_e_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e,li_ei);
1924  q_e_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e,li_ei);
1925  f_e_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e,li_b);
1926  q_e_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e,li_b);
1927  f_s_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_s,li_dt);
1928  q_s_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_s,li_dt);
1929  f_s_Equ_s_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_s,li_s);
1930  q_s_Equ_s_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_s,li_s);
1931  f_s_Equ_si_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_s,li_si);
1932  q_s_Equ_si_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_s,li_si);
1933  f_dt_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_dt);
1934  q_dt_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_dt);
1935  f_dt_Equ_bp_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_bp);
1936  q_dt_Equ_bp_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_bp);
1937  f_dt_Equ_cx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_cx);
1938  q_dt_Equ_cx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_cx);
1939  f_dt_Equ_e_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_e);
1940  q_dt_Equ_e_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_e);
1941  f_dt_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_ei);
1942  q_dt_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_ei);
1943  f_dt_Equ_bx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_bx);
1944  q_dt_Equ_bx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_bx);
1945  f_dt_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_bi);
1946  q_dt_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_bi);
1947  f_dt_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_b);
1948  q_dt_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_b);
1949  f_dt_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_ci);
1950  q_dt_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_ci);
1951  f_dt_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_c);
1952  q_dt_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_c);
1953  f_dt_Equ_si_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_si);
1954  q_dt_Equ_si_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_si);
1955  f_dt_Equ_s_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_s);
1956  q_dt_Equ_s_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_s);
1957  f_dt_Equ_xf2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_xf2);
1958  q_dt_Equ_xf2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_xf2);
1959  f_cx_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_cx,li_bi);
1960  q_cx_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_cx,li_bi);
1961  f_cx_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_cx,li_ci);
1962  q_cx_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_cx,li_ci);
1963  f_cx_Equ_bx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_cx,li_bx);
1964  q_cx_Equ_bx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_cx,li_bx);
1965  f_cx_Equ_cx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_cx,li_cx);
1966  q_cx_Equ_cx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_cx,li_cx);
1967  f_cx_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_cx,li_dt);
1968  q_cx_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_cx,li_dt);
1969  f_cx_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_cx,li_c);
1970  q_cx_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_cx,li_c);
1971  f_cx_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_cx,li_ei);
1972  q_cx_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_cx,li_ei);
1973  f_cx_Equ_bp_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_cx,li_bp);
1974  q_cx_Equ_bp_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_cx,li_bp);
1975  f_cx_Equ_si_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_cx,li_si);
1976  q_cx_Equ_si_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_cx,li_si);
1977  f_ci_Equ_xf2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_xf2);
1978  q_ci_Equ_xf2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_xf2);
1979  f_ci_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_bi);
1980  q_ci_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_bi);
1981  f_ci_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_ei);
1982  q_ci_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_ei);
1983  f_ci_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_ci);
1984  q_ci_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_ci);
1985  f_ci_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_dt);
1986  q_ci_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_dt);
1987  f_ci_Equ_bx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_bx);
1988  q_ci_Equ_bx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_bx);
1989  f_ci_Equ_bp_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_bp);
1990  q_ci_Equ_bp_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_bp);
1991  f_ci_Equ_si_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_si);
1992  q_ci_Equ_si_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_si);
1993  f_ci_Equ_cx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_cx);
1994  q_ci_Equ_cx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_cx);
1995  f_bx_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bx,li_bi);
1996  q_bx_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bx,li_bi);
1997  f_bx_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bx,li_ei);
1998  q_bx_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bx,li_ei);
1999  f_bx_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bx,li_ci);
2000  q_bx_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bx,li_ci);
2001  f_bx_Equ_bx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bx,li_bx);
2002  q_bx_Equ_bx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bx,li_bx);
2003  f_bx_Equ_bp_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bx,li_bp);
2004  q_bx_Equ_bp_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bx,li_bp);
2005  f_bx_Equ_si_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bx,li_si);
2006  q_bx_Equ_si_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bx,li_si);
2007  f_bx_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bx,li_dt);
2008  q_bx_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bx,li_dt);
2009  f_bx_Equ_cx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bx,li_cx);
2010  q_bx_Equ_cx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bx,li_cx);
2011  f_bx_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bx,li_c);
2012  q_bx_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bx,li_c);
2013  f_bx_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bx,li_b);
2014  q_bx_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bx,li_b);
2015  f_bi_Equ_bx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_bx);
2016  q_bi_Equ_bx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_bx);
2017  f_bi_Equ_bp_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_bp);
2018  q_bi_Equ_bp_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_bp);
2019  f_bi_Equ_si_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_si);
2020  q_bi_Equ_si_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_si);
2021  f_bi_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_bi);
2022  q_bi_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_bi);
2023  f_bi_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_ci);
2024  q_bi_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_ci);
2025  f_bi_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_ei);
2026  q_bi_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_ei);
2027  f_bi_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_dt);
2028  q_bi_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_dt);
2029  f_bi_Equ_xf2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_xf2);
2030  q_bi_Equ_xf2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_xf2);
2031  f_bi_Equ_cx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_cx);
2032  q_bi_Equ_cx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_cx);
2033  f_ei_Equ_bx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_bx);
2034  q_ei_Equ_bx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_bx);
2035  f_ei_Equ_bp_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_bp);
2036  q_ei_Equ_bp_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_bp);
2037  f_ei_Equ_si_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_si);
2038  q_ei_Equ_si_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_si);
2039  f_ei_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_bi);
2040  q_ei_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_bi);
2041  f_ei_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_ci);
2042  q_ei_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_ci);
2043  f_ei_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_ei);
2044  q_ei_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_ei);
2045  f_ei_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_dt);
2046  q_ei_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_dt);
2047  f_ei_Equ_xf2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_xf2);
2048  q_ei_Equ_xf2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_xf2);
2049  f_ei_Equ_e_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_e);
2050  q_ei_Equ_e_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_e);
2051  f_ei_Equ_cx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_cx);
2052  q_ei_Equ_cx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_cx);
2053  f_bp_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bp,li_bi);
2054  q_bp_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bp,li_bi);
2055  f_bp_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bp,li_ei);
2056  q_bp_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bp,li_ei);
2057  f_bp_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bp,li_ci);
2058  q_bp_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bp,li_ci);
2059  f_bp_Equ_bx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bp,li_bx);
2060  q_bp_Equ_bx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bp,li_bx);
2061  f_bp_Equ_bp_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bp,li_bp);
2062  q_bp_Equ_bp_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bp,li_bp);
2063  f_bp_Equ_si_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bp,li_si);
2064  q_bp_Equ_si_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bp,li_si);
2065  f_bp_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bp,li_dt);
2066  q_bp_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bp,li_dt);
2067  f_bp_Equ_cx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bp,li_cx);
2068  q_bp_Equ_cx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bp,li_cx);
2069  f_si_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_si,li_bi);
2070  q_si_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_si,li_bi);
2071  f_si_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_si,li_ei);
2072  q_si_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_si,li_ei);
2073  f_si_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_si,li_ci);
2074  q_si_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_si,li_ci);
2075  f_si_Equ_bx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_si,li_bx);
2076  q_si_Equ_bx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_si,li_bx);
2077  f_si_Equ_bp_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_si,li_bp);
2078  q_si_Equ_bp_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_si,li_bp);
2079  f_si_Equ_si_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_si,li_si);
2080  q_si_Equ_si_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_si,li_si);
2081  f_si_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_si,li_dt);
2082  q_si_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_si,li_dt);
2083  f_si_Equ_s_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_si,li_s);
2084  q_si_Equ_s_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_si,li_s);
2085  f_xf1_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_xf1,li_bi);
2086  q_xf1_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_xf1,li_bi);
2087  f_xf1_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_xf1,li_ci);
2088  q_xf1_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_xf1,li_ci);
2089  f_xf1_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_xf1,li_ei);
2090  q_xf1_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_xf1,li_ei);
2091  f_xf1_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_xf1,li_dt);
2092  q_xf1_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_xf1,li_dt);
2093  f_xf1_Equ_xf2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_xf1,li_xf2);
2094  q_xf1_Equ_xf2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_xf1,li_xf2);
2095  f_xf1_Equ_xf1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_xf1,li_xf1);
2096  q_xf1_Equ_xf1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_xf1,li_xf1);
2097  f_xf2_Equ_xf1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_xf2,li_xf1);
2098  q_xf2_Equ_xf1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_xf2,li_xf1);
2099  f_xf2_Equ_xf2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_xf2,li_xf2);
2100  q_xf2_Equ_xf2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_xf2,li_xf2);
2101 
2102 
2103 }
2104 
2105 // RHS load functions
2106 
2107 //-----------------------------------------------------------------------------
2108 // Function : Instance::loadDAEFVector
2109 // Purpose : load F vector (static contributions) for one instance for
2110 // NEW DAE formulation
2111 // Special Notes :
2112 // Scope : public
2113 // Creator : admsXml
2114 // Creation Date :
2115 //-----------------------------------------------------------------------------
2117 {
2118 
2119  bool bsuccess=true;
2120 
2136  {
2137  double *dFdxdVp = extData.dFdxdVpVectorRawPtr;
2138  dFdxdVp[li_c] += Jdxp_static[admsNodeID_c];
2139  dFdxdVp[li_b] += Jdxp_static[admsNodeID_b];
2140  dFdxdVp[li_e] += Jdxp_static[admsNodeID_e];
2141  dFdxdVp[li_s] += Jdxp_static[admsNodeID_s];
2142  dFdxdVp[li_dt] += Jdxp_static[admsNodeID_dt];
2143  dFdxdVp[li_cx] += Jdxp_static[admsNodeID_cx];
2144  dFdxdVp[li_ci] += Jdxp_static[admsNodeID_ci];
2145  dFdxdVp[li_bx] += Jdxp_static[admsNodeID_bx];
2146  dFdxdVp[li_bi] += Jdxp_static[admsNodeID_bi];
2147  dFdxdVp[li_ei] += Jdxp_static[admsNodeID_ei];
2148  dFdxdVp[li_bp] += Jdxp_static[admsNodeID_bp];
2149  dFdxdVp[li_si] += Jdxp_static[admsNodeID_si];
2150  dFdxdVp[li_xf1] += Jdxp_static[admsNodeID_xf1];
2151  dFdxdVp[li_xf2] += Jdxp_static[admsNodeID_xf2];
2152 
2153  }
2154 
2155  return bsuccess;
2156 }
2157 
2158 //-----------------------------------------------------------------------------
2159 // Function : Instance::loadDAEQVector
2160 // Purpose : load Q vector (dynamic contributions) for one instance for
2161 // NEW DAE formulation
2162 // Special Notes :
2163 // Scope : public
2164 // Creator : admsXml
2165 // Creation Date :
2166 //-----------------------------------------------------------------------------
2168 {
2184  {
2185  double *dQdxdVp = extData.dQdxdVpVectorRawPtr;
2186  dQdxdVp[li_c] += Jdxp_dynamic[admsNodeID_c];
2187  dQdxdVp[li_b] += Jdxp_dynamic[admsNodeID_b];
2188  dQdxdVp[li_e] += Jdxp_dynamic[admsNodeID_e];
2189  dQdxdVp[li_s] += Jdxp_dynamic[admsNodeID_s];
2190  dQdxdVp[li_dt] += Jdxp_dynamic[admsNodeID_dt];
2191  dQdxdVp[li_cx] += Jdxp_dynamic[admsNodeID_cx];
2192  dQdxdVp[li_ci] += Jdxp_dynamic[admsNodeID_ci];
2193  dQdxdVp[li_bx] += Jdxp_dynamic[admsNodeID_bx];
2194  dQdxdVp[li_bi] += Jdxp_dynamic[admsNodeID_bi];
2195  dQdxdVp[li_ei] += Jdxp_dynamic[admsNodeID_ei];
2196  dQdxdVp[li_bp] += Jdxp_dynamic[admsNodeID_bp];
2197  dQdxdVp[li_si] += Jdxp_dynamic[admsNodeID_si];
2198  dQdxdVp[li_xf1] += Jdxp_dynamic[admsNodeID_xf1];
2199  dQdxdVp[li_xf2] += Jdxp_dynamic[admsNodeID_xf2];
2200  }
2201 
2202  return true;
2203 }
2204 
2205 
2206 //-----------------------------------------------------------------------------
2207 // Function : Instance::updatePrimaryState
2208 // Purpose :
2209 // Special Notes : In this initial implementation, does little more than
2210 // call updateIntermediateVars()
2211 // Scope : public
2212 // Creator : admsXml
2213 // Creation Date :
2214 //-----------------------------------------------------------------------------
2216 {
2217  bool bsuccess = true;
2218 
2219  bsuccess = updateIntermediateVars();
2220 
2221  // if old DAE were implemented, we'd save dynamic contributions as state
2222  // here.
2223 
2224  double * staVec = extData.nextStaVectorRawPtr;
2225  // Also need to save limited voltage drops
2226  // This formulation assumes that we have *always* written the
2227  // limited voltages back into the probeVars[] array.
2228 
2237 
2238  return bsuccess;
2239 }
2240 
2241 //-----------------------------------------------------------------------------
2242 // Function : Instance::updateSecondaryState
2243 // Purpose :
2244 // Special Notes : In this initial implementation, does nothing
2245 // Scope : public
2246 // Creator : admsXml
2247 // Creation Date :
2248 //-----------------------------------------------------------------------------
2250 {
2251  bool bsuccess = true;
2252 
2253  // were old DAE implemented, we'd pull dynamic contribution derivatives
2254  // out of state.
2255 
2256  return bsuccess;
2257 }
2258 
2259 //-----------------------------------------------------------------------------
2260 // Function : Instance::updateIntermediateVars
2261 // Purpose : update intermediate variables for one vbic13_4t instance
2262 // Special Notes :
2263 // Scope : public
2264 // Creator : admsXml
2265 // Creation Date :
2266 //-----------------------------------------------------------------------------
2268 {
2269 
2270  bool bsuccess=true;
2271  Linear::Vector * solVectorPtr = extData.nextSolVectorPtr;
2272 
2273  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
2274  {
2275  Xyce::dout() << std::endl << subsection_divider << std::endl;
2276  Xyce::dout() << " In ADMSvbic13_4t::Instance::updateIntermediateVars\n\n";
2277  Xyce::dout() << " name = " << getName() << std::endl;
2278  }
2279 
2280  // Local variables
2281  // temporary variables for limiting
2282  double Vbe_orig,Vbe_limited,Vbe_old;
2283  double Vbep_orig,Vbep_limited,Vbep_old;
2284  double Vbxcx_orig,Vbxcx_limited,Vbxcx_old;
2285  double Vbcx_orig,Vbcx_limited,Vbcx_old;
2286  double Vbci_orig,Vbci_limited,Vbci_old;
2287  double Vbex_orig,Vbex_limited,Vbex_old;
2288  double Vbei_orig,Vbei_limited,Vbei_old;
2289  double dt_et_orig,dt_et_limited,dt_et_old;
2290 
2291 
2292  // set the sizes of the Fad arrays:
2293 
2294  if (probeVars.size() != (21))
2295  {
2296  probeVars.resize(21);
2297  staticContributions.resize(14+0);
2298  dynamicContributions.resize(14+0);
2299  probeDiffs.resize(21,0.0);
2300  Jdxp_static.resize(14+0);
2301  Jdxp_dynamic.resize(14+0);
2302  }
2303 
2304  // initialize contributions to zero (automatically sets derivatives to zero)
2305  for (int i=0; i < 14+0 ; ++i)
2306  {
2307  staticContributions[i]=0;
2308  dynamicContributions[i]=0;
2309  Jdxp_static[i]=0;
2310  Jdxp_dynamic[i]=0;
2311  }
2312 
2313  for (int i=0; i < 21 ; ++i)
2314  {
2315  probeDiffs[i] = 0.0;
2316  }
2317  // extract solution variables and set as Fad independent variables.
2318 
2319  probeVars[admsProbeID_V_xf2_GND] = (*solVectorPtr)[li_xf2];
2321 
2322  probeVars[admsProbeID_V_xf1_GND] = (*solVectorPtr)[li_xf1];
2324 
2325  probeVars[admsProbeID_V_s_si] = (*solVectorPtr)[li_s] - (*solVectorPtr)[li_si];
2327 
2328  probeVars[admsProbeID_V_bx_si] = (*solVectorPtr)[li_bx] - (*solVectorPtr)[li_si];
2330 
2331  probeVars[admsProbeID_V_si_bp] = (*solVectorPtr)[li_si] - (*solVectorPtr)[li_bp];
2333 
2334  probeVars[admsProbeID_V_bp_cx] = (*solVectorPtr)[li_bp] - (*solVectorPtr)[li_cx];
2336 
2337  probeVars[admsProbeID_V_e_ei] = (*solVectorPtr)[li_e] - (*solVectorPtr)[li_ei];
2339 
2340  probeVars[admsProbeID_V_bx_bi] = (*solVectorPtr)[li_bx] - (*solVectorPtr)[li_bi];
2342 
2343  probeVars[admsProbeID_V_b_bx] = (*solVectorPtr)[li_b] - (*solVectorPtr)[li_bx];
2345 
2346  probeVars[admsProbeID_V_cx_ci] = (*solVectorPtr)[li_cx] - (*solVectorPtr)[li_ci];
2348 
2349  probeVars[admsProbeID_V_c_cx] = (*solVectorPtr)[li_c] - (*solVectorPtr)[li_cx];
2351 
2352  probeVars[admsProbeID_V_b_c] = (*solVectorPtr)[li_b] - (*solVectorPtr)[li_c];
2354 
2355  probeVars[admsProbeID_V_b_e] = (*solVectorPtr)[li_b] - (*solVectorPtr)[li_e];
2357 
2358  probeVars[admsProbeID_V_bx_bp] = (*solVectorPtr)[li_bx] - (*solVectorPtr)[li_bp];
2360 
2361  probeVars[admsProbeID_V_ci_ei] = (*solVectorPtr)[li_ci] - (*solVectorPtr)[li_ei];
2363 
2364  probeVars[admsProbeID_V_bx_cx] = (*solVectorPtr)[li_bx] - (*solVectorPtr)[li_cx];
2366 
2367  probeVars[admsProbeID_V_bi_cx] = (*solVectorPtr)[li_bi] - (*solVectorPtr)[li_cx];
2369 
2370  probeVars[admsProbeID_V_bi_ci] = (*solVectorPtr)[li_bi] - (*solVectorPtr)[li_ci];
2372 
2373  probeVars[admsProbeID_V_bx_ei] = (*solVectorPtr)[li_bx] - (*solVectorPtr)[li_ei];
2375 
2376  probeVars[admsProbeID_V_bi_ei] = (*solVectorPtr)[li_bi] - (*solVectorPtr)[li_ei];
2378 
2379  probeVars[admsProbeID_Temp_dt_GND] = (*solVectorPtr)[li_dt];
2381 
2382 
2383  // pre-multiply any "typed" probes (i.e. those limited with "typedpnjlim")
2390 
2391  // Copy probes into limiting vars
2392  Vbe_orig = Vbe_limited = probeVars[admsProbeID_V_b_e].val();
2394  Vbep_orig = Vbep_limited = probeVars[admsProbeID_V_bx_bp].val();
2396  Vbxcx_orig = Vbxcx_limited = probeVars[admsProbeID_V_bx_cx].val();
2398  Vbcx_orig = Vbcx_limited = probeVars[admsProbeID_V_bi_cx].val();
2400  Vbci_orig = Vbci_limited = probeVars[admsProbeID_V_bi_ci].val();
2402  Vbex_orig = Vbex_limited = probeVars[admsProbeID_V_bx_ei].val();
2404  Vbei_orig = Vbei_limited = probeVars[admsProbeID_V_bi_ei].val();
2406  dt_et_orig = dt_et_limited = probeVars[admsProbeID_Temp_dt_GND].val();
2408 
2409  origFlag = true;
2410 
2411  if (getSolverState().newtonIter == 0)
2412  {
2413 
2414  if (!(getSolverState().dcopFlag)||(getSolverState().locaEnabledFlag && getSolverState().dcopFlag))
2415  {
2424  }
2425  else
2426  {
2427  Vbe_old = Vbe_limited;
2428  Vbep_old = Vbep_limited;
2429  Vbxcx_old = Vbxcx_limited;
2430  Vbcx_old = Vbcx_limited;
2431  Vbci_old = Vbci_limited;
2432  Vbex_old = Vbex_limited;
2433  Vbei_old = Vbei_limited;
2434  dt_et_old = dt_et_limited;
2435  }
2436  }
2437  else
2438  {
2447  }
2448 
2449  // -- code converted from analog/code block
2450  //Block-local variables for block analogBlock
2451  AdmsFadType is_t;
2452  AdmsFadType isrr_t;
2453  AdmsFadType ikf_t;
2454  AdmsFadType ibei_t;
2455  AdmsFadType ibci_t;
2456  AdmsFadType isp_t;
2457  AdmsFadType iben_t;
2458  AdmsFadType ibcn_t;
2459  //End of Block-local variables
2460  //Block-local variables for block analogBlock
2461  AdmsFadType ibeip_t;
2462  AdmsFadType ibenp_t;
2463  AdmsFadType ibcip_t;
2464  AdmsFadType ibcnp_t;
2465  //End of Block-local variables
2466  //Block-local variables for block analogBlock
2467  AdmsFadType rcx_t;
2468  AdmsFadType rci_t;
2469  AdmsFadType rbx_t;
2470  AdmsFadType rbi_t;
2471  AdmsFadType re_t;
2472  AdmsFadType rs_t;
2473  AdmsFadType rbp_t;
2474  AdmsFadType rth_t;
2475  //End of Block-local variables
2476  //Block-local variables for block analogBlock
2477  AdmsFadType pe_t;
2478  AdmsFadType pc_t;
2479  AdmsFadType ps_t;
2480  //End of Block-local variables
2481  //Block-local variables for block analogBlock
2482  AdmsFadType cje_t;
2483  AdmsFadType cjc_t;
2484  AdmsFadType cjep_t;
2485  AdmsFadType cjcp_t;
2486  //End of Block-local variables
2487  //Block-local variables for block analogBlock
2488  AdmsFadType nf_t;
2489  AdmsFadType nr_t;
2490  AdmsFadType avc2_t;
2491  AdmsFadType avcx2_t;
2492  AdmsFadType vbbe_t;
2493  AdmsFadType nbbe_t;
2494  AdmsFadType gamm_t;
2495  AdmsFadType vo_t;
2496  AdmsFadType ebbe_t;
2497  AdmsFadType vef_t;
2498  AdmsFadType ver_t;
2499  //End of Block-local variables
2500  //Block-local variables for block analogBlock
2501  AdmsFadType tdevC;
2502  AdmsFadType tdevK;
2503  double tiniK;
2504  AdmsFadType rT;
2505  AdmsFadType dT;
2506  //End of Block-local variables
2507  //Block-local variables for block analogBlock
2508  AdmsFadType Ivef;
2509  AdmsFadType Iver;
2510  AdmsFadType Iikf;
2511  double Iikr;
2512  double Iikp;
2513  AdmsFadType Ivo;
2514  double Ihrcf;
2515  double Ivtf;
2516  double Iitf;
2517  double sltf;
2518  //End of Block-local variables
2519  //Block-local variables for block analogBlock
2520  AdmsFadType Gcx;
2521  AdmsFadType Gci;
2522  AdmsFadType Gbx;
2523  AdmsFadType Gbi;
2524  AdmsFadType Ge;
2525  AdmsFadType Gbp;
2526  AdmsFadType Gs;
2527  AdmsFadType Gth;
2528  //End of Block-local variables
2529  //Block-local variables for block analogBlock
2530  double maxvIfi;
2531  double maxvIri;
2532  double maxvIp;
2533  double maxvIbbe;
2534  //End of Block-local variables
2535  //Block-local variables for block analogBlock
2536  double maxvIbei;
2537  double maxvIben;
2538  double maxvIbci;
2539  double maxvIbcn;
2540  double maxvIbeip;
2541  double maxvIbenp;
2542  double maxvIbcip;
2543  double maxvIbcnp;
2544  //End of Block-local variables
2545  //Block-local variables for block analogBlock
2546  AdmsFadType vtv;
2547  AdmsFadType Ifi;
2548  AdmsFadType Iri;
2549  AdmsFadType Itzf;
2550  AdmsFadType Itzr;
2551  AdmsFadType q1z;
2552  AdmsFadType q1;
2553  AdmsFadType q2;
2554  AdmsFadType qb;
2555  AdmsFadType Ifp;
2556  AdmsFadType Irp;
2557  AdmsFadType Iccp;
2558  AdmsFadType q2p;
2559  AdmsFadType qbp;
2560  //End of Block-local variables
2561  //Block-local variables for block analogBlock
2562  AdmsFadType Ibe;
2563  AdmsFadType Ibex;
2564  AdmsFadType Ibcj;
2565  AdmsFadType Ibc;
2566  AdmsFadType Ibep;
2567  AdmsFadType Ibcp;
2568  AdmsFadType Igc;
2569  AdmsFadType Igcx;
2570  AdmsFadType avalf;
2571  //End of Block-local variables
2572  //Block-local variables for block analogBlock
2573  AdmsFadType Ircx;
2574  AdmsFadType Irci;
2575  AdmsFadType Irbx;
2576  AdmsFadType Irbi;
2577  AdmsFadType Ire;
2578  AdmsFadType Irbp;
2579  AdmsFadType Irs;
2580  //End of Block-local variables
2581  //Block-local variables for block analogBlock
2582  AdmsFadType Kbci;
2583  AdmsFadType Kbcx;
2584  AdmsFadType rKp1;
2585  AdmsFadType Iohm;
2586  AdmsFadType derf;
2587  //End of Block-local variables
2588  //Block-local variables for block analogBlock
2589  AdmsFadType arg;
2590  AdmsFadType expi;
2591  AdmsFadType expn;
2592  AdmsFadType expx;
2593  AdmsFadType afac;
2594  //End of Block-local variables
2595  //Block-local variables for block analogBlock
2596  double VmaxExp;
2597  //End of Block-local variables
2598  //Block-local variables for block analogBlock
2599  AdmsFadType qdbe;
2600  AdmsFadType qdbex;
2601  AdmsFadType qdbc;
2602  AdmsFadType qdbep;
2603  AdmsFadType qdbcp;
2604  //End of Block-local variables
2605  //Block-local variables for block analogBlock
2606  AdmsFadType sgIf;
2607  AdmsFadType rIf;
2608  AdmsFadType mIf;
2609  AdmsFadType tff;
2610  //End of Block-local variables
2611  //Block-local variables for block analogBlock
2612  AdmsFadType Qbe;
2613  AdmsFadType Qbex;
2614  AdmsFadType Qbc;
2615  AdmsFadType Qbcx;
2616  AdmsFadType Qbep;
2617  AdmsFadType Qbcp;
2618  AdmsFadType Qbeo;
2619  AdmsFadType Qbco;
2620  //End of Block-local variables
2621  //Block-local variables for block analogBlock
2622  AdmsFadType Vxf1;
2623  AdmsFadType Vxf2;
2624  AdmsFadType Ixf1;
2625  AdmsFadType Ixf2;
2626  AdmsFadType Qxf1;
2627  AdmsFadType Qxf2;
2628  AdmsFadType Itxf;
2629  //End of Block-local variables
2630  //Block-local variables for block analogBlock
2631  AdmsFadType dt_et;
2632  AdmsFadType Ith;
2633  AdmsFadType power;
2634  AdmsFadType Irth;
2635  AdmsFadType Qcth;
2636  //End of Block-local variables
2637  //Block-local variables for block analogBlock
2638  AdmsFadType Vbei;
2639  AdmsFadType Vbci;
2640  AdmsFadType Vbex;
2641  AdmsFadType Vbep;
2642  AdmsFadType Vbcp;
2643  AdmsFadType Vbcx;
2644  AdmsFadType Vbxcx;
2645  AdmsFadType Bvbe;
2646  //End of Block-local variables
2647  //Block-local variables for block analogBlock
2648  AdmsFadType Vbe;
2649  AdmsFadType Vbc;
2650  AdmsFadType Vrcx;
2651  AdmsFadType Vrci;
2652  AdmsFadType Vrbx;
2653  AdmsFadType Vrbi;
2654  AdmsFadType Vre;
2655  AdmsFadType Vrbp;
2656  AdmsFadType Vrs;
2657  AdmsFadType Vcei;
2658  AdmsFadType Vcep;
2659  //End of Block-local variables
2660  //Block-local variables for block analogBlock
2661  double scaleFac;
2662  double shrinkL;
2663  double gminMod;
2664  double imaxMod;
2665  double mMod;
2666  //End of Block-local variables
2667  //Block-local variables for block analogBlock
2668  double ic;
2669  double ib;
2670  double ie;
2671  double isub;
2672  double powerT;
2673  double powerD;
2674  double Vce;
2675  //End of Block-local variables
2676  //Block-local variables for block analogBlock
2677  double Ircx_Vrcx;
2678  double Irci_Vrci;
2679  double Irbx_Vrbx;
2680  double Irbi_Vrbi;
2681  double Irbp_Vrbp;
2682  double Ire_Vre;
2683  double Irs_Vrs;
2684  //End of Block-local variables
2685  //Block-local variables for block analogBlock
2686  double tauTh;
2687  double gci_eff;
2688  AdmsFadType Iibk;
2689  AdmsFadType Ibk;
2690  AdmsFadType VcbFac;
2691  //End of Block-local variables
2692  //Block-local variables for block analogBlock
2693  double tVCrit;
2694  //End of Block-local variables
2695  //Begin block initializeModel
2696  {
2697  scaleFac = (model_.scale);
2698  shrinkL = (1.0-(0.01*(model_.shrink)));
2699  if ((model_.given("gmin")))
2700  {
2701  gminMod = (model_.gmin);
2702  }
2703  else
2704  {
2705  gminMod = getDeviceOptions().gmin;
2706  }
2707  mMod = m;
2708  if ((model_.given("pnjmaxi")))
2709  {
2710  imaxMod = (model_.pnjmaxi);
2711  }
2712  else
2713  {
2714  imaxMod = 1.0;
2715  }
2716  if ((model_.given("npn")))
2717  {
2718  (model_.VBICtype) = 1.0;
2719  }
2720  else
2721  {
2722  if ((model_.given("pnp")))
2723  {
2724  (model_.VBICtype) = (-1.0);
2725  }
2726  else
2727  {
2728  if ((model_.given("type")))
2729  {
2730  (model_.VBICtype) = (-(model_.type));
2731  }
2732  }
2733  }
2734  VmaxExp = log((model_.maxexp));
2735  Iikr = (((model_.ikr)>0.0)?(1.0/(model_.ikr)):0.0);
2736  Iikp = (((model_.ikp)>0.0)?(1.0/(model_.ikp)):0.0);
2737  Ihrcf = (((model_.hrcf)>0.0)?(1.0/(model_.hrcf)):0.0);
2738  Ivtf = (((model_.vtf)>0.0)?(1.0/(model_.vtf)):0.0);
2739  Iitf = (((model_.itf)>0.0)?(1.0/(model_.itf)):0.0);
2740  sltf = (((model_.itf)>0.0)?0.0:1.0);
2741  tiniK = (273.15+(model_.tnom));
2742  }
2743  // End block initializeModel
2744  //Begin block initializeInstance
2745  {
2746  tdevC = ((admsTemperature+trise)-273.15);
2747  if ((tdevC<(model_.tmin)))
2748  {
2749  std::cerr << "WARNING: ambient temperature is lower than allowed minimum" << std::endl;
2750  }
2751  if ((tdevC>(model_.tmax)))
2752  {
2753  std::cerr << "WARNING: ambient temperature is higher than allowed maximum" << std::endl;
2754  }
2755  if ((tdevC<((model_.tminclip)+1.0)))
2756  {
2757  tdevC = ((model_.tminclip)+exp(((tdevC-(model_.tminclip))-1.0)));
2758  }
2759  else
2760  {
2761  if ((tdevC>((model_.tmaxclip)-1.0)))
2762  {
2763  tdevC = ((model_.tmaxclip)-exp((((model_.tmaxclip)-tdevC)-1.0)));
2764  }
2765  else
2766  {
2767  tdevC = tdevC;
2768  }
2769  }
2770  tdevK = (tdevC+273.15);
2771  vtv = ((1.380662e-23*tdevK)/1.602189e-19);
2772  rT = (tdevK/tiniK);
2773  tVCrit = (adms_vt(admsTemperature)*log((adms_vt(admsTemperature)/(1.41421356237309504880*(model_.is)))));
2774  if (((model_.ibbe)>0.0))
2775  {
2776  maxvIbbe = (((model_.nbbe)*vtv.val())*log((exp(((-(model_.vbbe))/((model_.nbbe)*vtv.val())))+(imaxMod/(model_.ibbe)))));
2777  }
2778  else
2779  {
2780  maxvIbbe = 0.0;
2781  }
2782  is_t = (((model_.is)*pow(rT,((model_.xis)/(model_.nf))))*exp((((-(model_.ea))*(1.0-rT))/(vtv*(model_.nf)))));
2783  if ((is_t>0.0))
2784  {
2785  if ((((model_.ikf)>0.0)&&(imaxMod>(model_.ikf))))
2786  {
2787  maxvIfi = (((model_.nf)*vtv.val())*log((1.0+(pow(((0.5*imaxMod)*pow((4.0/(model_.ikf)),(model_.nkf))),(1.0/(1.0-(model_.nkf))))/is_t.val()))));
2788  }
2789  else
2790  {
2791  maxvIfi = (((model_.nf)*vtv.val())*log((1.0+(imaxMod/is_t.val()))));
2792  }
2793  }
2794  else
2795  {
2796  maxvIfi = 0.0;
2797  }
2798  isrr_t = (((model_.isrr)*pow(rT,((model_.xisr)/(model_.nr))))*exp((((-(model_.dear))*(1.0-rT))/(vtv*(model_.nr)))));
2799  if (((is_t>0.0)&&(isrr_t>0.0)))
2800  {
2801  if ((((model_.ikr)>0.0)&&(imaxMod>(model_.ikr))))
2802  {
2803  maxvIri = (((model_.nr)*vtv.val())*log((1.0+(pow(((0.5*imaxMod)*pow((4.0/(model_.ikr)),(model_.nkf))),(1.0/(1.0-(model_.nkf))))/(is_t.val()*isrr_t.val())))));
2804  }
2805  else
2806  {
2807  maxvIri = (((model_.nr)*vtv.val())*log((1.0+(imaxMod/(is_t.val()*isrr_t.val())))));
2808  }
2809  }
2810  else
2811  {
2812  maxvIri = 0.0;
2813  }
2814  isp_t = (((model_.isp)*pow(rT,((model_.xis)/(model_.nfp))))*exp((((-(model_.eap))*(1.0-rT))/(vtv*(model_.nfp)))));
2815  if ((isp_t>0.0))
2816  {
2817  if ((((model_.ikp)>0.0)&&(imaxMod>(model_.ikp))))
2818  {
2819  maxvIp = (((model_.nfp)*vtv.val())*log((1.0+(((imaxMod*imaxMod)*Iikp)/isp_t.val()))));
2820  }
2821  else
2822  {
2823  maxvIp = (((model_.nfp)*vtv.val())*log((1.0+(imaxMod/isp_t.val()))));
2824  }
2825  }
2826  else
2827  {
2828  maxvIp = 0.0;
2829  }
2830  ibei_t = (((model_.ibei)*pow(rT,((model_.xii)/(model_.nei))))*exp((((-(model_.eaie))*(1.0-rT))/(vtv*(model_.nei)))));
2831  if ((ibei_t>0.0))
2832  {
2833  maxvIbei = (((model_.nei)*vtv.val())*log((1.0+(imaxMod/ibei_t.val()))));
2834  }
2835  else
2836  {
2837  maxvIbei = 0.0;
2838  }
2839  iben_t = (((model_.iben)*pow(rT,((model_.xin)/(model_.nen))))*exp((((-(model_.eane))*(1.0-rT))/(vtv*(model_.nen)))));
2840  if ((iben_t>0.0))
2841  {
2842  maxvIben = (((model_.nen)*vtv.val())*log((1.0+(imaxMod/iben_t.val()))));
2843  }
2844  else
2845  {
2846  maxvIben = 0.0;
2847  }
2848  ibci_t = (((model_.ibci)*pow(rT,((model_.xii)/(model_.nci))))*exp((((-(model_.eaic))*(1.0-rT))/(vtv*(model_.nci)))));
2849  if ((ibci_t>0.0))
2850  {
2851  maxvIbci = (((model_.nci)*vtv.val())*log((1.0+(imaxMod/ibci_t.val()))));
2852  }
2853  else
2854  {
2855  maxvIbci = 0.0;
2856  }
2857  ibcn_t = (((model_.ibcn)*pow(rT,((model_.xin)/(model_.ncn))))*exp((((-(model_.eanc))*(1.0-rT))/(vtv*(model_.ncn)))));
2858  if ((ibcn_t>0.0))
2859  {
2860  maxvIbcn = (((model_.ncn)*vtv.val())*log((1.0+(imaxMod/ibcn_t.val()))));
2861  }
2862  else
2863  {
2864  maxvIbcn = 0.0;
2865  }
2866  ibeip_t = (((model_.ibeip)*pow(rT,((model_.xii)/(model_.nci))))*exp((((-(model_.eaic))*(1.0-rT))/(vtv*(model_.nci)))));
2867  if ((ibeip_t>0.0))
2868  {
2869  maxvIbeip = (((model_.nci)*vtv.val())*log((1.0+(imaxMod/ibeip_t.val()))));
2870  }
2871  else
2872  {
2873  maxvIbeip = 0.0;
2874  }
2875  ibenp_t = (((model_.ibenp)*pow(rT,((model_.xin)/(model_.ncn))))*exp((((-(model_.eanc))*(1.0-rT))/(vtv*(model_.ncn)))));
2876  if ((ibenp_t>0.0))
2877  {
2878  maxvIbenp = (((model_.ncn)*vtv.val())*log((1.0+(imaxMod/ibenp_t.val()))));
2879  }
2880  else
2881  {
2882  maxvIbenp = 0.0;
2883  }
2884  ibcip_t = (((model_.ibcip)*pow(rT,((model_.xii)/(model_.ncip))))*exp((((-(model_.eais))*(1.0-rT))/(vtv*(model_.ncip)))));
2885  if ((ibcip_t>0.0))
2886  {
2887  maxvIbcip = (((model_.ncip)*vtv.val())*log((1.0+(imaxMod/ibcip_t.val()))));
2888  }
2889  else
2890  {
2891  maxvIbcip = 0.0;
2892  }
2893  ibcnp_t = (((model_.ibcnp)*pow(rT,((model_.xin)/(model_.ncnp))))*exp((((-(model_.eans))*(1.0-rT))/(vtv*(model_.ncnp)))));
2894  if ((ibcnp_t>0.0))
2895  {
2896  maxvIbcnp = (((model_.ncnp)*vtv.val())*log((1.0+(imaxMod/ibcnp_t.val()))));
2897  }
2898  else
2899  {
2900  maxvIbcnp = 0.0;
2901  }
2902  }
2903  // End block initializeInstance
2904 
2905  // Manually inserted code for voltage drop initialization
2907  {
2908  Vbci_limited = Vbcx_limited = Vbxcx_limited = Vbep_limited = 0;
2909  Vbe_limited = Vbei_limited = Vbex_limited = tVCrit;
2910  dt_et_limited = 0;
2911  origFlag = false;
2912  }
2913 
2914  //Begin block evaluateStatic
2915  {
2916 
2917 
2918  //dt_et = ($limit(Temp(dt,GND),"limRTH"));
2920  {
2921  int icheck=0;
2922  dt_et_limited = AnalogFunctions::limRTH(dt_et_limited,dt_et_old);
2923  if (dt_et_limited != dt_et_orig)
2924  {
2925  icheck=1;
2926  }
2927  if (icheck == 1)
2928  origFlag = false;
2929  if (!origFlag)
2930  {
2931  probeDiffs[admsProbeID_Temp_dt_GND] = dt_et_limited - dt_et_orig;
2933  }
2934  }
2936 
2937  tdevC = (((admsTemperature+trise)+dt_et)-273.15);
2938  if ((tdevC<((model_.tminclip)+1.0)))
2939  {
2940  tdevC = ((model_.tminclip)+exp(((tdevC-(model_.tminclip))-1.0)));
2941  }
2942  else
2943  {
2944  if ((tdevC>((model_.tmaxclip)-1.0)))
2945  {
2946  tdevC = ((model_.tmaxclip)-exp((((model_.tmaxclip)-tdevC)-1.0)));
2947  }
2948  else
2949  {
2950  tdevC = tdevC;
2951  }
2952  }
2953  tdevK = (tdevC+273.15);
2954  vtv = ((1.380662e-23*tdevK)/1.602189e-19);
2955  rT = (tdevK/tiniK);
2956  dT = (tdevK-tiniK);
2957  ikf_t = ((model_.ikf)*pow(rT,(model_.xikf)));
2958  if ((model_.given("xrcx")))
2959  {
2960  rcx_t = ((model_.rcx)*pow(rT,(model_.xrcx)));
2961  }
2962  else
2963  {
2964  rcx_t = ((model_.rcx)*pow(rT,(model_.xrc)));
2965  }
2966  if ((model_.given("xrci")))
2967  {
2968  rci_t = ((model_.rci)*pow(rT,(model_.xrci)));
2969  }
2970  else
2971  {
2972  rci_t = ((model_.rci)*pow(rT,(model_.xrc)));
2973  }
2974  if ((model_.given("xrbx")))
2975  {
2976  rbx_t = ((model_.rbx)*pow(rT,(model_.xrbx)));
2977  }
2978  else
2979  {
2980  rbx_t = ((model_.rbx)*pow(rT,(model_.xrb)));
2981  }
2982  if ((model_.given("xrbi")))
2983  {
2984  rbi_t = ((model_.rbi)*pow(rT,(model_.xrbi)));
2985  }
2986  else
2987  {
2988  rbi_t = ((model_.rbi)*pow(rT,(model_.xrb)));
2989  }
2990  re_t = ((model_.re)*pow(rT,(model_.xre)));
2991  rs_t = ((model_.rs)*pow(rT,(model_.xrs)));
2992  if ((model_.given("xrbp")))
2993  {
2994  rbp_t = ((model_.rbp)*pow(rT,(model_.xrbp)));
2995  }
2996  else
2997  {
2998  rbp_t = ((model_.rbp)*pow(rT,(model_.xrc)));
2999  }
3000  rth_t = ((model_.rth)*(1.0+(dT*(model_.tcrth))));
3001  is_t = (((model_.is)*pow(rT,((model_.xis)/(model_.nf))))*exp((((-(model_.ea))*(1.0-rT))/(vtv*(model_.nf)))));
3002  isrr_t = (((model_.isrr)*pow(rT,((model_.xisr)/(model_.nr))))*exp((((-(model_.dear))*(1.0-rT))/(vtv*(model_.nr)))));
3003  isp_t = (((model_.isp)*pow(rT,((model_.xis)/(model_.nfp))))*exp((((-(model_.eap))*(1.0-rT))/(vtv*(model_.nfp)))));
3004  ibei_t = (((model_.ibei)*pow(rT,((model_.xii)/(model_.nei))))*exp((((-(model_.eaie))*(1.0-rT))/(vtv*(model_.nei)))));
3005  iben_t = (((model_.iben)*pow(rT,((model_.xin)/(model_.nen))))*exp((((-(model_.eane))*(1.0-rT))/(vtv*(model_.nen)))));
3006  ibci_t = (((model_.ibci)*pow(rT,((model_.xii)/(model_.nci))))*exp((((-(model_.eaic))*(1.0-rT))/(vtv*(model_.nci)))));
3007  ibcn_t = (((model_.ibcn)*pow(rT,((model_.xin)/(model_.ncn))))*exp((((-(model_.eanc))*(1.0-rT))/(vtv*(model_.ncn)))));
3008  ibeip_t = (((model_.ibeip)*pow(rT,((model_.xii)/(model_.nci))))*exp((((-(model_.eaic))*(1.0-rT))/(vtv*(model_.nci)))));
3009  ibenp_t = (((model_.ibenp)*pow(rT,((model_.xin)/(model_.ncn))))*exp((((-(model_.eanc))*(1.0-rT))/(vtv*(model_.ncn)))));
3010  ibcip_t = (((model_.ibcip)*pow(rT,((model_.xii)/(model_.ncip))))*exp((((-(model_.eais))*(1.0-rT))/(vtv*(model_.ncip)))));
3011  ibcnp_t = (((model_.ibcnp)*pow(rT,((model_.xin)/(model_.ncnp))))*exp((((-(model_.eans))*(1.0-rT))/(vtv*(model_.ncnp)))));
3012  nf_t = ((model_.nf)*(1.0+(dT*(model_.tnf))));
3013  nr_t = ((model_.nr)*(1.0+(dT*(model_.tnf))));
3014  avc2_t = ((model_.avc2)*(1.0+(dT*(model_.tavc))));
3015  avcx2_t = ((model_.avcx2)*(1.0+(dT*(model_.tavcx))));
3016  vbbe_t = ((model_.vbbe)*(1.0+(dT*((model_.tvbbe1)+(dT*(model_.tvbbe2))))));
3017  nbbe_t = ((model_.nbbe)*(1.0+(dT*(model_.tnbbe))));
3018  //Begin block pePsibiBlock
3019  {
3020  //Block-local variables for block pePsibiBlock
3021  AdmsFadType psiio;
3022  AdmsFadType psiin;
3023  //End of Block-local variables
3024  psiio = ((2.0*(vtv/rT))*log((exp((((0.5*(model_.pe))*rT)/vtv))-exp(((((-0.5)*(model_.pe))*rT)/vtv)))));
3025  psiin = (((psiio*rT)-((3.0*vtv)*log(rT)))-((model_.eaie)*(rT-1.0)));
3026  pe_t = (psiin+((2.0*vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/vtv))))))))));
3027  }
3028  // End block pePsibiBlock
3029  //Begin block pcPsibiBlock
3030  {
3031  //Block-local variables for block pcPsibiBlock
3032  AdmsFadType psiio;
3033  AdmsFadType psiin;
3034  //End of Block-local variables
3035  psiio = ((2.0*(vtv/rT))*log((exp((((0.5*(model_.pc))*rT)/vtv))-exp(((((-0.5)*(model_.pc))*rT)/vtv)))));
3036  psiin = (((psiio*rT)-((3.0*vtv)*log(rT)))-((model_.eaic)*(rT-1.0)));
3037  pc_t = (psiin+((2.0*vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/vtv))))))))));
3038  }
3039  // End block pcPsibiBlock
3040  //Begin block psPsibiBlock
3041  {
3042  //Block-local variables for block psPsibiBlock
3043  AdmsFadType psiio;
3044  AdmsFadType psiin;
3045  //End of Block-local variables
3046  psiio = ((2.0*(vtv/rT))*log((exp((((0.5*(model_.ps))*rT)/vtv))-exp(((((-0.5)*(model_.ps))*rT)/vtv)))));
3047  psiin = (((psiio*rT)-((3.0*vtv)*log(rT)))-((model_.eais)*(rT-1.0)));
3048  ps_t = (psiin+((2.0*vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/vtv))))))))));
3049  }
3050  // End block psPsibiBlock
3051  cje_t = ((model_.cje)*pow(((model_.pe)/pe_t),(model_.me)));
3052  cjc_t = ((model_.cjc)*pow(((model_.pc)/pc_t),(model_.mc)));
3053  cjep_t = ((model_.cjep)*pow(((model_.pc)/pc_t),(model_.mc)));
3054  cjcp_t = ((model_.cjcp)*pow(((model_.ps)/ps_t),(model_.ms)));
3055  gamm_t = (((model_.gamm)*pow(rT,(model_.xis)))*exp((((-(model_.ea))*(1.0-rT))/vtv)));
3056  vo_t = ((model_.vo)*pow(rT,(model_.xvo)));
3057  ebbe_t = exp(((-vbbe_t)/(nbbe_t*vtv)));
3058  vef_t = ((model_.vef)*(1.0+(dT*(model_.tcvef))));
3059  ver_t = ((model_.ver)*(1.0+(dT*(model_.tcver))));
3060  Gcx = adms_ternary_op<AdmsFadType>((rcx_t>1.0e-3),(1.0/rcx_t),1.0e3);
3061  Gci = adms_ternary_op<AdmsFadType>((rci_t>1.0e-3),(1.0/rci_t),1.0e3);
3062  Gbx = adms_ternary_op<AdmsFadType>((rbx_t>1.0e-3),(1.0/rbx_t),1.0e3);
3063  Gbi = adms_ternary_op<AdmsFadType>((rbi_t>1.0e-3),(1.0/rbi_t),1.0e3);
3064  Ge = adms_ternary_op<AdmsFadType>((re_t>1.0e-3),(1.0/re_t),1.0e3);
3065  Gbp = adms_ternary_op<AdmsFadType>((rbp_t>1.0e-3),(1.0/rbp_t),1.0e3);
3066  Gs = adms_ternary_op<AdmsFadType>((rs_t>1.0e-3),(1.0/rs_t),1.0e3);
3067  Gth = adms_ternary_op<AdmsFadType>((rth_t>1.0e-3),(1.0/rth_t),1.0e3);
3068  Ivef = adms_ternary_op<AdmsFadType>((vef_t>0.0),(1.0/vef_t),0.0);
3069  Iver = adms_ternary_op<AdmsFadType>((ver_t>0.0),(1.0/ver_t),0.0);
3070  Iikf = adms_ternary_op<AdmsFadType>((ikf_t>0.0),(1.0/ikf_t),0.0);
3071  Ivo = adms_ternary_op<AdmsFadType>((vo_t>0.0),(1.0/vo_t),0.0);
3072 
3073 
3074  //Vbei = ($limit(V(bi,ei),"typedpnjlim_new",$vt(),tVCrit,VBICtype));
3075  if (getDeviceOptions().voltageLimiterFlag)
3076  {
3077  int icheck=0;
3078  Vbei_limited = devSupport.pnjlim_new(Vbei_limited,Vbei_old,adms_vt_nom,tVCrit,&icheck);
3079  if (icheck == 1)
3080  origFlag = false;
3081  if (!origFlag)
3082  {
3083  probeDiffs[admsProbeID_V_bi_ei] = Vbei_limited - Vbei_orig;
3085  }
3086  }
3088 
3089 
3090 
3091  //Vbex = ($limit(V(bx,ei),"typedpnjlim_new",$vt(),tVCrit,VBICtype));
3092  if (getDeviceOptions().voltageLimiterFlag)
3093  {
3094  int icheck=0;
3095  Vbex_limited = devSupport.pnjlim_new(Vbex_limited,Vbex_old,adms_vt_nom,tVCrit,&icheck);
3096  if (icheck == 1)
3097  origFlag = false;
3098  if (!origFlag)
3099  {
3100  probeDiffs[admsProbeID_V_bx_ei] = Vbex_limited - Vbex_orig;
3102  }
3103  }
3105 
3106 
3107 
3108  //Vbci = ($limit(V(bi,ci),"typedpnjlim_new",$vt(),tVCrit,VBICtype));
3109  if (getDeviceOptions().voltageLimiterFlag)
3110  {
3111  int icheck=0;
3112  Vbci_limited = devSupport.pnjlim_new(Vbci_limited,Vbci_old,adms_vt_nom,tVCrit,&icheck);
3113  if (icheck == 1)
3114  origFlag = false;
3115  if (!origFlag)
3116  {
3117  probeDiffs[admsProbeID_V_bi_ci] = Vbci_limited - Vbci_orig;
3119  }
3120  }
3122 
3123 
3124 
3125  //Vbcx = ($limit(V(bi,cx),"typedpnjlim_new",$vt(),tVCrit,VBICtype));
3126  if (getDeviceOptions().voltageLimiterFlag)
3127  {
3128  int icheck=0;
3129  Vbcx_limited = devSupport.pnjlim_new(Vbcx_limited,Vbcx_old,adms_vt_nom,tVCrit,&icheck);
3130  if (icheck == 1)
3131  origFlag = false;
3132  if (!origFlag)
3133  {
3134  probeDiffs[admsProbeID_V_bi_cx] = Vbcx_limited - Vbcx_orig;
3136  }
3137  }
3139 
3140 
3141 
3142  //Vbxcx = ($limit(V(bx,cx),"typedpnjlim_new",$vt(),tVCrit,VBICtype));
3143  if (getDeviceOptions().voltageLimiterFlag)
3144  {
3145  int icheck=0;
3146  Vbxcx_limited = devSupport.pnjlim_new(Vbxcx_limited,Vbxcx_old,adms_vt_nom,tVCrit,&icheck);
3147  if (icheck == 1)
3148  origFlag = false;
3149  if (!origFlag)
3150  {
3151  probeDiffs[admsProbeID_V_bx_cx] = Vbxcx_limited - Vbxcx_orig;
3153  }
3154  }
3155  Vbxcx = probeVars[admsProbeID_V_bx_cx];
3156 
3158 
3159 
3160  //Vbep = ($limit(V(bx,bp),"typedpnjlim_new",$vt(),tVCrit,VBICtype));
3162  {
3163  int icheck=0;
3164  Vbep_limited = devSupport.pnjlim_new(Vbep_limited,Vbep_old,adms_vt_nom,tVCrit,&icheck);
3165  if (icheck == 1)
3166  origFlag = false;
3167  if (!origFlag)
3168  {
3169  probeDiffs[admsProbeID_V_bx_bp] = Vbep_limited - Vbep_orig;
3171  }
3172  }
3174 
3175 
3176 
3177  //Vbe = ($limit(V(b,e),"dummy",$vt(),tVCrit));
3178  if (getDeviceOptions().voltageLimiterFlag)
3179  {
3180  int icheck=0;
3181  // dummy limiting for initialization purposes
3182  if (icheck == 1)
3183  origFlag = false;
3184  if (!origFlag)
3185  {
3186  probeDiffs[admsProbeID_V_b_e] = Vbe_limited - Vbe_orig;
3188  }
3189  }
3191 
3192  Vbc = (probeVars[admsProbeID_V_b_c]);
3193  Vrcx = (probeVars[admsProbeID_V_c_cx]);
3195  Vrbx = (probeVars[admsProbeID_V_b_bx]);
3196  Vrbi = (probeVars[admsProbeID_V_bx_bi]);
3197  Vre = (probeVars[admsProbeID_V_e_ei]);
3198  Vrbp = (probeVars[admsProbeID_V_bp_cx]);
3201  Vrs = (probeVars[admsProbeID_V_s_si]);
3202  Vxf1 = (probeVars[admsProbeID_V_xf1_GND]);
3203  Vxf2 = (probeVars[admsProbeID_V_xf2_GND]);
3204  //Begin block qdbeBlock
3205  {
3206  //Block-local variables for block qdbeBlock
3207  AdmsFadType dv0;
3208  AdmsFadType dvh;
3209  double pwq;
3210  AdmsFadType qlo;
3211  AdmsFadType qhi;
3212  AdmsFadType mv0;
3213  AdmsFadType vl0;
3214  AdmsFadType q0;
3215  AdmsFadType dv;
3216  AdmsFadType mv;
3217  AdmsFadType vl;
3218  //End of Block-local variables
3219  dv0 = ((-pe_t)*(model_.fc));
3220  if (((model_.aje)<=0.0))
3221  {
3222  dvh = (Vbei+dv0);
3223  if ((dvh>0.0))
3224  {
3225  pwq = pow((1.0-(model_.fc)),(-(model_.me)));
3226  qlo = ((pe_t*(1.0-(pwq*(1.0-(model_.fc)))))/(1.0-(model_.me)));
3227  qhi = ((dvh*(1.0+(((0.5*(model_.me))*dvh)/(pe_t*(1.0-(model_.fc))))))*pwq);
3228  }
3229  else
3230  {
3231  qlo = ((pe_t*(1.0-pow((1.0-(Vbei/pe_t)),(1.0-(model_.me)))))/(1.0-(model_.me)));
3232  qhi = 0.0;
3233  }
3234  qdbe = (qlo+qhi);
3235  }
3236  else
3237  {
3238  mv0 = sqrt(((dv0*dv0)+((4.0*(model_.aje))*(model_.aje))));
3239  vl0 = ((-0.5)*(dv0+mv0));
3240  q0 = (((-pe_t)*pow((1.0-(vl0/pe_t)),(1.0-(model_.me))))/(1.0-(model_.me)));
3241  dv = (Vbei+dv0);
3242  mv = sqrt(((dv*dv)+((4.0*(model_.aje))*(model_.aje))));
3243  vl = ((0.5*(dv-mv))-dv0);
3244  qlo = (((-pe_t)*pow((1.0-(vl/pe_t)),(1.0-(model_.me))))/(1.0-(model_.me)));
3245  qdbe = ((qlo+((pow((1.0-(model_.fc)),(-(model_.me)))*((Vbei-vl)+vl0))*(1.0+(((0.5*(model_.me))*((Vbei-vl)+vl0))/(pe_t*(1.0-(model_.fc)))))))-q0);
3246  }
3247  }
3248  // End block qdbeBlock
3249  //Begin block qdbcBlock
3250  {
3251  //Block-local variables for block qdbcBlock
3252  AdmsFadType dv0;
3253  AdmsFadType dvh;
3254  double pwq;
3255  AdmsFadType qlo;
3256  AdmsFadType qhi;
3257  AdmsFadType vn0;
3258  AdmsFadType vnl0;
3259  AdmsFadType vl0;
3260  AdmsFadType qlo0;
3261  AdmsFadType vn;
3262  AdmsFadType vnl;
3263  AdmsFadType vl;
3264  AdmsFadType sel;
3265  AdmsFadType crt;
3266  AdmsFadType cmx;
3267  AdmsFadType cl;
3268  AdmsFadType ql;
3269  AdmsFadType mv0;
3270  AdmsFadType q0;
3271  AdmsFadType dv;
3272  AdmsFadType mv;
3273  //End of Block-local variables
3274  dv0 = ((-pc_t)*(model_.fc));
3275  if (((model_.ajc)<=0.0))
3276  {
3277  dvh = (Vbci+dv0);
3278  if ((dvh>0.0))
3279  {
3280  pwq = pow((1.0-(model_.fc)),((-1.0)-(model_.mc)));
3281  qlo = ((pc_t*(1.0-((pwq*(1.0-(model_.fc)))*(1.0-(model_.fc)))))/(1.0-(model_.mc)));
3282  qhi = ((dvh*((1.0-(model_.fc))+(((0.5*(model_.mc))*dvh)/pc_t)))*pwq);
3283  }
3284  else
3285  {
3286  if ((((model_.vrt)>0.0)&&(Vbci<(-(model_.vrt)))))
3287  {
3288  qlo = ((pc_t*(1.0-(pow((1.0+((model_.vrt)/pc_t)),(1.0-(model_.mc)))*(1.0-(((1.0-(model_.mc))*(Vbci+(model_.vrt)))/(pc_t+(model_.vrt)))))))/(1.0-(model_.mc)));
3289  }
3290  else
3291  {
3292  qlo = ((pc_t*(1.0-pow((1.0-(Vbci/pc_t)),(1.0-(model_.mc)))))/(1.0-(model_.mc)));
3293  }
3294  qhi = 0.0;
3295  }
3296  qdbc = (qlo+qhi);
3297  }
3298  else
3299  {
3300  if ((((model_.vrt)>0.0)&&((model_.art)>0.0)))
3301  {
3302  vn0 = (((model_.vrt)+dv0)/((model_.vrt)-dv0));
3303  vnl0 = ((2.0*vn0)/(sqrt((((vn0-1.0)*(vn0-1))+((4*(model_.ajc))*(model_.ajc))))+sqrt((((vn0+1.0)*(vn0+1))+((4*(model_.art))*(model_.art))))));
3304  vl0 = (0.5*(((vnl0*((model_.vrt)-dv0))-(model_.vrt))-dv0));
3305  qlo0 = ((pc_t*(1.0-pow((1.0-(vl0/pc_t)),(1.0-(model_.mc)))))/(1.0-(model_.mc)));
3306  vn = ((((2*Vbci)+(model_.vrt))+dv0)/((model_.vrt)-dv0));
3307  vnl = ((2.0*vn)/(sqrt((((vn-1.0)*(vn-1))+((4*(model_.ajc))*(model_.ajc))))+sqrt((((vn+1.0)*(vn+1))+((4*(model_.art))*(model_.art))))));
3308  vl = (0.5*(((vnl*((model_.vrt)-dv0))-(model_.vrt))-dv0));
3309  qlo = ((pc_t*(1.0-pow((1.0-(vl/pc_t)),(1.0-(model_.mc)))))/(1.0-(model_.mc)));
3310  sel = (0.5*(vnl+1.0));
3311  crt = pow((1.0+((model_.vrt)/pc_t)),(-(model_.mc)));
3312  cmx = pow((1.0+(dv0/pc_t)),(-(model_.mc)));
3313  cl = (((1.0-sel)*crt)+(sel*cmx));
3314  ql = (((Vbci-vl)+vl0)*cl);
3315  qdbc = ((ql+qlo)-qlo0);
3316  }
3317  else
3318  {
3319  mv0 = sqrt(((dv0*dv0)+((4*(model_.ajc))*(model_.ajc))));
3320  vl0 = ((-0.5)*(dv0+mv0));
3321  q0 = (((-pc_t)*pow((1.0-(vl0/pc_t)),(1.0-(model_.mc))))/(1.0-(model_.mc)));
3322  dv = (Vbci+dv0);
3323  mv = sqrt(((dv*dv)+((4*(model_.ajc))*(model_.ajc))));
3324  vl = ((0.5*(dv-mv))-dv0);
3325  qlo = (((-pc_t)*pow((1.0-(vl/pc_t)),(1.0-(model_.mc))))/(1.0-(model_.mc)));
3326  qdbc = ((qlo+(pow((1.0-(model_.fc)),(-(model_.mc)))*((Vbci-vl)+vl0)))-q0);
3327  }
3328  }
3329  }
3330  // End block qdbcBlock
3331  afac = (1.0/(nf_t*vtv));
3332  if ((Vbei<maxvIfi))
3333  {
3334  expi = exp((Vbei*afac));
3335  }
3336  else
3337  {
3338  expi = (exp((maxvIfi*afac))*(1.0+((Vbei-maxvIfi)*afac)));
3339  }
3340  Ifi = (is_t*(expi-1.0));
3341  afac = (1.0/(nr_t*vtv));
3342  if ((Vbci<maxvIri))
3343  {
3344  expi = exp((Vbci*afac));
3345  }
3346  else
3347  {
3348  expi = (exp((maxvIri*afac))*(1.0+((Vbci-maxvIri)*afac)));
3349  }
3350  Iri = ((is_t*isrr_t)*(expi-1.0));
3351  q1z = (((1.0+(qdbe*Iver))+(qdbc*Ivef))-1.0e-4);
3352  q1 = ((0.5*(sqrt(((q1z*q1z)+1.0e-8))+q1z))+1.0e-4);
3353  q2 = ((Ifi*Iikf)+(Iri*Iikr));
3354  if (((model_.qbm)<0.5))
3355  {
3356  arg = (pow(q1,(1.0/(model_.nkf)))+(4.0*q2));
3357  if ((arg>1.0e-8))
3358  {
3359  qb = (0.5*(q1+pow(arg,(model_.nkf))));
3360  }
3361  else
3362  {
3363  qb = (0.5*(q1+pow(1.0e-8,(model_.nkf))));
3364  }
3365  }
3366  else
3367  {
3368  arg = (1.0+(4.0*q2));
3369  if ((arg>1.0e-8))
3370  {
3371  qb = ((0.5*q1)*(1.0+pow(arg,(model_.nkf))));
3372  }
3373  else
3374  {
3375  qb = ((0.5*q1)*(1.0+pow(1.0e-8,(model_.nkf))));
3376  }
3377  }
3378  Itzr = (Iri/qb);
3379  Itzf = (Ifi/qb);
3380  Itxf = Vxf2;
3381  if (((model_.isp)>0.0))
3382  {
3383  afac = (1.0/((model_.nfp)*vtv));
3384  if ((Vbep<maxvIp))
3385  {
3386  expi = exp((Vbep*afac));
3387  }
3388  else
3389  {
3390  expi = (exp((maxvIp*afac))*(1.0+((Vbep-maxvIp)*afac)));
3391  }
3392  if ((Vbci<maxvIp))
3393  {
3394  expx = exp((Vbci*afac));
3395  }
3396  else
3397  {
3398  expx = (exp((maxvIp*afac))*(1.0+((Vbci-maxvIp)*afac)));
3399  }
3400  Ifp = (isp_t*((((model_.wsp)*expi)+((1.0-(model_.wsp))*expx))-1.0));
3401  q2p = (Ifp*Iikp);
3402  arg = (1.0+(4.0*q2p));
3403  if ((arg>1.0e-8))
3404  {
3405  qbp = (0.5*(1.0+sqrt(arg)));
3406  }
3407  else
3408  {
3409  qbp = (0.5*(1.0+sqrt(1.0e-8)));
3410  }
3411  if ((Vbcp<maxvIp))
3412  {
3413  expi = exp((Vbcp*afac));
3414  }
3415  else
3416  {
3417  expi = (exp((maxvIp*afac))*(1.0+((Vbcp-maxvIp)*afac)));
3418  }
3419  Irp = (isp_t*(expi-1.0));
3420  Iccp = ((Ifp-Irp)/qbp);
3421  }
3422  else
3423  {
3424  Ifp = 0.0;
3425  qbp = 1.0;
3426  Iccp = 0.0;
3427  }
3428  if (((model_.wbe)==1.0))
3429  {
3430  afac = (1.0/((model_.nei)*vtv));
3431  if ((Vbei<maxvIbei))
3432  {
3433  expi = exp((Vbei*afac));
3434  }
3435  else
3436  {
3437  expi = (exp((maxvIbei*afac))*(1.0+((Vbei-maxvIbei)*afac)));
3438  }
3439  afac = (1.0/((model_.nen)*vtv));
3440  if ((Vbei<maxvIben))
3441  {
3442  expn = exp((Vbei*afac));
3443  }
3444  else
3445  {
3446  expn = (exp((maxvIben*afac))*(1.0+((Vbei-maxvIben)*afac)));
3447  }
3448  if (((model_.qnibeir)>0.0))
3449  {
3450  Ibe = (((ibei_t*(1.0+((model_.qnibeir)*(q1-1.0))))*(expi-1.0))+(iben_t*(expn-1.0)));
3451  }
3452  else
3453  {
3454  Ibe = ((ibei_t*(expi-1.0))+(iben_t*(expn-1.0)));
3455  }
3456  if (((model_.vbbe)>0.0))
3457  {
3458  Bvbe = ((-vbbe_t)-Vbei);
3459  afac = (1.0/(nbbe_t*vtv));
3460  if ((Bvbe<maxvIbbe))
3461  {
3462  expx = exp((Bvbe*afac));
3463  }
3464  else
3465  {
3466  expx = (exp((maxvIbbe*afac))*(1.0+((Bvbe-maxvIbbe)*afac)));
3467  }
3468  Ibe = (Ibe-((model_.ibbe)*(expx-ebbe_t)));
3469  }
3470  Ibex = 0.0;
3471  }
3472  else
3473  {
3474  if (((model_.wbe)==0.0))
3475  {
3476  Ibe = 0.0;
3477  afac = (1.0/((model_.nei)*vtv));
3478  if ((Vbex<maxvIbei))
3479  {
3480  expi = exp((Vbex*afac));
3481  }
3482  else
3483  {
3484  expi = (exp((maxvIbei*afac))*(1.0+((Vbex-maxvIbei)*afac)));
3485  }
3486  afac = (1.0/((model_.nen)*vtv));
3487  if ((Vbex<maxvIben))
3488  {
3489  expn = exp((Vbex*afac));
3490  }
3491  else
3492  {
3493  expn = (exp((maxvIben*afac))*(1.0+((Vbex-maxvIben)*afac)));
3494  }
3495  Ibex = ((ibei_t*(expi-1.0))+(iben_t*(expn-1.0)));
3496  if (((model_.vbbe)>0.0))
3497  {
3498  Bvbe = ((-vbbe_t)-Vbei);
3499  afac = (1.0/(nbbe_t*vtv));
3500  if ((Bvbe<maxvIbbe))
3501  {
3502  expx = exp((Bvbe*afac));
3503  }
3504  else
3505  {
3506  expx = (exp((maxvIbbe*afac))*(1.0+((Bvbe-maxvIbbe)*afac)));
3507  }
3508  Ibex = (Ibex-((model_.ibbe)*(expx-ebbe_t)));
3509  }
3510  }
3511  else
3512  {
3513  afac = (1.0/((model_.nei)*vtv));
3514  if ((Vbei<maxvIbei))
3515  {
3516  expi = exp((Vbei*afac));
3517  }
3518  else
3519  {
3520  expi = (exp((maxvIbei*afac))*(1.0+((Vbei-maxvIbei)*afac)));
3521  }
3522  afac = (1.0/((model_.nen)*vtv));
3523  if ((Vbei<maxvIben))
3524  {
3525  expn = exp((Vbei*afac));
3526  }
3527  else
3528  {
3529  expn = (exp((maxvIben*afac))*(1.0+((Vbei-maxvIben)*afac)));
3530  }
3531  if (((model_.qnibeir)>0.0))
3532  {
3533  Ibe = ((model_.wbe)*(((ibei_t*(1.0+((model_.qnibeir)*(q1-1.0))))*(expi-1.0))+(iben_t*(expn-1.0))));
3534  }
3535  else
3536  {
3537  Ibe = ((model_.wbe)*((ibei_t*(expi-1.0))+(iben_t*(expn-1.0))));
3538  }
3539  if (((model_.vbbe)>0.0))
3540  {
3541  Bvbe = ((-vbbe_t)-Vbei);
3542  afac = (1.0/(nbbe_t*vtv));
3543  if ((Bvbe<maxvIbbe))
3544  {
3545  expx = exp((Bvbe*afac));
3546  }
3547  else
3548  {
3549  expx = (exp((maxvIbbe*afac))*(1.0+((Bvbe-maxvIbbe)*afac)));
3550  }
3551  Ibe = (Ibe-(((model_.wbe)*(model_.ibbe))*(expx-ebbe_t)));
3552  }
3553  afac = (1.0/((model_.nei)*vtv));
3554  if ((Vbex<maxvIbei))
3555  {
3556  expi = exp((Vbex*afac));
3557  }
3558  else
3559  {
3560  expi = (exp((maxvIbei*afac))*(1.0+((Vbex-maxvIbei)*afac)));
3561  }
3562  afac = (1.0/((model_.nen)*vtv));
3563  if ((Vbex<maxvIben))
3564  {
3565  expn = exp((Vbex*afac));
3566  }
3567  else
3568  {
3569  expn = (exp((maxvIben*afac))*(1.0+((Vbex-maxvIben)*afac)));
3570  }
3571  Ibex = ((1.0-(model_.wbe))*((ibei_t*(expi-1.0))+(iben_t*(expn-1.0))));
3572  if (((model_.vbbe)>0.0))
3573  {
3574  Bvbe = ((-vbbe_t)-Vbei);
3575  afac = (1.0/(nbbe_t*vtv));
3576  if ((Bvbe<maxvIbbe))
3577  {
3578  expx = exp((Bvbe*afac));
3579  }
3580  else
3581  {
3582  expx = (exp((maxvIbbe*afac))*(1.0+((Bvbe-maxvIbbe)*afac)));
3583  }
3584  Ibex = (Ibex-(((1.0-(model_.wbe))*(model_.ibbe))*(expx-ebbe_t)));
3585  }
3586  }
3587  }
3588  afac = (1.0/((model_.nci)*vtv));
3589  if ((Vbci<maxvIbci))
3590  {
3591  expi = exp((Vbci*afac));
3592  }
3593  else
3594  {
3595  expi = (exp((maxvIbci*afac))*(1.0+((Vbci-maxvIbci)*afac)));
3596  }
3597  afac = (1.0/((model_.ncn)*vtv));
3598  if ((Vbci<maxvIbcn))
3599  {
3600  expn = exp((Vbci*afac));
3601  }
3602  else
3603  {
3604  expn = (exp((maxvIbcn*afac))*(1.0+((Vbci-maxvIbcn)*afac)));
3605  }
3606  Ibcj = ((ibci_t*(expi-1.0))+(ibcn_t*(expn-1.0)));
3607  if ((((model_.ibeip)>0.0)||((model_.ibenp)>0.0)))
3608  {
3609  afac = (1.0/((model_.nci)*vtv));
3610  if ((Vbep<maxvIbeip))
3611  {
3612  expi = exp((Vbep*afac));
3613  }
3614  else
3615  {
3616  expi = (exp((maxvIbeip*afac))*(1.0+((Vbep-maxvIbeip)*afac)));
3617  }
3618  afac = (1.0/((model_.ncn)*vtv));
3619  if ((Vbep<maxvIbenp))
3620  {
3621  expn = exp((Vbep*afac));
3622  }
3623  else
3624  {
3625  expn = (exp((maxvIbenp*afac))*(1.0+((Vbep-maxvIbenp)*afac)));
3626  }
3627  Ibep = ((ibeip_t*(expi-1.0))+(ibenp_t*(expn-1.0)));
3628  }
3629  else
3630  {
3631  Ibep = 0.0;
3632  }
3633  arg = (Vbci/vtv);
3634  if ((arg<VmaxExp))
3635  {
3636  expi = exp(arg);
3637  }
3638  else
3639  {
3640  expi = (exp(VmaxExp)*(1.0+(arg-VmaxExp)));
3641  }
3642  arg = (Vbcx/vtv);
3643  if ((arg<VmaxExp))
3644  {
3645  expx = exp(arg);
3646  }
3647  else
3648  {
3649  expx = (exp(VmaxExp)*(1.0+(arg-VmaxExp)));
3650  }
3651  Kbci = sqrt((1.0+(gamm_t*expi)));
3652  Kbcx = sqrt((1.0+(gamm_t*expx)));
3653  Ircx = (Vrcx*Gcx);
3654  rKp1 = ((Kbci+1.0)/(Kbcx+1.0));
3655  Iohm = ((Vrci+(vtv*((Kbci-Kbcx)-log(rKp1))))*Gci);
3656  derf = ((Ivo*Iohm)/(Gci*(1.0+(((0.5*Ivo)*Ihrcf)*sqrt(((Vrci*Vrci)+0.01))))));
3657  Irci = (Iohm/sqrt((1+(derf*derf))));
3658  Irbx = (Vrbx*Gbx);
3659  Irbi = ((Vrbi*qb)*Gbi);
3660  Ire = (Vre*Ge);
3661  Irbp = ((Vrbp*qbp)*Gbp);
3662  Irs = (Vrs*Gs);
3663  if (((model_.avc1)>0.0))
3664  {
3665  //Begin block igcBlock
3666  {
3667  //Block-local variables for block igcBlock
3668  AdmsFadType vminm;
3669  AdmsFadType vl;
3670  AdmsFadType mac1;
3671  AdmsFadType expi;
3672  double expl;
3673  //End of Block-local variables
3674  vminm = pow((0.02*(avc2_t+1.0)),(1.0/(1.01-(model_.mc))));
3675  vl = ((0.5*(sqrt(((((pc_t-Vbci)-vminm)*((pc_t-Vbci)-vminm))+0.01))+((pc_t-Vbci)-vminm)))+vminm);
3676  mac1 = ((-avc2_t)*pow(vl,((model_.mc)-1.0)));
3677  if ((mac1<VmaxExp))
3678  {
3679  expi = exp(mac1);
3680  }
3681  else
3682  {
3683  expl = exp(VmaxExp);
3684  expi = (expl*(1.0+(mac1-VmaxExp)));
3685  }
3686  avalf = (((model_.avc1)*vl)*expi);
3687  }
3688  // End block igcBlock
3689  Igc = (((Itxf-Itzr)-Ibcj)*avalf);
3690  }
3691  else
3692  {
3693  Igc = 0.0;
3694  }
3695  if (((model_.avcx1)>0.0))
3696  {
3697  //Begin block igcxBlock
3698  {
3699  //Block-local variables for block igcxBlock
3700  AdmsFadType vminm;
3701  AdmsFadType vl;
3702  AdmsFadType mac1;
3703  AdmsFadType expi;
3704  double expl;
3705  //End of Block-local variables
3706  vminm = pow((0.02*(avcx2_t+1.0)),(1.0/(1.01-(model_.mcx))));
3707  vl = ((0.5*(sqrt(((((-Vbxcx)-vminm)*((-Vbxcx)-vminm))+0.01))+((-Vbxcx)-vminm)))+vminm);
3708  mac1 = ((-avcx2_t)*pow(vl,((model_.mcx)-1.0)));
3709  if ((mac1<VmaxExp))
3710  {
3711  expi = exp(mac1);
3712  }
3713  else
3714  {
3715  expl = exp(VmaxExp);
3716  expi = (expl*(1.0+(mac1-VmaxExp)));
3717  }
3718  avalf = (((model_.avcx1)*vl)*expi);
3719  }
3720  // End block igcxBlock
3721  Igcx = ((-Ircx)*avalf);
3722  }
3723  else
3724  {
3725  Igcx = 0.0;
3726  }
3727  if ((((model_.bbk)>0.0)&&((model_.ibk0)>0.0)))
3728  {
3729  if (((model_.vpte)>0.0))
3730  {
3731  VcbFac = ((1.0-(Vbci/(model_.vpte)))-0.1);
3732  VcbFac = (0.1+(0.5*(VcbFac+sqrt(((VcbFac*VcbFac)+1.0e-4)))));
3733  Iibk = ((model_.ibk0)*VcbFac);
3734  }
3735  else
3736  {
3737  Iibk = (model_.ibk0);
3738  }
3739  Ibk = ((model_.bbk)*pow(((Itzf/Iibk)-1.0),(model_.abk)));
3740  }
3741  else
3742  {
3743  Ibk = 0.0;
3744  }
3745  Ibc = ((Ibcj-Igc)-Ibk);
3746  if ((((model_.ibcip)>0.0)||((model_.ibcnp)>0.0)))
3747  {
3748  afac = (1.0/((model_.ncip)*vtv));
3749  if ((Vbcp<maxvIbcip))
3750  {
3751  expi = exp((Vbcp*afac));
3752  }
3753  else
3754  {
3755  expi = (exp((maxvIbcip*afac))*(1.0+((Vbcp-maxvIbcip)*afac)));
3756  }
3757  afac = (1.0/((model_.ncnp)*vtv));
3758  if ((Vbcp<maxvIbcnp))
3759  {
3760  expn = exp((Vbcp*afac));
3761  }
3762  else
3763  {
3764  expn = (exp((maxvIbcnp*afac))*(1.0+((Vbcp-maxvIbcnp)*afac)));
3765  }
3766  Ibcp = ((ibcip_t*(expi-1.0))+(ibcnp_t*(expn-1.0)));
3767  }
3768  else
3769  {
3770  Ibcp = 0.0;
3771  }
3772  power = ((((((((((((((Ibe*Vbei)+(Ibc*Vbci))+((Itxf-Itzr)*Vcei))+(Ibex*Vbex))+(Ibep*Vbep))+(Irs*Vrs))+(Ibcp*Vbcp))+(Iccp*Vcep))+(Ircx*Vrcx))+(Irci*Vrci))+(Irbx*Vrbx))+(Irbi*Vrbi))+(Ire*Vre))+(Irbp*Vrbp));
3773  Ith = ((-sw_et)*power);
3774  Irth = (dt_et*Gth);
3775  Ixf1 = (Vxf2-Itzf);
3776  Ixf2 = (Vxf2-Vxf1);
3777  Ibe = (Ibe+(gminMod*Vbei));
3778  Ibex = (Ibex+(gminMod*Vbex));
3779  Ibep = (Ibep+(gminMod*Vbep));
3780  Ibc = (Ibc+(gminMod*Vbci));
3781  Igcx = (Igcx+(gminMod*Vbxcx));
3782  Ibcp = (Ibcp+(gminMod*Vbcp));
3783  Ibe = (((model_.VBICtype)*mMod)*Ibe);
3784  Ibex = (((model_.VBICtype)*mMod)*Ibex);
3785  Itzf = (((model_.VBICtype)*mMod)*Itzf);
3786  Itxf = (((model_.VBICtype)*mMod)*Itxf);
3787  Itzr = (((model_.VBICtype)*mMod)*Itzr);
3788  Ibc = (((model_.VBICtype)*mMod)*Ibc);
3789  Igcx = (((model_.VBICtype)*mMod)*Igcx);
3790  Ibep = (((model_.VBICtype)*mMod)*Ibep);
3791  Ircx = (mMod*Ircx);
3792  Irci = (((model_.VBICtype)*mMod)*Irci);
3793  Irbx = (mMod*Irbx);
3794  Irbi = (mMod*Irbi);
3795  Ire = (mMod*Ire);
3796  Irbp = (mMod*Irbp);
3797  Ibcp = (((model_.VBICtype)*mMod)*Ibcp);
3798  Iccp = (((model_.VBICtype)*mMod)*Iccp);
3799  Irs = (mMod*Irs);
3800  Ith = (mMod*Ith);
3801  Irth = (mMod*Irth);
3802  }
3803  // End block evaluateStatic
3804  //Begin block evaluateDynamic
3805  {
3806  if (((model_.cjcp)>0.0))
3807  {
3808  //Begin block qdbcpBlock
3809  {
3810  //Block-local variables for block qdbcpBlock
3811  AdmsFadType dv0;
3812  AdmsFadType dvh;
3813  double pwq;
3814  AdmsFadType qlo;
3815  AdmsFadType qhi;
3816  AdmsFadType mv0;
3817  AdmsFadType vl0;
3818  AdmsFadType q0;
3819  AdmsFadType dv;
3820  AdmsFadType mv;
3821  AdmsFadType vl;
3822  //End of Block-local variables
3823  dv0 = ((-ps_t)*(model_.fc));
3824  if (((model_.ajs)<=0.0))
3825  {
3826  dvh = (Vbcp+dv0);
3827  if ((dvh>0.0))
3828  {
3829  pwq = pow((1.0-(model_.fc)),(-(model_.ms)));
3830  qlo = ((ps_t*(1.0-(pwq*(1.0-(model_.fc)))))/(1.0-(model_.ms)));
3831  qhi = ((dvh*(1.0+(((0.5*(model_.ms))*dvh)/(ps_t*(1.0-(model_.fc))))))*pwq);
3832  }
3833  else
3834  {
3835  qlo = ((ps_t*(1.0-pow((1.0-(Vbcp/ps_t)),(1.0-(model_.ms)))))/(1.0-(model_.ms)));
3836  qhi = 0.0;
3837  }
3838  qdbcp = (qlo+qhi);
3839  }
3840  else
3841  {
3842  mv0 = sqrt(((dv0*dv0)+((4.0*(model_.ajs))*(model_.ajs))));
3843  vl0 = ((-0.5)*(dv0+mv0));
3844  q0 = (((-ps_t)*pow((1.0-(vl0/ps_t)),(1.0-(model_.ms))))/(1.0-(model_.ms)));
3845  dv = (Vbcp+dv0);
3846  mv = sqrt(((dv*dv)+((4.0*(model_.ajs))*(model_.ajs))));
3847  vl = ((0.5*(dv-mv))-dv0);
3848  qlo = (((-ps_t)*pow((1.0-(vl/ps_t)),(1.0-(model_.ms))))/(1.0-(model_.ms)));
3849  qdbcp = ((qlo+((pow((1.0-(model_.fc)),(-(model_.ms)))*((Vbcp-vl)+vl0))*(1.0+(((0.5*(model_.ms))*((Vbcp-vl)+vl0))/(ps_t*(1.0-(model_.fc)))))))-q0);
3850  }
3851  }
3852  // End block qdbcpBlock
3853  }
3854  else
3855  {
3856  qdbcp = 0.0;
3857  }
3858  //Begin block qdbexBlock
3859  {
3860  //Block-local variables for block qdbexBlock
3861  AdmsFadType dv0;
3862  AdmsFadType dvh;
3863  double pwq;
3864  AdmsFadType qlo;
3865  AdmsFadType qhi;
3866  AdmsFadType mv0;
3867  AdmsFadType vl0;
3868  AdmsFadType q0;
3869  AdmsFadType dv;
3870  AdmsFadType mv;
3871  AdmsFadType vl;
3872  //End of Block-local variables
3873  dv0 = ((-pe_t)*(model_.fc));
3874  if (((model_.aje)<=0.0))
3875  {
3876  dvh = (Vbex+dv0);
3877  if ((dvh>0.0))
3878  {
3879  pwq = pow((1.0-(model_.fc)),(-(model_.me)));
3880  qlo = ((pe_t*(1.0-(pwq*(1.0-(model_.fc)))))/(1.0-(model_.me)));
3881  qhi = ((dvh*(1.0+(((0.5*(model_.me))*dvh)/(pe_t*(1.0-(model_.fc))))))*pwq);
3882  }
3883  else
3884  {
3885  qlo = ((pe_t*(1.0-pow((1.0-(Vbex/pe_t)),(1.0-(model_.me)))))/(1.0-(model_.me)));
3886  qhi = 0.0;
3887  }
3888  qdbex = (qlo+qhi);
3889  }
3890  else
3891  {
3892  mv0 = sqrt(((dv0*dv0)+((4.0*(model_.aje))*(model_.aje))));
3893  vl0 = ((-0.5)*(dv0+mv0));
3894  q0 = (((-pe_t)*pow((1.0-(vl0/pe_t)),(1.0-(model_.me))))/(1.0-(model_.me)));
3895  dv = (Vbex+dv0);
3896  mv = sqrt(((dv*dv)+((4.0*(model_.aje))*(model_.aje))));
3897  vl = ((0.5*(dv-mv))-dv0);
3898  qlo = (((-pe_t)*pow((1.0-(vl/pe_t)),(1.0-(model_.me))))/(1.0-(model_.me)));
3899  qdbex = ((qlo+((pow((1.0-(model_.fc)),(-(model_.me)))*((Vbex-vl)+vl0))*(1.0+(((0.5*(model_.me))*((Vbex-vl)+vl0))/(pe_t*(1.0-(model_.fc)))))))-q0);
3900  }
3901  }
3902  // End block qdbexBlock
3903  //Begin block qdbepBlock
3904  {
3905  //Block-local variables for block qdbepBlock
3906  AdmsFadType dv0;
3907  AdmsFadType dvh;
3908  double pwq;
3909  AdmsFadType qlo;
3910  AdmsFadType qhi;
3911  AdmsFadType vn0;
3912  AdmsFadType vnl0;
3913  AdmsFadType vl0;
3914  AdmsFadType qlo0;
3915  AdmsFadType vn;
3916  AdmsFadType vnl;
3917  AdmsFadType vl;
3918  AdmsFadType sel;
3919  AdmsFadType crt;
3920  AdmsFadType cmx;
3921  AdmsFadType cl;
3922  AdmsFadType ql;
3923  AdmsFadType mv0;
3924  AdmsFadType q0;
3925  AdmsFadType dv;
3926  AdmsFadType mv;
3927  //End of Block-local variables
3928  dv0 = ((-pc_t)*(model_.fc));
3929  if (((model_.ajc)<=0.0))
3930  {
3931  dvh = (Vbep+dv0);
3932  if ((dvh>0.0))
3933  {
3934  pwq = pow((1.0-(model_.fc)),((-1.0)-(model_.mc)));
3935  qlo = ((pc_t*(1.0-((pwq*(1.0-(model_.fc)))*(1.0-(model_.fc)))))/(1.0-(model_.mc)));
3936  qhi = ((dvh*((1.0-(model_.fc))+(((0.5*(model_.mc))*dvh)/pc_t)))*pwq);
3937  }
3938  else
3939  {
3940  if ((((model_.vrt)>0.0)&&(Vbep<(-(model_.vrt)))))
3941  {
3942  qlo = ((pc_t*(1.0-(pow((1.0+((model_.vrt)/pc_t)),(1.0-(model_.mc)))*(1.0-(((1.0-(model_.mc))*(Vbep+(model_.vrt)))/(pc_t+(model_.vrt)))))))/(1.0-(model_.mc)));
3943  }
3944  else
3945  {
3946  qlo = ((pc_t*(1.0-pow((1.0-(Vbep/pc_t)),(1.0-(model_.mc)))))/(1.0-(model_.mc)));
3947  }
3948  qhi = 0.0;
3949  }
3950  qdbep = (qlo+qhi);
3951  }
3952  else
3953  {
3954  if ((((model_.vrt)>0.0)&&((model_.art)>0.0)))
3955  {
3956  vn0 = (((model_.vrt)+dv0)/((model_.vrt)-dv0));
3957  vnl0 = ((2.0*vn0)/(sqrt((((vn0-1.0)*(vn0-1))+((4*(model_.ajc))*(model_.ajc))))+sqrt((((vn0+1.0)*(vn0+1))+((4*(model_.art))*(model_.art))))));
3958  vl0 = (0.5*(((vnl0*((model_.vrt)-dv0))-(model_.vrt))-dv0));
3959  qlo0 = ((pc_t*(1.0-pow((1.0-(vl0/pc_t)),(1.0-(model_.mc)))))/(1.0-(model_.mc)));
3960  vn = ((((2*Vbep)+(model_.vrt))+dv0)/((model_.vrt)-dv0));
3961  vnl = ((2.0*vn)/(sqrt((((vn-1.0)*(vn-1))+((4*(model_.ajc))*(model_.ajc))))+sqrt((((vn+1.0)*(vn+1))+((4*(model_.art))*(model_.art))))));
3962  vl = (0.5*(((vnl*((model_.vrt)-dv0))-(model_.vrt))-dv0));
3963  qlo = ((pc_t*(1.0-pow((1.0-(vl/pc_t)),(1.0-(model_.mc)))))/(1.0-(model_.mc)));
3964  sel = (0.5*(vnl+1.0));
3965  crt = pow((1.0+((model_.vrt)/pc_t)),(-(model_.mc)));
3966  cmx = pow((1.0+(dv0/pc_t)),(-(model_.mc)));
3967  cl = (((1.0-sel)*crt)+(sel*cmx));
3968  ql = (((Vbep-vl)+vl0)*cl);
3969  qdbep = ((ql+qlo)-qlo0);
3970  }
3971  else
3972  {
3973  mv0 = sqrt(((dv0*dv0)+((4*(model_.ajc))*(model_.ajc))));
3974  vl0 = ((-0.5)*(dv0+mv0));
3975  q0 = (((-pc_t)*pow((1.0-(vl0/pc_t)),(1.0-(model_.mc))))/(1.0-(model_.mc)));
3976  dv = (Vbep+dv0);
3977  mv = sqrt(((dv*dv)+((4*(model_.ajc))*(model_.ajc))));
3978  vl = ((0.5*(dv-mv))-dv0);
3979  qlo = (((-pc_t)*pow((1.0-(vl/pc_t)),(1.0-(model_.mc))))/(1.0-(model_.mc)));
3980  qdbep = ((qlo+(pow((1.0-(model_.fc)),(-(model_.mc)))*((Vbep-vl)+vl0)))-q0);
3981  }
3982  }
3983  }
3984  // End block qdbepBlock
3985  sgIf = ((Ifi>0.0)?1.0:0.0);
3986  rIf = ((Ifi*sgIf)*Iitf);
3987  mIf = (rIf/(rIf+1.0));
3988  arg = ((Vbci*Ivtf)/1.44);
3989  if ((arg<VmaxExp))
3990  {
3991  expi = exp(arg);
3992  }
3993  else
3994  {
3995  expi = (exp(VmaxExp)*(1.0+(arg-VmaxExp)));
3996  }
3997  tff = (((model_.tf)*(1.0+((model_.qtf)*q1)))*(1.0+((((model_.xtf)*expi)*(sltf+(mIf*mIf)))*sgIf)));
3998  Qbe = (((cje_t*qdbe)*(model_.wbe))+((tff*Ifi)/qb));
3999  Qbex = ((cje_t*qdbex)*(1.0-(model_.wbe)));
4000  Qbc = (((cjc_t*qdbc)+((model_.tr)*Iri))+((model_.qco)*Kbci));
4001  Qbcx = ((model_.qco)*Kbcx);
4002  Qbep = ((cjep_t*qdbep)+((model_.tr)*Ifp));
4003  Qbcp = ((cjcp_t*qdbcp)+((model_.ccso)*Vbcp));
4004  Qbeo = (Vbe*(model_.cbeo));
4005  Qbco = (Vbc*(model_.cbco));
4006  Qcth = (dt_et*(model_.cth));
4007  Qxf1 = ((model_.td)*Vxf1);
4008  Qxf2 = (((model_.td)*Vxf2)*0.3333333333333333);
4009  Qbe = (((model_.VBICtype)*mMod)*Qbe);
4010  Qbex = (((model_.VBICtype)*mMod)*Qbex);
4011  Qbc = (((model_.VBICtype)*mMod)*Qbc);
4012  Qbcx = (((model_.VBICtype)*mMod)*Qbcx);
4013  Qbep = (((model_.VBICtype)*mMod)*Qbep);
4014  Qbeo = (mMod*Qbeo);
4015  Qbco = (mMod*Qbco);
4016  Qbcp = (((model_.VBICtype)*mMod)*Qbcp);
4017  Qcth = (mMod*Qcth);
4018  }
4019  // End block evaluateDynamic
4020  //Begin block loadStatic
4021  {
4022  // I(bi,ei) <+ (Ibe)
4023  {
4024  AdmsFadType contribTemp;
4025  contribTemp= Ibe;
4026  staticContributions[admsNodeID_bi] += contribTemp;
4027  staticContributions[admsNodeID_ei] -= contribTemp;
4028 
4031  }
4032  // I(bx,ei) <+ (Ibex)
4033  {
4034  AdmsFadType contribTemp;
4035  contribTemp= Ibex;
4036  staticContributions[admsNodeID_bx] += contribTemp;
4037  staticContributions[admsNodeID_ei] -= contribTemp;
4038 
4041  }
4042  // I(ci,ei) <+ (Itxf)
4045  // I(ei,ci) <+ (Itzr)
4046  {
4047  AdmsFadType contribTemp;
4048  contribTemp= Itzr;
4049  staticContributions[admsNodeID_ei] += contribTemp;
4050  staticContributions[admsNodeID_ci] -= contribTemp;
4051 
4054  }
4055  // I(bi,ci) <+ (Ibc)
4056  {
4057  AdmsFadType contribTemp;
4058  contribTemp= Ibc;
4059  staticContributions[admsNodeID_bi] += contribTemp;
4060  staticContributions[admsNodeID_ci] -= contribTemp;
4061 
4064  }
4065  // I(bx,cx) <+ (Igcx)
4066  {
4067  AdmsFadType contribTemp;
4068  contribTemp= Igcx;
4069  staticContributions[admsNodeID_bx] += contribTemp;
4070  staticContributions[admsNodeID_cx] -= contribTemp;
4071 
4074  }
4075  // I(bx,bp) <+ (Ibep)
4076  {
4077  AdmsFadType contribTemp;
4078  contribTemp= Ibep;
4079  staticContributions[admsNodeID_bx] += contribTemp;
4080  staticContributions[admsNodeID_bp] -= contribTemp;
4081 
4084  }
4085  // I(c,cx) <+ (Ircx)
4086  {
4087  AdmsFadType contribTemp;
4088  contribTemp= Ircx;
4089  staticContributions[admsNodeID_c] += contribTemp;
4090  staticContributions[admsNodeID_cx] -= contribTemp;
4091 
4094  }
4095  // I(cx,ci) <+ (Irci)
4096  {
4097  AdmsFadType contribTemp;
4098  contribTemp= Irci;
4099  staticContributions[admsNodeID_cx] += contribTemp;
4100  staticContributions[admsNodeID_ci] -= contribTemp;
4101 
4104  }
4105  // I(b,bx) <+ (Irbx)
4106  {
4107  AdmsFadType contribTemp;
4108  contribTemp= Irbx;
4109  staticContributions[admsNodeID_b] += contribTemp;
4110  staticContributions[admsNodeID_bx] -= contribTemp;
4111 
4114  }
4115  // I(bx,bi) <+ (Irbi)
4116  {
4117  AdmsFadType contribTemp;
4118  contribTemp= Irbi;
4119  staticContributions[admsNodeID_bx] += contribTemp;
4120  staticContributions[admsNodeID_bi] -= contribTemp;
4121 
4124  }
4125  // I(e,ei) <+ (Ire)
4126  {
4127  AdmsFadType contribTemp;
4128  contribTemp= Ire;
4129  staticContributions[admsNodeID_e] += contribTemp;
4130  staticContributions[admsNodeID_ei] -= contribTemp;
4131 
4134  }
4135  // I(bp,cx) <+ (Irbp)
4136  {
4137  AdmsFadType contribTemp;
4138  contribTemp= Irbp;
4139  staticContributions[admsNodeID_bp] += contribTemp;
4140  staticContributions[admsNodeID_cx] -= contribTemp;
4141 
4144  }
4145  // I(si,bp) <+ (Ibcp)
4146  {
4147  AdmsFadType contribTemp;
4148  contribTemp= Ibcp;
4149  staticContributions[admsNodeID_si] += contribTemp;
4150  staticContributions[admsNodeID_bp] -= contribTemp;
4151 
4154  }
4155  // I(bx,si) <+ (Iccp)
4156  {
4157  AdmsFadType contribTemp;
4158  contribTemp= Iccp;
4159  staticContributions[admsNodeID_bx] += contribTemp;
4160  staticContributions[admsNodeID_si] -= contribTemp;
4161 
4164  }
4165  // I(s,si) <+ (Irs)
4166  {
4167  AdmsFadType contribTemp;
4168  contribTemp= Irs;
4169  staticContributions[admsNodeID_s] += contribTemp;
4170  staticContributions[admsNodeID_si] -= contribTemp;
4171 
4174  }
4175  // I(xf1,GND) <+ (Ixf1)
4176  {
4177  AdmsFadType contribTemp;
4178  contribTemp= Ixf1;
4179  staticContributions[admsNodeID_xf1] += contribTemp;
4180 
4182  }
4183  // I(xf2,GND) <+ (Ixf2)
4185  // Pwr(dt,GND) <+ (Irth)
4186  {
4187  AdmsFadType contribTemp;
4188  contribTemp= Irth;
4189  staticContributions[admsNodeID_dt] += contribTemp;
4190 
4192  }
4193  // Pwr(dt,GND) <+ (Ith)
4194  {
4195  AdmsFadType contribTemp;
4196  contribTemp= Ith;
4197  staticContributions[admsNodeID_dt] += contribTemp;
4198 
4200  }
4201  }
4202  // End block loadStatic
4203  //Begin block loadDynamic
4204  {
4205  // I(bi,ei) <+ (ddt(Qbe))
4206  {
4207  AdmsFadType contribTemp;
4208  contribTemp= (Qbe);
4209  dynamicContributions[admsNodeID_bi] += contribTemp;
4210  dynamicContributions[admsNodeID_ei] -= contribTemp;
4211 
4214  }
4215  // I(bx,ei) <+ (ddt(Qbex))
4216  {
4217  AdmsFadType contribTemp;
4218  contribTemp= (Qbex);
4219  dynamicContributions[admsNodeID_bx] += contribTemp;
4220  dynamicContributions[admsNodeID_ei] -= contribTemp;
4221 
4224  }
4225  // I(bi,ci) <+ (ddt(Qbc))
4226  {
4227  AdmsFadType contribTemp;
4228  contribTemp= (Qbc);
4229  dynamicContributions[admsNodeID_bi] += contribTemp;
4230  dynamicContributions[admsNodeID_ci] -= contribTemp;
4231 
4234  }
4235  // I(bi,cx) <+ (ddt(Qbcx))
4236  {
4237  AdmsFadType contribTemp;
4238  contribTemp= (Qbcx);
4239  dynamicContributions[admsNodeID_bi] += contribTemp;
4240  dynamicContributions[admsNodeID_cx] -= contribTemp;
4241 
4244  }
4245  // I(bx,bp) <+ (ddt(Qbep))
4246  {
4247  AdmsFadType contribTemp;
4248  contribTemp= (Qbep);
4249  dynamicContributions[admsNodeID_bx] += contribTemp;
4250  dynamicContributions[admsNodeID_bp] -= contribTemp;
4251 
4254  }
4255  // I(b,e) <+ (ddt(Qbeo))
4256  {
4257  AdmsFadType contribTemp;
4258  contribTemp= (Qbeo);
4259  dynamicContributions[admsNodeID_b] += contribTemp;
4260  dynamicContributions[admsNodeID_e] -= contribTemp;
4261 
4264  }
4265  // I(b,c) <+ (ddt(Qbco))
4268  // I(si,bp) <+ (ddt(Qbcp))
4269  {
4270  AdmsFadType contribTemp;
4271  contribTemp= (Qbcp);
4272  dynamicContributions[admsNodeID_si] += contribTemp;
4273  dynamicContributions[admsNodeID_bp] -= contribTemp;
4274 
4277  }
4278  // I(xf1,GND) <+ (ddt(Qxf1))
4280  // I(xf2,GND) <+ (ddt(Qxf2))
4282  // Pwr(dt,GND) <+ (ddt(Qcth))
4283  {
4284  AdmsFadType contribTemp;
4285  contribTemp= (Qcth);
4286  dynamicContributions[admsNodeID_dt] += contribTemp;
4287 
4289  }
4290  }
4291  // End block loadDynamic
4292 
4293 
4294  // -- endcode converted from analog/code block
4295  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4296  {
4297  Xyce::dout() << " probeVars[admsProbeID_V_xf2_GND] = "
4298  <<probeVars[admsProbeID_V_xf2_GND].val() << std::endl;
4299  Xyce::dout() << " probeVars[admsProbeID_V_xf1_GND] = "
4300  <<probeVars[admsProbeID_V_xf1_GND].val() << std::endl;
4301  Xyce::dout() << " probeVars[admsProbeID_V_s_si] = "
4302  <<probeVars[admsProbeID_V_s_si].val() << std::endl;
4303  Xyce::dout() << " probeVars[admsProbeID_V_bx_si] = "
4304  <<probeVars[admsProbeID_V_bx_si].val() << std::endl;
4305  Xyce::dout() << " probeVars[admsProbeID_V_si_bp] = "
4306  <<probeVars[admsProbeID_V_si_bp].val() << std::endl;
4307  Xyce::dout() << " probeVars[admsProbeID_V_bp_cx] = "
4308  <<probeVars[admsProbeID_V_bp_cx].val() << std::endl;
4309  Xyce::dout() << " probeVars[admsProbeID_V_e_ei] = "
4310  <<probeVars[admsProbeID_V_e_ei].val() << std::endl;
4311  Xyce::dout() << " probeVars[admsProbeID_V_bx_bi] = "
4312  <<probeVars[admsProbeID_V_bx_bi].val() << std::endl;
4313  Xyce::dout() << " probeVars[admsProbeID_V_b_bx] = "
4314  <<probeVars[admsProbeID_V_b_bx].val() << std::endl;
4315  Xyce::dout() << " probeVars[admsProbeID_V_cx_ci] = "
4316  <<probeVars[admsProbeID_V_cx_ci].val() << std::endl;
4317  Xyce::dout() << " probeVars[admsProbeID_V_c_cx] = "
4318  <<probeVars[admsProbeID_V_c_cx].val() << std::endl;
4319  Xyce::dout() << " probeVars[admsProbeID_V_b_c] = "
4320  <<probeVars[admsProbeID_V_b_c].val() << std::endl;
4321  Xyce::dout() << " probeVars[admsProbeID_V_b_e] = "
4322  <<probeVars[admsProbeID_V_b_e].val() << std::endl;
4323  Xyce::dout() << " probeVars[admsProbeID_V_bx_bp] = "
4324  <<probeVars[admsProbeID_V_bx_bp].val() << std::endl;
4325  Xyce::dout() << " probeVars[admsProbeID_V_ci_ei] = "
4326  <<probeVars[admsProbeID_V_ci_ei].val() << std::endl;
4327  Xyce::dout() << " probeVars[admsProbeID_V_bx_cx] = "
4328  <<probeVars[admsProbeID_V_bx_cx].val() << std::endl;
4329  Xyce::dout() << " probeVars[admsProbeID_V_bi_cx] = "
4330  <<probeVars[admsProbeID_V_bi_cx].val() << std::endl;
4331  Xyce::dout() << " probeVars[admsProbeID_V_bi_ci] = "
4332  <<probeVars[admsProbeID_V_bi_ci].val() << std::endl;
4333  Xyce::dout() << " probeVars[admsProbeID_V_bx_ei] = "
4334  <<probeVars[admsProbeID_V_bx_ei].val() << std::endl;
4335  Xyce::dout() << " probeVars[admsProbeID_V_bi_ei] = "
4336  <<probeVars[admsProbeID_V_bi_ei].val() << std::endl;
4337  Xyce::dout() << " probeVars[admsProbeID_Temp_dt_GND] = "
4338  <<probeVars[admsProbeID_Temp_dt_GND].val() << std::endl;
4339  Xyce::dout() << " staticContributions[admsNodeID_c] = "
4340  <<staticContributions[admsNodeID_c].val() << std::endl;
4341  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_xf2_GND) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_xf2_GND) << std::endl;
4342  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_xf1_GND) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_xf1_GND) << std::endl;
4343  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_s_si) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_s_si) << std::endl;
4344  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_bx_si) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_bx_si) << std::endl;
4345  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_si_bp) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_si_bp) << std::endl;
4346  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_bp_cx) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_bp_cx) << std::endl;
4347  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_e_ei) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_e_ei) << std::endl;
4348  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_bx_bi) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_bx_bi) << std::endl;
4349  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_b_bx) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_b_bx) << std::endl;
4350  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_cx_ci) << std::endl;
4351  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_c_cx) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_c_cx) << std::endl;
4352  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_b_c) << std::endl;
4353  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_b_e) << std::endl;
4354  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_bx_bp) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_bx_bp) << std::endl;
4355  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_ci_ei) << std::endl;
4356  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_bx_cx) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_bx_cx) << std::endl;
4357  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_bi_cx) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_bi_cx) << std::endl;
4358  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_bi_ci) << std::endl;
4359  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_bx_ei) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_bx_ei) << std::endl;
4360  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_bi_ei) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_bi_ei) << std::endl;
4361  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_Temp_dt_GND) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_Temp_dt_GND) << std::endl;
4362  Xyce::dout() << " dynamicContributions[admsNodeID_c] = "
4363  <<dynamicContributions[admsNodeID_c].val() << std::endl;
4364  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_xf2_GND) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_xf2_GND) << std::endl;
4365  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_xf1_GND) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_xf1_GND) << std::endl;
4366  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_s_si) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_s_si) << std::endl;
4367  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bx_si) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bx_si) << std::endl;
4368  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_si_bp) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_si_bp) << std::endl;
4369  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bp_cx) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bp_cx) << std::endl;
4370  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_e_ei) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_e_ei) << std::endl;
4371  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bx_bi) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bx_bi) << std::endl;
4372  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_bx) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_bx) << std::endl;
4373  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_cx_ci) << std::endl;
4374  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_c_cx) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_c_cx) << std::endl;
4375  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c) << std::endl;
4376  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_e) << std::endl;
4377  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bx_bp) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bx_bp) << std::endl;
4378  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ci_ei) << std::endl;
4379  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bx_cx) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bx_cx) << std::endl;
4380  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bi_cx) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bi_cx) << std::endl;
4381  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bi_ci) << std::endl;
4382  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bx_ei) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bx_ei) << std::endl;
4383  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bi_ei) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bi_ei) << std::endl;
4384  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_Temp_dt_GND) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_Temp_dt_GND) << std::endl;
4385  Xyce::dout() << " Jdxp_static[admsNodeID_c] = "
4386  <<Jdxp_static[admsNodeID_c] << std::endl;
4387  Xyce::dout() << " Jdxp_dynamic[admsNodeID_c] = "
4388  <<Jdxp_dynamic[admsNodeID_c] << std::endl;
4389  Xyce::dout() << " staticContributions[admsNodeID_b] = "
4390  <<staticContributions[admsNodeID_b].val() << std::endl;
4391  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_xf2_GND) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_xf2_GND) << std::endl;
4392  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_xf1_GND) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_xf1_GND) << std::endl;
4393  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_s_si) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_s_si) << std::endl;
4394  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_bx_si) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_bx_si) << std::endl;
4395  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_si_bp) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_si_bp) << std::endl;
4396  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_bp_cx) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_bp_cx) << std::endl;
4397  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_e_ei) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_e_ei) << std::endl;
4398  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_bx_bi) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_bx_bi) << std::endl;
4399  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_b_bx) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_b_bx) << std::endl;
4400  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_cx_ci) << std::endl;
4401  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_c_cx) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_c_cx) << std::endl;
4402  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_b_c) << std::endl;
4403  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_b_e) << std::endl;
4404  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_bx_bp) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_bx_bp) << std::endl;
4405  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_ci_ei) << std::endl;
4406  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_bx_cx) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_bx_cx) << std::endl;
4407  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_bi_cx) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_bi_cx) << std::endl;
4408  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_bi_ci) << std::endl;
4409  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_bx_ei) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_bx_ei) << std::endl;
4410  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_bi_ei) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_bi_ei) << std::endl;
4411  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_Temp_dt_GND) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_Temp_dt_GND) << std::endl;
4412  Xyce::dout() << " dynamicContributions[admsNodeID_b] = "
4413  <<dynamicContributions[admsNodeID_b].val() << std::endl;
4414  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_xf2_GND) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_xf2_GND) << std::endl;
4415  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_xf1_GND) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_xf1_GND) << std::endl;
4416  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_s_si) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_s_si) << std::endl;
4417  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bx_si) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bx_si) << std::endl;
4418  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_si_bp) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_si_bp) << std::endl;
4419  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bp_cx) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bp_cx) << std::endl;
4420  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_e_ei) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_e_ei) << std::endl;
4421  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bx_bi) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bx_bi) << std::endl;
4422  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_bx) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_bx) << std::endl;
4423  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_cx_ci) << std::endl;
4424  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c_cx) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c_cx) << std::endl;
4425  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c) << std::endl;
4426  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_e) << std::endl;
4427  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bx_bp) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bx_bp) << std::endl;
4428  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ci_ei) << std::endl;
4429  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bx_cx) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bx_cx) << std::endl;
4430  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bi_cx) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bi_cx) << std::endl;
4431  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bi_ci) << std::endl;
4432  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bx_ei) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bx_ei) << std::endl;
4433  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bi_ei) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bi_ei) << std::endl;
4434  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_Temp_dt_GND) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_Temp_dt_GND) << std::endl;
4435  Xyce::dout() << " Jdxp_static[admsNodeID_b] = "
4436  <<Jdxp_static[admsNodeID_b] << std::endl;
4437  Xyce::dout() << " Jdxp_dynamic[admsNodeID_b] = "
4438  <<Jdxp_dynamic[admsNodeID_b] << std::endl;
4439  Xyce::dout() << " staticContributions[admsNodeID_e] = "
4440  <<staticContributions[admsNodeID_e].val() << std::endl;
4441  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_xf2_GND) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_xf2_GND) << std::endl;
4442  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_xf1_GND) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_xf1_GND) << std::endl;
4443  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_s_si) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_s_si) << std::endl;
4444  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_bx_si) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_bx_si) << std::endl;
4445  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_si_bp) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_si_bp) << std::endl;
4446  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_bp_cx) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_bp_cx) << std::endl;
4447  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_e_ei) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_e_ei) << std::endl;
4448  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_bx_bi) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_bx_bi) << std::endl;
4449  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_b_bx) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_b_bx) << std::endl;
4450  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_cx_ci) << std::endl;
4451  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_c_cx) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_c_cx) << std::endl;
4452  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_b_c) << std::endl;
4453  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_b_e) << std::endl;
4454  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_bx_bp) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_bx_bp) << std::endl;
4455  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_ci_ei) << std::endl;
4456  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_bx_cx) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_bx_cx) << std::endl;
4457  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_bi_cx) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_bi_cx) << std::endl;
4458  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_bi_ci) << std::endl;
4459  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_bx_ei) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_bx_ei) << std::endl;
4460  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_bi_ei) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_bi_ei) << std::endl;
4461  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_Temp_dt_GND) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_Temp_dt_GND) << std::endl;
4462  Xyce::dout() << " dynamicContributions[admsNodeID_e] = "
4463  <<dynamicContributions[admsNodeID_e].val() << std::endl;
4464  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_xf2_GND) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_xf2_GND) << std::endl;
4465  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_xf1_GND) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_xf1_GND) << std::endl;
4466  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_s_si) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_s_si) << std::endl;
4467  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bx_si) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bx_si) << std::endl;
4468  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_si_bp) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_si_bp) << std::endl;
4469  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bp_cx) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bp_cx) << std::endl;
4470  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_e_ei) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_e_ei) << std::endl;
4471  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bx_bi) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bx_bi) << std::endl;
4472  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_bx) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_bx) << std::endl;
4473  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_cx_ci) << std::endl;
4474  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_c_cx) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_c_cx) << std::endl;
4475  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_c) << std::endl;
4476  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_e) << std::endl;
4477  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bx_bp) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bx_bp) << std::endl;
4478  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ci_ei) << std::endl;
4479  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bx_cx) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bx_cx) << std::endl;
4480  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bi_cx) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bi_cx) << std::endl;
4481  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bi_ci) << std::endl;
4482  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bx_ei) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bx_ei) << std::endl;
4483  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bi_ei) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bi_ei) << std::endl;
4484  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_Temp_dt_GND) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_Temp_dt_GND) << std::endl;
4485  Xyce::dout() << " Jdxp_static[admsNodeID_e] = "
4486  <<Jdxp_static[admsNodeID_e] << std::endl;
4487  Xyce::dout() << " Jdxp_dynamic[admsNodeID_e] = "
4488  <<Jdxp_dynamic[admsNodeID_e] << std::endl;
4489  Xyce::dout() << " staticContributions[admsNodeID_s] = "
4490  <<staticContributions[admsNodeID_s].val() << std::endl;
4491  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_xf2_GND) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_xf2_GND) << std::endl;
4492  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_xf1_GND) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_xf1_GND) << std::endl;
4493  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_s_si) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_s_si) << std::endl;
4494  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_bx_si) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_bx_si) << std::endl;
4495  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_si_bp) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_si_bp) << std::endl;
4496  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_bp_cx) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_bp_cx) << std::endl;
4497  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_e_ei) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_e_ei) << std::endl;
4498  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_bx_bi) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_bx_bi) << std::endl;
4499  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_b_bx) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_b_bx) << std::endl;
4500  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_cx_ci) << std::endl;
4501  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_c_cx) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_c_cx) << std::endl;
4502  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_b_c) << std::endl;
4503  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_b_e) << std::endl;
4504  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_bx_bp) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_bx_bp) << std::endl;
4505  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_ci_ei) << std::endl;
4506  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_bx_cx) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_bx_cx) << std::endl;
4507  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_bi_cx) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_bi_cx) << std::endl;
4508  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_bi_ci) << std::endl;
4509  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_bx_ei) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_bx_ei) << std::endl;
4510  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_bi_ei) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_bi_ei) << std::endl;
4511  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_Temp_dt_GND) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_Temp_dt_GND) << std::endl;
4512  Xyce::dout() << " dynamicContributions[admsNodeID_s] = "
4513  <<dynamicContributions[admsNodeID_s].val() << std::endl;
4514  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_xf2_GND) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_xf2_GND) << std::endl;
4515  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_xf1_GND) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_xf1_GND) << std::endl;
4516  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_s_si) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_s_si) << std::endl;
4517  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bx_si) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bx_si) << std::endl;
4518  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_si_bp) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_si_bp) << std::endl;
4519  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bp_cx) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bp_cx) << std::endl;
4520  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_e_ei) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_e_ei) << std::endl;
4521  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bx_bi) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bx_bi) << std::endl;
4522  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b_bx) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b_bx) << std::endl;
4523  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_cx_ci) << std::endl;
4524  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_c_cx) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_c_cx) << std::endl;
4525  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b_c) << std::endl;
4526  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b_e) << std::endl;
4527  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bx_bp) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bx_bp) << std::endl;
4528  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_ci_ei) << std::endl;
4529  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bx_cx) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bx_cx) << std::endl;
4530  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bi_cx) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bi_cx) << std::endl;
4531  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bi_ci) << std::endl;
4532  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bx_ei) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bx_ei) << std::endl;
4533  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bi_ei) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_bi_ei) << std::endl;
4534  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_Temp_dt_GND) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_Temp_dt_GND) << std::endl;
4535  Xyce::dout() << " Jdxp_static[admsNodeID_s] = "
4536  <<Jdxp_static[admsNodeID_s] << std::endl;
4537  Xyce::dout() << " Jdxp_dynamic[admsNodeID_s] = "
4538  <<Jdxp_dynamic[admsNodeID_s] << std::endl;
4539  Xyce::dout() << " staticContributions[admsNodeID_dt] = "
4540  <<staticContributions[admsNodeID_dt].val() << std::endl;
4541  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_xf2_GND) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_xf2_GND) << std::endl;
4542  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_xf1_GND) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_xf1_GND) << std::endl;
4543  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_s_si) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_s_si) << std::endl;
4544  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_bx_si) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_bx_si) << std::endl;
4545  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_si_bp) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_si_bp) << std::endl;
4546  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_bp_cx) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_bp_cx) << std::endl;
4547  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_e_ei) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_e_ei) << std::endl;
4548  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_bx_bi) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_bx_bi) << std::endl;
4549  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_bx) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_bx) << std::endl;
4550  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_cx_ci) << std::endl;
4551  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_c_cx) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_c_cx) << std::endl;
4552  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_c) << std::endl;
4553  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_e) << std::endl;
4554  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_bx_bp) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_bx_bp) << std::endl;
4555  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_ci_ei) << std::endl;
4556  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_bx_cx) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_bx_cx) << std::endl;
4557  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_bi_cx) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_bi_cx) << std::endl;
4558  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_bi_ci) << std::endl;
4559  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_bx_ei) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_bx_ei) << std::endl;
4560  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_bi_ei) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_bi_ei) << std::endl;
4561  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_Temp_dt_GND) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_Temp_dt_GND) << std::endl;
4562  Xyce::dout() << " dynamicContributions[admsNodeID_dt] = "
4563  <<dynamicContributions[admsNodeID_dt].val() << std::endl;
4564  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_xf2_GND) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_xf2_GND) << std::endl;
4565  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_xf1_GND) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_xf1_GND) << std::endl;
4566  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_s_si) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_s_si) << std::endl;
4567  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bx_si) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bx_si) << std::endl;
4568  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_si_bp) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_si_bp) << std::endl;
4569  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bp_cx) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bp_cx) << std::endl;
4570  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_e_ei) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_e_ei) << std::endl;
4571  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bx_bi) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bx_bi) << std::endl;
4572  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b_bx) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b_bx) << std::endl;
4573  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_cx_ci) << std::endl;
4574  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_c_cx) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_c_cx) << std::endl;
4575  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b_c) << std::endl;
4576  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b_e) << std::endl;
4577  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bx_bp) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bx_bp) << std::endl;
4578  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_ci_ei) << std::endl;
4579  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bx_cx) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bx_cx) << std::endl;
4580  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bi_cx) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bi_cx) << std::endl;
4581  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bi_ci) << std::endl;
4582  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bx_ei) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bx_ei) << std::endl;
4583  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bi_ei) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_bi_ei) << std::endl;
4584  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_Temp_dt_GND) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_Temp_dt_GND) << std::endl;
4585  Xyce::dout() << " Jdxp_static[admsNodeID_dt] = "
4586  <<Jdxp_static[admsNodeID_dt] << std::endl;
4587  Xyce::dout() << " Jdxp_dynamic[admsNodeID_dt] = "
4588  <<Jdxp_dynamic[admsNodeID_dt] << std::endl;
4589  Xyce::dout() << " staticContributions[admsNodeID_cx] = "
4590  <<staticContributions[admsNodeID_cx].val() << std::endl;
4591  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_xf2_GND) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_xf2_GND) << std::endl;
4592  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_xf1_GND) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_xf1_GND) << std::endl;
4593  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_s_si) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_s_si) << std::endl;
4594  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_bx_si) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_bx_si) << std::endl;
4595  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_si_bp) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_si_bp) << std::endl;
4596  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_bp_cx) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_bp_cx) << std::endl;
4597  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_e_ei) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_e_ei) << std::endl;
4598  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_bx_bi) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_bx_bi) << std::endl;
4599  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_b_bx) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_b_bx) << std::endl;
4600  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci) << std::endl;
4601  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_c_cx) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_c_cx) << std::endl;
4602  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_b_c) << std::endl;
4603  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_b_e) << std::endl;
4604  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_bx_bp) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_bx_bp) << std::endl;
4605  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_ci_ei) << std::endl;
4606  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_bx_cx) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_bx_cx) << std::endl;
4607  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_bi_cx) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_bi_cx) << std::endl;
4608  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ci) << std::endl;
4609  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_bx_ei) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_bx_ei) << std::endl;
4610  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ei) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ei) << std::endl;
4611  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_Temp_dt_GND) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_Temp_dt_GND) << std::endl;
4612  Xyce::dout() << " dynamicContributions[admsNodeID_cx] = "
4613  <<dynamicContributions[admsNodeID_cx].val() << std::endl;
4614  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_xf2_GND) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_xf2_GND) << std::endl;
4615  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_xf1_GND) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_xf1_GND) << std::endl;
4616  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_s_si) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_s_si) << std::endl;
4617  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bx_si) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bx_si) << std::endl;
4618  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_si_bp) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_si_bp) << std::endl;
4619  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bp_cx) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bp_cx) << std::endl;
4620  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_e_ei) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_e_ei) << std::endl;
4621  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bx_bi) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bx_bi) << std::endl;
4622  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_b_bx) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_b_bx) << std::endl;
4623  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci) << std::endl;
4624  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_c_cx) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_c_cx) << std::endl;
4625  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_b_c) << std::endl;
4626  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_b_e) << std::endl;
4627  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bx_bp) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bx_bp) << std::endl;
4628  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ci_ei) << std::endl;
4629  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bx_cx) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bx_cx) << std::endl;
4630  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bi_cx) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bi_cx) << std::endl;
4631  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ci) << std::endl;
4632  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bx_ei) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bx_ei) << std::endl;
4633  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ei) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ei) << std::endl;
4634  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_Temp_dt_GND) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_Temp_dt_GND) << std::endl;
4635  Xyce::dout() << " Jdxp_static[admsNodeID_cx] = "
4636  <<Jdxp_static[admsNodeID_cx] << std::endl;
4637  Xyce::dout() << " Jdxp_dynamic[admsNodeID_cx] = "
4638  <<Jdxp_dynamic[admsNodeID_cx] << std::endl;
4639  Xyce::dout() << " staticContributions[admsNodeID_ci] = "
4640  <<staticContributions[admsNodeID_ci].val() << std::endl;
4641  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_xf2_GND) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_xf2_GND) << std::endl;
4642  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_xf1_GND) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_xf1_GND) << std::endl;
4643  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_s_si) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_s_si) << std::endl;
4644  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_bx_si) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_bx_si) << std::endl;
4645  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_si_bp) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_si_bp) << std::endl;
4646  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_bp_cx) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_bp_cx) << std::endl;
4647  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_e_ei) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_e_ei) << std::endl;
4648  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_bx_bi) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_bx_bi) << std::endl;
4649  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_b_bx) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_b_bx) << std::endl;
4650  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci) << std::endl;
4651  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_c_cx) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_c_cx) << std::endl;
4652  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_b_c) << std::endl;
4653  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_b_e) << std::endl;
4654  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_bx_bp) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_bx_bp) << std::endl;
4655  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_ci_ei) << std::endl;
4656  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_bx_cx) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_bx_cx) << std::endl;
4657  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_bi_cx) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_bi_cx) << std::endl;
4658  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci) << std::endl;
4659  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_bx_ei) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_bx_ei) << std::endl;
4660  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ei) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ei) << std::endl;
4661  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_Temp_dt_GND) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_Temp_dt_GND) << std::endl;
4662  Xyce::dout() << " dynamicContributions[admsNodeID_ci] = "
4663  <<dynamicContributions[admsNodeID_ci].val() << std::endl;
4664  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_xf2_GND) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_xf2_GND) << std::endl;
4665  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_xf1_GND) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_xf1_GND) << std::endl;
4666  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_s_si) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_s_si) << std::endl;
4667  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bx_si) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bx_si) << std::endl;
4668  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_si_bp) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_si_bp) << std::endl;
4669  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bp_cx) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bp_cx) << std::endl;
4670  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_e_ei) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_e_ei) << std::endl;
4671  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bx_bi) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bx_bi) << std::endl;
4672  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_b_bx) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_b_bx) << std::endl;
4673  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci) << std::endl;
4674  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_c_cx) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_c_cx) << std::endl;
4675  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_b_c) << std::endl;
4676  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_b_e) << std::endl;
4677  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bx_bp) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bx_bp) << std::endl;
4678  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ci_ei) << std::endl;
4679  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bx_cx) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bx_cx) << std::endl;
4680  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_cx) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_cx) << std::endl;
4681  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci) << std::endl;
4682  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bx_ei) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bx_ei) << std::endl;
4683  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ei) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ei) << std::endl;
4684  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_Temp_dt_GND) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_Temp_dt_GND) << std::endl;
4685  Xyce::dout() << " Jdxp_static[admsNodeID_ci] = "
4686  <<Jdxp_static[admsNodeID_ci] << std::endl;
4687  Xyce::dout() << " Jdxp_dynamic[admsNodeID_ci] = "
4688  <<Jdxp_dynamic[admsNodeID_ci] << std::endl;
4689  Xyce::dout() << " staticContributions[admsNodeID_bx] = "
4690  <<staticContributions[admsNodeID_bx].val() << std::endl;
4691  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_xf2_GND) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_xf2_GND) << std::endl;
4692  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_xf1_GND) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_xf1_GND) << std::endl;
4693  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_s_si) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_s_si) << std::endl;
4694  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_bx_si) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_bx_si) << std::endl;
4695  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_si_bp) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_si_bp) << std::endl;
4696  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_bp_cx) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_bp_cx) << std::endl;
4697  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_e_ei) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_e_ei) << std::endl;
4698  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_bx_bi) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_bx_bi) << std::endl;
4699  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_b_bx) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_b_bx) << std::endl;
4700  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_cx_ci) << std::endl;
4701  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_c_cx) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_c_cx) << std::endl;
4702  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_b_c) << std::endl;
4703  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_b_e) << std::endl;
4704  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_bx_bp) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_bx_bp) << std::endl;
4705  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_ci_ei) << std::endl;
4706  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_bx_cx) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_bx_cx) << std::endl;
4707  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_bi_cx) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_bi_cx) << std::endl;
4708  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_bi_ci) << std::endl;
4709  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_bx_ei) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_bx_ei) << std::endl;
4710  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_V_bi_ei) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_V_bi_ei) << std::endl;
4711  Xyce::dout() << " staticContributions[admsNodeID_bx].dx(admsProbeID_Temp_dt_GND) = " <<staticContributions[admsNodeID_bx].dx(admsProbeID_Temp_dt_GND) << std::endl;
4712  Xyce::dout() << " dynamicContributions[admsNodeID_bx] = "
4713  <<dynamicContributions[admsNodeID_bx].val() << std::endl;
4714  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_xf2_GND) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_xf2_GND) << std::endl;
4715  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_xf1_GND) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_xf1_GND) << std::endl;
4716  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_s_si) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_s_si) << std::endl;
4717  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bx_si) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bx_si) << std::endl;
4718  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_si_bp) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_si_bp) << std::endl;
4719  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bp_cx) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bp_cx) << std::endl;
4720  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_e_ei) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_e_ei) << std::endl;
4721  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bx_bi) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bx_bi) << std::endl;
4722  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_b_bx) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_b_bx) << std::endl;
4723  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_cx_ci) << std::endl;
4724  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_c_cx) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_c_cx) << std::endl;
4725  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_b_c) << std::endl;
4726  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_b_e) << std::endl;
4727  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bx_bp) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bx_bp) << std::endl;
4728  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_ci_ei) << std::endl;
4729  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bx_cx) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bx_cx) << std::endl;
4730  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bi_cx) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bi_cx) << std::endl;
4731  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bi_ci) << std::endl;
4732  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bx_ei) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bx_ei) << std::endl;
4733  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bi_ei) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bi_ei) << std::endl;
4734  Xyce::dout() << " dynamicContributions[admsNodeID_bx].dx(admsProbeID_Temp_dt_GND) = " <<dynamicContributions[admsNodeID_bx].dx(admsProbeID_Temp_dt_GND) << std::endl;
4735  Xyce::dout() << " Jdxp_static[admsNodeID_bx] = "
4736  <<Jdxp_static[admsNodeID_bx] << std::endl;
4737  Xyce::dout() << " Jdxp_dynamic[admsNodeID_bx] = "
4738  <<Jdxp_dynamic[admsNodeID_bx] << std::endl;
4739  Xyce::dout() << " staticContributions[admsNodeID_bi] = "
4740  <<staticContributions[admsNodeID_bi].val() << std::endl;
4741  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_xf2_GND) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_xf2_GND) << std::endl;
4742  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_xf1_GND) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_xf1_GND) << std::endl;
4743  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_s_si) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_s_si) << std::endl;
4744  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_bx_si) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_bx_si) << std::endl;
4745  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_si_bp) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_si_bp) << std::endl;
4746  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_bp_cx) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_bp_cx) << std::endl;
4747  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_e_ei) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_e_ei) << std::endl;
4748  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_bx_bi) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_bx_bi) << std::endl;
4749  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_b_bx) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_b_bx) << std::endl;
4750  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_cx_ci) << std::endl;
4751  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_c_cx) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_c_cx) << std::endl;
4752  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_b_c) << std::endl;
4753  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_b_e) << std::endl;
4754  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_bx_bp) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_bx_bp) << std::endl;
4755  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_ci_ei) << std::endl;
4756  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_bx_cx) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_bx_cx) << std::endl;
4757  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_cx) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_cx) << std::endl;
4758  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci) << std::endl;
4759  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_bx_ei) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_bx_ei) << std::endl;
4760  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ei) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ei) << std::endl;
4761  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_Temp_dt_GND) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_Temp_dt_GND) << std::endl;
4762  Xyce::dout() << " dynamicContributions[admsNodeID_bi] = "
4763  <<dynamicContributions[admsNodeID_bi].val() << std::endl;
4764  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_xf2_GND) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_xf2_GND) << std::endl;
4765  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_xf1_GND) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_xf1_GND) << std::endl;
4766  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_s_si) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_s_si) << std::endl;
4767  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bx_si) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bx_si) << std::endl;
4768  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_si_bp) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_si_bp) << std::endl;
4769  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bp_cx) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bp_cx) << std::endl;
4770  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_e_ei) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_e_ei) << std::endl;
4771  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bx_bi) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bx_bi) << std::endl;
4772  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_b_bx) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_b_bx) << std::endl;
4773  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_cx_ci) << std::endl;
4774  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_c_cx) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_c_cx) << std::endl;
4775  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_b_c) << std::endl;
4776  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_b_e) << std::endl;
4777  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bx_bp) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bx_bp) << std::endl;
4778  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ci_ei) << std::endl;
4779  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bx_cx) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bx_cx) << std::endl;
4780  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_cx) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_cx) << std::endl;
4781  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci) << std::endl;
4782  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bx_ei) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bx_ei) << std::endl;
4783  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ei) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ei) << std::endl;
4784  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_Temp_dt_GND) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_Temp_dt_GND) << std::endl;
4785  Xyce::dout() << " Jdxp_static[admsNodeID_bi] = "
4786  <<Jdxp_static[admsNodeID_bi] << std::endl;
4787  Xyce::dout() << " Jdxp_dynamic[admsNodeID_bi] = "
4788  <<Jdxp_dynamic[admsNodeID_bi] << std::endl;
4789  Xyce::dout() << " staticContributions[admsNodeID_ei] = "
4790  <<staticContributions[admsNodeID_ei].val() << std::endl;
4791  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_xf2_GND) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_xf2_GND) << std::endl;
4792  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_xf1_GND) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_xf1_GND) << std::endl;
4793  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_s_si) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_s_si) << std::endl;
4794  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_bx_si) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_bx_si) << std::endl;
4795  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_si_bp) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_si_bp) << std::endl;
4796  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_bp_cx) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_bp_cx) << std::endl;
4797  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_e_ei) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_e_ei) << std::endl;
4798  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_bx_bi) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_bx_bi) << std::endl;
4799  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_b_bx) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_b_bx) << std::endl;
4800  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_cx_ci) << std::endl;
4801  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_c_cx) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_c_cx) << std::endl;
4802  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_b_c) << std::endl;
4803  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_b_e) << std::endl;
4804  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_bx_bp) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_bx_bp) << std::endl;
4805  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_ci_ei) << std::endl;
4806  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_bx_cx) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_bx_cx) << std::endl;
4807  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_bi_cx) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_bi_cx) << std::endl;
4808  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ci) << std::endl;
4809  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_bx_ei) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_bx_ei) << std::endl;
4810  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ei) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ei) << std::endl;
4811  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_Temp_dt_GND) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_Temp_dt_GND) << std::endl;
4812  Xyce::dout() << " dynamicContributions[admsNodeID_ei] = "
4813  <<dynamicContributions[admsNodeID_ei].val() << std::endl;
4814  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_xf2_GND) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_xf2_GND) << std::endl;
4815  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_xf1_GND) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_xf1_GND) << std::endl;
4816  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_s_si) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_s_si) << std::endl;
4817  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bx_si) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bx_si) << std::endl;
4818  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_si_bp) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_si_bp) << std::endl;
4819  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bp_cx) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bp_cx) << std::endl;
4820  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_e_ei) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_e_ei) << std::endl;
4821  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bx_bi) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bx_bi) << std::endl;
4822  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_b_bx) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_b_bx) << std::endl;
4823  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_cx_ci) << std::endl;
4824  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_c_cx) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_c_cx) << std::endl;
4825  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_b_c) << std::endl;
4826  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_b_e) << std::endl;
4827  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bx_bp) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bx_bp) << std::endl;
4828  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ci_ei) << std::endl;
4829  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bx_cx) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bx_cx) << std::endl;
4830  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bi_cx) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bi_cx) << std::endl;
4831  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ci) << std::endl;
4832  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bx_ei) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bx_ei) << std::endl;
4833  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ei) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ei) << std::endl;
4834  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_Temp_dt_GND) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_Temp_dt_GND) << std::endl;
4835  Xyce::dout() << " Jdxp_static[admsNodeID_ei] = "
4836  <<Jdxp_static[admsNodeID_ei] << std::endl;
4837  Xyce::dout() << " Jdxp_dynamic[admsNodeID_ei] = "
4838  <<Jdxp_dynamic[admsNodeID_ei] << std::endl;
4839  Xyce::dout() << " staticContributions[admsNodeID_bp] = "
4840  <<staticContributions[admsNodeID_bp].val() << std::endl;
4841  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_xf2_GND) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_xf2_GND) << std::endl;
4842  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_xf1_GND) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_xf1_GND) << std::endl;
4843  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_s_si) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_s_si) << std::endl;
4844  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_bx_si) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_bx_si) << std::endl;
4845  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_si_bp) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_si_bp) << std::endl;
4846  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_bp_cx) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_bp_cx) << std::endl;
4847  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_e_ei) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_e_ei) << std::endl;
4848  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_bx_bi) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_bx_bi) << std::endl;
4849  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_b_bx) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_b_bx) << std::endl;
4850  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_cx_ci) << std::endl;
4851  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_c_cx) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_c_cx) << std::endl;
4852  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_b_c) << std::endl;
4853  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_b_e) << std::endl;
4854  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_bx_bp) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_bx_bp) << std::endl;
4855  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_ci_ei) << std::endl;
4856  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_bx_cx) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_bx_cx) << std::endl;
4857  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_bi_cx) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_bi_cx) << std::endl;
4858  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ci) << std::endl;
4859  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_bx_ei) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_bx_ei) << std::endl;
4860  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ei) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ei) << std::endl;
4861  Xyce::dout() << " staticContributions[admsNodeID_bp].dx(admsProbeID_Temp_dt_GND) = " <<staticContributions[admsNodeID_bp].dx(admsProbeID_Temp_dt_GND) << std::endl;
4862  Xyce::dout() << " dynamicContributions[admsNodeID_bp] = "
4863  <<dynamicContributions[admsNodeID_bp].val() << std::endl;
4864  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_xf2_GND) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_xf2_GND) << std::endl;
4865  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_xf1_GND) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_xf1_GND) << std::endl;
4866  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_s_si) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_s_si) << std::endl;
4867  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bx_si) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bx_si) << std::endl;
4868  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_si_bp) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_si_bp) << std::endl;
4869  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bp_cx) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bp_cx) << std::endl;
4870  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_e_ei) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_e_ei) << std::endl;
4871  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bx_bi) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bx_bi) << std::endl;
4872  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_b_bx) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_b_bx) << std::endl;
4873  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_cx_ci) << std::endl;
4874  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_c_cx) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_c_cx) << std::endl;
4875  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_b_c) << std::endl;
4876  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_b_e) << std::endl;
4877  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bx_bp) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bx_bp) << std::endl;
4878  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_ci_ei) << std::endl;
4879  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bx_cx) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bx_cx) << std::endl;
4880  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bi_cx) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bi_cx) << std::endl;
4881  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ci) << std::endl;
4882  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bx_ei) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bx_ei) << std::endl;
4883  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ei) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ei) << std::endl;
4884  Xyce::dout() << " dynamicContributions[admsNodeID_bp].dx(admsProbeID_Temp_dt_GND) = " <<dynamicContributions[admsNodeID_bp].dx(admsProbeID_Temp_dt_GND) << std::endl;
4885  Xyce::dout() << " Jdxp_static[admsNodeID_bp] = "
4886  <<Jdxp_static[admsNodeID_bp] << std::endl;
4887  Xyce::dout() << " Jdxp_dynamic[admsNodeID_bp] = "
4888  <<Jdxp_dynamic[admsNodeID_bp] << std::endl;
4889  Xyce::dout() << " staticContributions[admsNodeID_si] = "
4890  <<staticContributions[admsNodeID_si].val() << std::endl;
4891  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_xf2_GND) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_xf2_GND) << std::endl;
4892  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_xf1_GND) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_xf1_GND) << std::endl;
4893  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_s_si) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_s_si) << std::endl;
4894  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_bx_si) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_bx_si) << std::endl;
4895  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_si_bp) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_si_bp) << std::endl;
4896  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_bp_cx) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_bp_cx) << std::endl;
4897  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_e_ei) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_e_ei) << std::endl;
4898  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_bx_bi) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_bx_bi) << std::endl;
4899  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_b_bx) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_b_bx) << std::endl;
4900  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_cx_ci) << std::endl;
4901  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_c_cx) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_c_cx) << std::endl;
4902  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_b_c) << std::endl;
4903  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_b_e) << std::endl;
4904  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_bx_bp) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_bx_bp) << std::endl;
4905  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_ci_ei) << std::endl;
4906  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_bx_cx) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_bx_cx) << std::endl;
4907  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_bi_cx) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_bi_cx) << std::endl;
4908  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_bi_ci) << std::endl;
4909  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_bx_ei) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_bx_ei) << std::endl;
4910  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_V_bi_ei) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_V_bi_ei) << std::endl;
4911  Xyce::dout() << " staticContributions[admsNodeID_si].dx(admsProbeID_Temp_dt_GND) = " <<staticContributions[admsNodeID_si].dx(admsProbeID_Temp_dt_GND) << std::endl;
4912  Xyce::dout() << " dynamicContributions[admsNodeID_si] = "
4913  <<dynamicContributions[admsNodeID_si].val() << std::endl;
4914  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_xf2_GND) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_xf2_GND) << std::endl;
4915  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_xf1_GND) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_xf1_GND) << std::endl;
4916  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_s_si) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_s_si) << std::endl;
4917  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bx_si) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bx_si) << std::endl;
4918  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_si_bp) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_si_bp) << std::endl;
4919  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bp_cx) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bp_cx) << std::endl;
4920  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_e_ei) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_e_ei) << std::endl;
4921  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bx_bi) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bx_bi) << std::endl;
4922  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_b_bx) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_b_bx) << std::endl;
4923  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_cx_ci) << std::endl;
4924  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_c_cx) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_c_cx) << std::endl;
4925  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_b_c) << std::endl;
4926  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_b_e) << std::endl;
4927  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bx_bp) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bx_bp) << std::endl;
4928  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_ci_ei) << std::endl;
4929  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bx_cx) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bx_cx) << std::endl;
4930  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bi_cx) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bi_cx) << std::endl;
4931  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bi_ci) << std::endl;
4932  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bx_ei) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bx_ei) << std::endl;
4933  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bi_ei) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_V_bi_ei) << std::endl;
4934  Xyce::dout() << " dynamicContributions[admsNodeID_si].dx(admsProbeID_Temp_dt_GND) = " <<dynamicContributions[admsNodeID_si].dx(admsProbeID_Temp_dt_GND) << std::endl;
4935  Xyce::dout() << " Jdxp_static[admsNodeID_si] = "
4936  <<Jdxp_static[admsNodeID_si] << std::endl;
4937  Xyce::dout() << " Jdxp_dynamic[admsNodeID_si] = "
4938  <<Jdxp_dynamic[admsNodeID_si] << std::endl;
4939  Xyce::dout() << " staticContributions[admsNodeID_xf1] = "
4940  <<staticContributions[admsNodeID_xf1].val() << std::endl;
4941  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_xf2_GND) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_xf2_GND) << std::endl;
4942  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_xf1_GND) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_xf1_GND) << std::endl;
4943  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_s_si) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_s_si) << std::endl;
4944  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_si) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_si) << std::endl;
4945  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_si_bp) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_si_bp) << std::endl;
4946  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bp_cx) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bp_cx) << std::endl;
4947  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_e_ei) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_e_ei) << std::endl;
4948  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_bi) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_bi) << std::endl;
4949  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_b_bx) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_b_bx) << std::endl;
4950  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_cx_ci) << std::endl;
4951  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_c_cx) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_c_cx) << std::endl;
4952  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_b_c) << std::endl;
4953  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_b_e) << std::endl;
4954  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_bp) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_bp) << std::endl;
4955  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_ci_ei) << std::endl;
4956  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_cx) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_cx) << std::endl;
4957  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_cx) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_cx) << std::endl;
4958  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_ci) << std::endl;
4959  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_ei) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_ei) << std::endl;
4960  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_ei) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_ei) << std::endl;
4961  Xyce::dout() << " staticContributions[admsNodeID_xf1].dx(admsProbeID_Temp_dt_GND) = " <<staticContributions[admsNodeID_xf1].dx(admsProbeID_Temp_dt_GND) << std::endl;
4962  Xyce::dout() << " dynamicContributions[admsNodeID_xf1] = "
4963  <<dynamicContributions[admsNodeID_xf1].val() << std::endl;
4964  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_xf2_GND) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_xf2_GND) << std::endl;
4965  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_xf1_GND) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_xf1_GND) << std::endl;
4966  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_s_si) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_s_si) << std::endl;
4967  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_si) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_si) << std::endl;
4968  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_si_bp) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_si_bp) << std::endl;
4969  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bp_cx) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bp_cx) << std::endl;
4970  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_e_ei) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_e_ei) << std::endl;
4971  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_bi) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_bi) << std::endl;
4972  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_b_bx) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_b_bx) << std::endl;
4973  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_cx_ci) << std::endl;
4974  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_c_cx) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_c_cx) << std::endl;
4975  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_b_c) << std::endl;
4976  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_b_e) << std::endl;
4977  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_bp) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_bp) << std::endl;
4978  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_ci_ei) << std::endl;
4979  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_cx) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_cx) << std::endl;
4980  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_cx) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_cx) << std::endl;
4981  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_ci) << std::endl;
4982  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_ei) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bx_ei) << std::endl;
4983  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_ei) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_ei) << std::endl;
4984  Xyce::dout() << " dynamicContributions[admsNodeID_xf1].dx(admsProbeID_Temp_dt_GND) = " <<dynamicContributions[admsNodeID_xf1].dx(admsProbeID_Temp_dt_GND) << std::endl;
4985  Xyce::dout() << " Jdxp_static[admsNodeID_xf1] = "
4986  <<Jdxp_static[admsNodeID_xf1] << std::endl;
4987  Xyce::dout() << " Jdxp_dynamic[admsNodeID_xf1] = "
4988  <<Jdxp_dynamic[admsNodeID_xf1] << std::endl;
4989  Xyce::dout() << " staticContributions[admsNodeID_xf2] = "
4990  <<staticContributions[admsNodeID_xf2].val() << std::endl;
4991  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_xf2_GND) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_xf2_GND) << std::endl;
4992  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_xf1_GND) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_xf1_GND) << std::endl;
4993  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_s_si) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_s_si) << std::endl;
4994  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_si) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_si) << std::endl;
4995  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_si_bp) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_si_bp) << std::endl;
4996  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bp_cx) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bp_cx) << std::endl;
4997  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_e_ei) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_e_ei) << std::endl;
4998  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_bi) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_bi) << std::endl;
4999  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_b_bx) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_b_bx) << std::endl;
5000  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_cx_ci) << std::endl;
5001  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_c_cx) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_c_cx) << std::endl;
5002  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_b_c) << std::endl;
5003  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_b_e) << std::endl;
5004  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_bp) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_bp) << std::endl;
5005  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_ci_ei) << std::endl;
5006  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_cx) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_cx) << std::endl;
5007  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bi_cx) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bi_cx) << std::endl;
5008  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bi_ci) << std::endl;
5009  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_ei) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_ei) << std::endl;
5010  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bi_ei) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_V_bi_ei) << std::endl;
5011  Xyce::dout() << " staticContributions[admsNodeID_xf2].dx(admsProbeID_Temp_dt_GND) = " <<staticContributions[admsNodeID_xf2].dx(admsProbeID_Temp_dt_GND) << std::endl;
5012  Xyce::dout() << " dynamicContributions[admsNodeID_xf2] = "
5013  <<dynamicContributions[admsNodeID_xf2].val() << std::endl;
5014  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_xf2_GND) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_xf2_GND) << std::endl;
5015  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_xf1_GND) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_xf1_GND) << std::endl;
5016  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_s_si) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_s_si) << std::endl;
5017  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_si) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_si) << std::endl;
5018  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_si_bp) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_si_bp) << std::endl;
5019  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bp_cx) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bp_cx) << std::endl;
5020  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_e_ei) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_e_ei) << std::endl;
5021  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_bi) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_bi) << std::endl;
5022  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_b_bx) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_b_bx) << std::endl;
5023  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_cx_ci) << std::endl;
5024  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_c_cx) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_c_cx) << std::endl;
5025  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_b_c) << std::endl;
5026  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_b_e) << std::endl;
5027  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_bp) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_bp) << std::endl;
5028  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_ci_ei) << std::endl;
5029  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_cx) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_cx) << std::endl;
5030  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bi_cx) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bi_cx) << std::endl;
5031  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bi_ci) << std::endl;
5032  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_ei) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bx_ei) << std::endl;
5033  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bi_ei) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_bi_ei) << std::endl;
5034  Xyce::dout() << " dynamicContributions[admsNodeID_xf2].dx(admsProbeID_Temp_dt_GND) = " <<dynamicContributions[admsNodeID_xf2].dx(admsProbeID_Temp_dt_GND) << std::endl;
5035  Xyce::dout() << " Jdxp_static[admsNodeID_xf2] = "
5036  <<Jdxp_static[admsNodeID_xf2] << std::endl;
5037  Xyce::dout() << " Jdxp_dynamic[admsNodeID_xf2] = "
5038  <<Jdxp_dynamic[admsNodeID_xf2] << std::endl;
5039 
5040  if (!origFlag)
5041  Xyce::dout() << "This step was limited by this device." << std::endl;
5042  }
5043 
5044  return true;
5045 }
5046 
5047 //-----------------------------------------------------------------------------
5048 // Function : Instance::loadDAEdFdx
5049 // Purpose :
5050 // Special Notes : Load the dFdx ("static jacobian") matrix
5051 // Scope : public
5052 // Creator : admsXml
5053 // Creation Date :
5054 //-----------------------------------------------------------------------------
5056 {
5057  bool bsuccess = true;
5058  Linear::Matrix * dFdxMatPtr = extData.dFdxMatrixPtr;
5059 
5060  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5061  {
5062  Xyce::dout() << subsection_divider << std::endl;
5063  Xyce::dout() << "ADMSvbic13_4t::Instance::loadDAEdFdx (" << getName() << "):" << std::endl;
5064  }
5066 
5067 
5068  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5069  {
5071  }
5073 
5074 
5075  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5076  {
5077  Xyce::dout() << " (*f_bi_Equ_bp_Node_Ptr) += " << -staticContributions[admsNodeID_bi].dx(admsProbeID_V_si_bp) -staticContributions[admsNodeID_bi].dx(admsProbeID_V_bx_bp)<< std::endl;
5078  }
5080 
5081 
5082  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5083  {
5084  Xyce::dout() << " (*f_ei_Equ_bx_Node_Ptr) += " << +staticContributions[admsNodeID_ei].dx(admsProbeID_V_bx_ei) +staticContributions[admsNodeID_ei].dx(admsProbeID_V_bx_bp)<< std::endl;
5085  }
5087 
5088 
5089  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5090  {
5091  Xyce::dout() << " (*f_ei_Equ_bp_Node_Ptr) += " << -staticContributions[admsNodeID_ei].dx(admsProbeID_V_si_bp) -staticContributions[admsNodeID_ei].dx(admsProbeID_V_bx_bp)<< std::endl;
5092  }
5093  (*f_bi_Equ_si_Node_Ptr) += +staticContributions[admsNodeID_bi].dx(admsProbeID_V_si_bp);
5094 
5095 
5096  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5097  {
5098  Xyce::dout() << " (*f_bi_Equ_si_Node_Ptr) += " << +staticContributions[admsNodeID_bi].dx(admsProbeID_V_si_bp)<< std::endl;
5099  }
5100  (*f_ei_Equ_si_Node_Ptr) += +staticContributions[admsNodeID_ei].dx(admsProbeID_V_si_bp);
5101 
5102 
5103  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5104  {
5105  Xyce::dout() << " (*f_ei_Equ_si_Node_Ptr) += " << +staticContributions[admsNodeID_ei].dx(admsProbeID_V_si_bp)<< std::endl;
5106  }
5108 
5109 
5110  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5111  {
5113  }
5114  (*f_bi_Equ_ci_Node_Ptr) += -staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci);
5115 
5116 
5117  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5118  {
5119  Xyce::dout() << " (*f_bi_Equ_ci_Node_Ptr) += " << -staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci)<< std::endl;
5120  }
5122 
5123 
5124  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5125  {
5126  Xyce::dout() << " (*f_ei_Equ_bi_Node_Ptr) += " << +staticContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ei) +staticContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ci)<< std::endl;
5127  }
5128  (*f_ei_Equ_ci_Node_Ptr) += -staticContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ci);
5129 
5130 
5131  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5132  {
5133  Xyce::dout() << " (*f_ei_Equ_ci_Node_Ptr) += " << -staticContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ci)<< std::endl;
5134  }
5136 
5137 
5138  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5139  {
5140  Xyce::dout() << " (*f_bi_Equ_ei_Node_Ptr) += " << -staticContributions[admsNodeID_bi].dx(admsProbeID_V_bx_ei) -staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ei)<< std::endl;
5141  }
5143 
5144 
5145  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5146  {
5148  }
5149  (*f_bi_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_bi].dx(admsProbeID_Temp_dt_GND);
5150 
5151 
5152  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5153  {
5154  Xyce::dout() << " (*f_bi_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_bi].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5155  }
5156  (*f_ei_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_ei].dx(admsProbeID_Temp_dt_GND);
5157 
5158 
5159  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5160  {
5161  Xyce::dout() << " (*f_ei_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_ei].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5162  }
5164 
5165 
5166  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5167  {
5169  }
5171 
5172 
5173  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5174  {
5175  Xyce::dout() << " (*f_bx_Equ_ei_Node_Ptr) += " << -staticContributions[admsNodeID_bx].dx(admsProbeID_V_bx_ei) -staticContributions[admsNodeID_bx].dx(admsProbeID_V_bi_ei)<< std::endl;
5176  }
5177  (*f_bx_Equ_ci_Node_Ptr) += -staticContributions[admsNodeID_bx].dx(admsProbeID_V_bi_ci);
5178 
5179 
5180  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5181  {
5182  Xyce::dout() << " (*f_bx_Equ_ci_Node_Ptr) += " << -staticContributions[admsNodeID_bx].dx(admsProbeID_V_bi_ci)<< std::endl;
5183  }
5185 
5186 
5187  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5188  {
5190  }
5192 
5193 
5194  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5195  {
5196  Xyce::dout() << " (*f_bx_Equ_bp_Node_Ptr) += " << -staticContributions[admsNodeID_bx].dx(admsProbeID_V_si_bp) -staticContributions[admsNodeID_bx].dx(admsProbeID_V_bx_bp)<< std::endl;
5197  }
5198  (*f_bx_Equ_si_Node_Ptr) += +staticContributions[admsNodeID_bx].dx(admsProbeID_V_si_bp);
5199 
5200 
5201  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5202  {
5203  Xyce::dout() << " (*f_bx_Equ_si_Node_Ptr) += " << +staticContributions[admsNodeID_bx].dx(admsProbeID_V_si_bp)<< std::endl;
5204  }
5205  (*f_bx_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_bx].dx(admsProbeID_Temp_dt_GND);
5206 
5207 
5208  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5209  {
5210  Xyce::dout() << " (*f_bx_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_bx].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5211  }
5212  (*f_ci_Equ_xf2_Node_Ptr) += +staticContributions[admsNodeID_ci].dx(admsProbeID_V_xf2_GND);
5213 
5214 
5215  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5216  {
5217  Xyce::dout() << " (*f_ci_Equ_xf2_Node_Ptr) += " << +staticContributions[admsNodeID_ci].dx(admsProbeID_V_xf2_GND)<< std::endl;
5218  }
5219  (*f_ei_Equ_xf2_Node_Ptr) += +staticContributions[admsNodeID_ei].dx(admsProbeID_V_xf2_GND);
5220 
5221 
5222  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5223  {
5224  Xyce::dout() << " (*f_ei_Equ_xf2_Node_Ptr) += " << +staticContributions[admsNodeID_ei].dx(admsProbeID_V_xf2_GND)<< std::endl;
5225  }
5227 
5228 
5229  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5230  {
5232  }
5234 
5235 
5236  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5237  {
5238  Xyce::dout() << " (*f_ci_Equ_ei_Node_Ptr) += " << -staticContributions[admsNodeID_ci].dx(admsProbeID_V_bx_ei) -staticContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ei)<< std::endl;
5239  }
5241 
5242 
5243  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5244  {
5245  Xyce::dout() << " (*f_ci_Equ_ci_Node_Ptr) += " << -staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci) -staticContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci)<< std::endl;
5246  }
5247  (*f_ci_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_ci].dx(admsProbeID_Temp_dt_GND);
5248 
5249 
5250  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5251  {
5252  Xyce::dout() << " (*f_ci_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_ci].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5253  }
5254  (*f_bi_Equ_xf2_Node_Ptr) += +staticContributions[admsNodeID_bi].dx(admsProbeID_V_xf2_GND);
5255 
5256 
5257  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5258  {
5259  Xyce::dout() << " (*f_bi_Equ_xf2_Node_Ptr) += " << +staticContributions[admsNodeID_bi].dx(admsProbeID_V_xf2_GND)<< std::endl;
5260  }
5262 
5263 
5264  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5265  {
5266  Xyce::dout() << " (*f_ci_Equ_bx_Node_Ptr) += " << +staticContributions[admsNodeID_ci].dx(admsProbeID_V_bx_ei) +staticContributions[admsNodeID_ci].dx(admsProbeID_V_bx_bp)<< std::endl;
5267  }
5269 
5270 
5271  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5272  {
5273  Xyce::dout() << " (*f_ci_Equ_bp_Node_Ptr) += " << -staticContributions[admsNodeID_ci].dx(admsProbeID_V_si_bp) -staticContributions[admsNodeID_ci].dx(admsProbeID_V_bx_bp)<< std::endl;
5274  }
5275  (*f_ci_Equ_si_Node_Ptr) += +staticContributions[admsNodeID_ci].dx(admsProbeID_V_si_bp);
5276 
5277 
5278  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5279  {
5280  Xyce::dout() << " (*f_ci_Equ_si_Node_Ptr) += " << +staticContributions[admsNodeID_ci].dx(admsProbeID_V_si_bp)<< std::endl;
5281  }
5283 
5284 
5285  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5286  {
5288  }
5290 
5291 
5292  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5293  {
5294  Xyce::dout() << " (*f_cx_Equ_ci_Node_Ptr) += " << -staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci) -staticContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ci)<< std::endl;
5295  }
5297 
5298 
5299  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5300  {
5301  Xyce::dout() << " (*f_bx_Equ_cx_Node_Ptr) += " << -staticContributions[admsNodeID_bx].dx(admsProbeID_V_c_cx) -staticContributions[admsNodeID_bx].dx(admsProbeID_V_bx_cx)<< std::endl;
5302  }
5304 
5305 
5306  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5307  {
5309  }
5311 
5312 
5313  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5314  {
5316  }
5317  (*f_cx_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_cx].dx(admsProbeID_Temp_dt_GND);
5318 
5319 
5320  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5321  {
5322  Xyce::dout() << " (*f_cx_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_cx].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5323  }
5324  (*f_bx_Equ_c_Node_Ptr) += +staticContributions[admsNodeID_bx].dx(admsProbeID_V_c_cx);
5325 
5326 
5327  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5328  {
5329  Xyce::dout() << " (*f_bx_Equ_c_Node_Ptr) += " << +staticContributions[admsNodeID_bx].dx(admsProbeID_V_c_cx)<< std::endl;
5330  }
5331  (*f_cx_Equ_c_Node_Ptr) += +staticContributions[admsNodeID_cx].dx(admsProbeID_V_c_cx);
5332 
5333 
5334  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5335  {
5336  Xyce::dout() << " (*f_cx_Equ_c_Node_Ptr) += " << +staticContributions[admsNodeID_cx].dx(admsProbeID_V_c_cx)<< std::endl;
5337  }
5339 
5340 
5341  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5342  {
5343  Xyce::dout() << " (*f_bp_Equ_bi_Node_Ptr) += " << +staticContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ci) +staticContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ei)<< std::endl;
5344  }
5346 
5347 
5348  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5349  {
5350  Xyce::dout() << " (*f_bp_Equ_ei_Node_Ptr) += " << -staticContributions[admsNodeID_bp].dx(admsProbeID_V_bx_ei) -staticContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ei)<< std::endl;
5351  }
5352  (*f_bp_Equ_ci_Node_Ptr) += -staticContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ci);
5353 
5354 
5355  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5356  {
5357  Xyce::dout() << " (*f_bp_Equ_ci_Node_Ptr) += " << -staticContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ci)<< std::endl;
5358  }
5360 
5361 
5362  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5363  {
5364  Xyce::dout() << " (*f_bp_Equ_bx_Node_Ptr) += " << +staticContributions[admsNodeID_bp].dx(admsProbeID_V_bx_ei) +staticContributions[admsNodeID_bp].dx(admsProbeID_V_bx_bp)<< std::endl;
5365  }
5367 
5368 
5369  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5370  {
5372  }
5373  (*f_bp_Equ_si_Node_Ptr) += +staticContributions[admsNodeID_bp].dx(admsProbeID_V_si_bp);
5374 
5375 
5376  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5377  {
5378  Xyce::dout() << " (*f_bp_Equ_si_Node_Ptr) += " << +staticContributions[admsNodeID_bp].dx(admsProbeID_V_si_bp)<< std::endl;
5379  }
5380  (*f_bp_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_bp].dx(admsProbeID_Temp_dt_GND);
5381 
5382 
5383  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5384  {
5385  Xyce::dout() << " (*f_bp_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_bp].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5386  }
5387  (*f_c_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_c].dx(admsProbeID_Temp_dt_GND);
5388 
5389 
5390  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5391  {
5392  Xyce::dout() << " (*f_c_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_c].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5393  }
5394  (*f_c_Equ_c_Node_Ptr) += +staticContributions[admsNodeID_c].dx(admsProbeID_V_c_cx);
5395 
5396 
5397  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5398  {
5399  Xyce::dout() << " (*f_c_Equ_c_Node_Ptr) += " << +staticContributions[admsNodeID_c].dx(admsProbeID_V_c_cx)<< std::endl;
5400  }
5401  (*f_c_Equ_cx_Node_Ptr) += -staticContributions[admsNodeID_c].dx(admsProbeID_V_c_cx);
5402 
5403 
5404  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5405  {
5406  Xyce::dout() << " (*f_c_Equ_cx_Node_Ptr) += " << -staticContributions[admsNodeID_c].dx(admsProbeID_V_c_cx)<< std::endl;
5407  }
5409 
5410 
5411  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5412  {
5413  Xyce::dout() << " (*f_ci_Equ_cx_Node_Ptr) += " << +staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci) -staticContributions[admsNodeID_ci].dx(admsProbeID_V_bi_cx)<< std::endl;
5414  }
5416 
5417 
5418  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5419  {
5420  Xyce::dout() << " (*f_cx_Equ_ei_Node_Ptr) += " << -staticContributions[admsNodeID_cx].dx(admsProbeID_V_bx_ei) -staticContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ei)<< std::endl;
5421  }
5423 
5424 
5425  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5426  {
5428  }
5429  (*f_cx_Equ_si_Node_Ptr) += +staticContributions[admsNodeID_cx].dx(admsProbeID_V_si_bp);
5430 
5431 
5432  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5433  {
5434  Xyce::dout() << " (*f_cx_Equ_si_Node_Ptr) += " << +staticContributions[admsNodeID_cx].dx(admsProbeID_V_si_bp)<< std::endl;
5435  }
5436  (*f_b_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_b].dx(admsProbeID_Temp_dt_GND);
5437 
5438 
5439  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5440  {
5441  Xyce::dout() << " (*f_b_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_b].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5442  }
5443  (*f_b_Equ_b_Node_Ptr) += +staticContributions[admsNodeID_b].dx(admsProbeID_V_b_bx);
5444 
5445 
5446  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5447  {
5448  Xyce::dout() << " (*f_b_Equ_b_Node_Ptr) += " << +staticContributions[admsNodeID_b].dx(admsProbeID_V_b_bx)<< std::endl;
5449  }
5450  (*f_b_Equ_bx_Node_Ptr) += -staticContributions[admsNodeID_b].dx(admsProbeID_V_b_bx);
5451 
5452 
5453  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5454  {
5455  Xyce::dout() << " (*f_b_Equ_bx_Node_Ptr) += " << -staticContributions[admsNodeID_b].dx(admsProbeID_V_b_bx)<< std::endl;
5456  }
5457  (*f_bx_Equ_b_Node_Ptr) += +staticContributions[admsNodeID_bx].dx(admsProbeID_V_b_bx);
5458 
5459 
5460  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5461  {
5462  Xyce::dout() << " (*f_bx_Equ_b_Node_Ptr) += " << +staticContributions[admsNodeID_bx].dx(admsProbeID_V_b_bx)<< std::endl;
5463  }
5464  (*f_e_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_e].dx(admsProbeID_Temp_dt_GND);
5465 
5466 
5467  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5468  {
5469  Xyce::dout() << " (*f_e_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_e].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5470  }
5471  (*f_e_Equ_e_Node_Ptr) += +staticContributions[admsNodeID_e].dx(admsProbeID_V_e_ei);
5472 
5473 
5474  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5475  {
5476  Xyce::dout() << " (*f_e_Equ_e_Node_Ptr) += " << +staticContributions[admsNodeID_e].dx(admsProbeID_V_e_ei)<< std::endl;
5477  }
5478  (*f_e_Equ_ei_Node_Ptr) += -staticContributions[admsNodeID_e].dx(admsProbeID_V_e_ei);
5479 
5480 
5481  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5482  {
5483  Xyce::dout() << " (*f_e_Equ_ei_Node_Ptr) += " << -staticContributions[admsNodeID_e].dx(admsProbeID_V_e_ei)<< std::endl;
5484  }
5485  (*f_ei_Equ_e_Node_Ptr) += +staticContributions[admsNodeID_ei].dx(admsProbeID_V_e_ei);
5486 
5487 
5488  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5489  {
5490  Xyce::dout() << " (*f_ei_Equ_e_Node_Ptr) += " << +staticContributions[admsNodeID_ei].dx(admsProbeID_V_e_ei)<< std::endl;
5491  }
5492  (*f_bp_Equ_cx_Node_Ptr) += -staticContributions[admsNodeID_bp].dx(admsProbeID_V_bp_cx);
5493 
5494 
5495  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5496  {
5497  Xyce::dout() << " (*f_bp_Equ_cx_Node_Ptr) += " << -staticContributions[admsNodeID_bp].dx(admsProbeID_V_bp_cx)<< std::endl;
5498  }
5500 
5501 
5502  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5503  {
5504  Xyce::dout() << " (*f_si_Equ_bi_Node_Ptr) += " << +staticContributions[admsNodeID_si].dx(admsProbeID_V_bi_ci) +staticContributions[admsNodeID_si].dx(admsProbeID_V_bi_ei)<< std::endl;
5505  }
5507 
5508 
5509  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5510  {
5511  Xyce::dout() << " (*f_si_Equ_ei_Node_Ptr) += " << -staticContributions[admsNodeID_si].dx(admsProbeID_V_bx_ei) -staticContributions[admsNodeID_si].dx(admsProbeID_V_bi_ei)<< std::endl;
5512  }
5513  (*f_si_Equ_ci_Node_Ptr) += -staticContributions[admsNodeID_si].dx(admsProbeID_V_bi_ci);
5514 
5515 
5516  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5517  {
5518  Xyce::dout() << " (*f_si_Equ_ci_Node_Ptr) += " << -staticContributions[admsNodeID_si].dx(admsProbeID_V_bi_ci)<< std::endl;
5519  }
5521 
5522 
5523  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5524  {
5525  Xyce::dout() << " (*f_si_Equ_bx_Node_Ptr) += " << +staticContributions[admsNodeID_si].dx(admsProbeID_V_bx_ei) +staticContributions[admsNodeID_si].dx(admsProbeID_V_bx_bp)<< std::endl;
5526  }
5528 
5529 
5530  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5531  {
5532  Xyce::dout() << " (*f_si_Equ_bp_Node_Ptr) += " << -staticContributions[admsNodeID_si].dx(admsProbeID_V_si_bp) -staticContributions[admsNodeID_si].dx(admsProbeID_V_bx_bp)<< std::endl;
5533  }
5535 
5536 
5537  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5538  {
5539  Xyce::dout() << " (*f_si_Equ_si_Node_Ptr) += " << -staticContributions[admsNodeID_si].dx(admsProbeID_V_s_si) +staticContributions[admsNodeID_si].dx(admsProbeID_V_si_bp)<< std::endl;
5540  }
5541  (*f_si_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_si].dx(admsProbeID_Temp_dt_GND);
5542 
5543 
5544  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5545  {
5546  Xyce::dout() << " (*f_si_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_si].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5547  }
5548  (*f_s_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_s].dx(admsProbeID_Temp_dt_GND);
5549 
5550 
5551  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5552  {
5553  Xyce::dout() << " (*f_s_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_s].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5554  }
5555  (*f_s_Equ_s_Node_Ptr) += +staticContributions[admsNodeID_s].dx(admsProbeID_V_s_si);
5556 
5557 
5558  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5559  {
5560  Xyce::dout() << " (*f_s_Equ_s_Node_Ptr) += " << +staticContributions[admsNodeID_s].dx(admsProbeID_V_s_si)<< std::endl;
5561  }
5562  (*f_s_Equ_si_Node_Ptr) += -staticContributions[admsNodeID_s].dx(admsProbeID_V_s_si);
5563 
5564 
5565  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5566  {
5567  Xyce::dout() << " (*f_s_Equ_si_Node_Ptr) += " << -staticContributions[admsNodeID_s].dx(admsProbeID_V_s_si)<< std::endl;
5568  }
5569  (*f_si_Equ_s_Node_Ptr) += +staticContributions[admsNodeID_si].dx(admsProbeID_V_s_si);
5570 
5571 
5572  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5573  {
5574  Xyce::dout() << " (*f_si_Equ_s_Node_Ptr) += " << +staticContributions[admsNodeID_si].dx(admsProbeID_V_s_si)<< std::endl;
5575  }
5577 
5578 
5579  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5580  {
5581  Xyce::dout() << " (*f_xf1_Equ_bi_Node_Ptr) += " << +staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_ei) +staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_ci)<< std::endl;
5582  }
5583  (*f_xf1_Equ_ci_Node_Ptr) += -staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_ci);
5584 
5585 
5586  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5587  {
5588  Xyce::dout() << " (*f_xf1_Equ_ci_Node_Ptr) += " << -staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_ci)<< std::endl;
5589  }
5590  (*f_xf1_Equ_ei_Node_Ptr) += -staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_ei);
5591 
5592 
5593  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5594  {
5595  Xyce::dout() << " (*f_xf1_Equ_ei_Node_Ptr) += " << -staticContributions[admsNodeID_xf1].dx(admsProbeID_V_bi_ei)<< std::endl;
5596  }
5597  (*f_xf1_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_xf1].dx(admsProbeID_Temp_dt_GND);
5598 
5599 
5600  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5601  {
5602  Xyce::dout() << " (*f_xf1_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_xf1].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5603  }
5604  (*f_xf1_Equ_xf2_Node_Ptr) += +staticContributions[admsNodeID_xf1].dx(admsProbeID_V_xf2_GND);
5605 
5606 
5607  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5608  {
5609  Xyce::dout() << " (*f_xf1_Equ_xf2_Node_Ptr) += " << +staticContributions[admsNodeID_xf1].dx(admsProbeID_V_xf2_GND)<< std::endl;
5610  }
5611  (*f_xf2_Equ_xf1_Node_Ptr) += +staticContributions[admsNodeID_xf2].dx(admsProbeID_V_xf1_GND);
5612 
5613 
5614  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5615  {
5616  Xyce::dout() << " (*f_xf2_Equ_xf1_Node_Ptr) += " << +staticContributions[admsNodeID_xf2].dx(admsProbeID_V_xf1_GND)<< std::endl;
5617  }
5618  (*f_xf2_Equ_xf2_Node_Ptr) += +staticContributions[admsNodeID_xf2].dx(admsProbeID_V_xf2_GND);
5619 
5620 
5621  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5622  {
5623  Xyce::dout() << " (*f_xf2_Equ_xf2_Node_Ptr) += " << +staticContributions[admsNodeID_xf2].dx(admsProbeID_V_xf2_GND)<< std::endl;
5624  }
5625  (*f_dt_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_dt].dx(admsProbeID_Temp_dt_GND);
5626 
5627 
5628  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5629  {
5630  Xyce::dout() << " (*f_dt_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_dt].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5631  }
5633 
5634 
5635  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5636  {
5638  }
5640 
5641 
5642  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5643  {
5645  }
5646  (*f_dt_Equ_e_Node_Ptr) += +staticContributions[admsNodeID_dt].dx(admsProbeID_V_e_ei);
5647 
5648 
5649  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5650  {
5651  Xyce::dout() << " (*f_dt_Equ_e_Node_Ptr) += " << +staticContributions[admsNodeID_dt].dx(admsProbeID_V_e_ei)<< std::endl;
5652  }
5654 
5655 
5656  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5657  {
5659  }
5661 
5662 
5663  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5664  {
5666  }
5668 
5669 
5670  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5671  {
5673  }
5674  (*f_dt_Equ_b_Node_Ptr) += +staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_bx);
5675 
5676 
5677  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5678  {
5679  Xyce::dout() << " (*f_dt_Equ_b_Node_Ptr) += " << +staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_bx)<< std::endl;
5680  }
5682 
5683 
5684  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5685  {
5687  }
5688  (*f_dt_Equ_c_Node_Ptr) += +staticContributions[admsNodeID_dt].dx(admsProbeID_V_c_cx);
5689 
5690 
5691  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5692  {
5693  Xyce::dout() << " (*f_dt_Equ_c_Node_Ptr) += " << +staticContributions[admsNodeID_dt].dx(admsProbeID_V_c_cx)<< std::endl;
5694  }
5696 
5697 
5698  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5699  {
5701  }
5702  (*f_dt_Equ_s_Node_Ptr) += +staticContributions[admsNodeID_dt].dx(admsProbeID_V_s_si);
5703 
5704 
5705  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5706  {
5707  Xyce::dout() << " (*f_dt_Equ_s_Node_Ptr) += " << +staticContributions[admsNodeID_dt].dx(admsProbeID_V_s_si)<< std::endl;
5708  }
5709  (*f_dt_Equ_xf2_Node_Ptr) += +staticContributions[admsNodeID_dt].dx(admsProbeID_V_xf2_GND);
5710 
5711 
5712  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5713  {
5714  Xyce::dout() << " (*f_dt_Equ_xf2_Node_Ptr) += " << +staticContributions[admsNodeID_dt].dx(admsProbeID_V_xf2_GND)<< std::endl;
5715  }
5716 
5717 
5718  return bsuccess;
5719 }
5720 
5721 
5722 //-----------------------------------------------------------------------------
5723 // Function : Instance::loadDAEdQdx
5724 // Purpose :
5725 // Special Notes : Load the dQdx ("dynamic jacobian") matrix
5726 // Scope : public
5727 // Creator : admsXml
5728 // Creation Date :
5729 //-----------------------------------------------------------------------------
5731 {
5732  bool bsuccess = true;
5733  Linear::Matrix * dQdxMatPtr = extData.dQdxMatrixPtr;
5734 
5735  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5736  {
5737  Xyce::dout() << subsection_divider << std::endl;
5738  Xyce::dout() << "ADMSvbic13_4t::Instance::loadDAEdQdx (" << getName() << "):" << std::endl;
5739  }
5741 
5742 
5743  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5744  {
5745  Xyce::dout() << " (*q_bi_Equ_bx_Node_Ptr) += " << +dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bx_ei) +dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bx_bp)<< std::endl;
5746  }
5748 
5749 
5750  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5751  {
5752  Xyce::dout() << " (*q_bi_Equ_bp_Node_Ptr) += " << -dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_si_bp) -dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bx_bp)<< std::endl;
5753  }
5755 
5756 
5757  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5758  {
5759  Xyce::dout() << " (*q_ei_Equ_bx_Node_Ptr) += " << +dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bx_ei) +dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bx_bp)<< std::endl;
5760  }
5762 
5763 
5764  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5765  {
5766  Xyce::dout() << " (*q_ei_Equ_bp_Node_Ptr) += " << -dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_si_bp) -dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bx_bp)<< std::endl;
5767  }
5768  (*q_bi_Equ_si_Node_Ptr) += +dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_si_bp);
5769 
5770 
5771  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5772  {
5773  Xyce::dout() << " (*q_bi_Equ_si_Node_Ptr) += " << +dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_si_bp)<< std::endl;
5774  }
5775  (*q_ei_Equ_si_Node_Ptr) += +dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_si_bp);
5776 
5777 
5778  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5779  {
5780  Xyce::dout() << " (*q_ei_Equ_si_Node_Ptr) += " << +dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_si_bp)<< std::endl;
5781  }
5783 
5784 
5785  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5786  {
5788  }
5789  (*q_bi_Equ_ci_Node_Ptr) += -dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci);
5790 
5791 
5792  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5793  {
5794  Xyce::dout() << " (*q_bi_Equ_ci_Node_Ptr) += " << -dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci)<< std::endl;
5795  }
5797 
5798 
5799  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5800  {
5802  }
5803  (*q_ei_Equ_ci_Node_Ptr) += -dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ci);
5804 
5805 
5806  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5807  {
5808  Xyce::dout() << " (*q_ei_Equ_ci_Node_Ptr) += " << -dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ci)<< std::endl;
5809  }
5811 
5812 
5813  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5814  {
5815  Xyce::dout() << " (*q_bi_Equ_ei_Node_Ptr) += " << -dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ei) -dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bx_ei)<< std::endl;
5816  }
5818 
5819 
5820  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5821  {
5822  Xyce::dout() << " (*q_ei_Equ_ei_Node_Ptr) += " << -dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ei) -dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bx_ei)<< std::endl;
5823  }
5824  (*q_bi_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_bi].dx(admsProbeID_Temp_dt_GND);
5825 
5826 
5827  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5828  {
5829  Xyce::dout() << " (*q_bi_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_bi].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5830  }
5831  (*q_ei_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_ei].dx(admsProbeID_Temp_dt_GND);
5832 
5833 
5834  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5835  {
5836  Xyce::dout() << " (*q_ei_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_ei].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5837  }
5839 
5840 
5841  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5842  {
5843  Xyce::dout() << " (*q_bx_Equ_bi_Node_Ptr) += " << +dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bi_ci) +dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bi_ei)<< std::endl;
5844  }
5846 
5847 
5848  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5849  {
5850  Xyce::dout() << " (*q_bx_Equ_ei_Node_Ptr) += " << -dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bi_ei) -dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bx_ei)<< std::endl;
5851  }
5852  (*q_bx_Equ_ci_Node_Ptr) += -dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bi_ci);
5853 
5854 
5855  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5856  {
5857  Xyce::dout() << " (*q_bx_Equ_ci_Node_Ptr) += " << -dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bi_ci)<< std::endl;
5858  }
5860 
5861 
5862  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5863  {
5864  Xyce::dout() << " (*q_bx_Equ_bx_Node_Ptr) += " << +dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bx_bp) +dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bx_ei)<< std::endl;
5865  }
5866  (*q_bx_Equ_bp_Node_Ptr) += -dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bx_bp);
5867 
5868 
5869  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5870  {
5871  Xyce::dout() << " (*q_bx_Equ_bp_Node_Ptr) += " << -dynamicContributions[admsNodeID_bx].dx(admsProbeID_V_bx_bp)<< std::endl;
5872  }
5873  (*q_bx_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_bx].dx(admsProbeID_Temp_dt_GND);
5874 
5875 
5876  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5877  {
5878  Xyce::dout() << " (*q_bx_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_bx].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5879  }
5881 
5882 
5883  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5884  {
5885  Xyce::dout() << " (*q_ci_Equ_bi_Node_Ptr) += " << +dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci) +dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ei)<< std::endl;
5886  }
5888 
5889 
5890  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5891  {
5892  Xyce::dout() << " (*q_ci_Equ_ei_Node_Ptr) += " << -dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ei) -dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bx_ei)<< std::endl;
5893  }
5894  (*q_ci_Equ_ci_Node_Ptr) += -dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci);
5895 
5896 
5897  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5898  {
5899  Xyce::dout() << " (*q_ci_Equ_ci_Node_Ptr) += " << -dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci)<< std::endl;
5900  }
5901  (*q_ci_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_ci].dx(admsProbeID_Temp_dt_GND);
5902 
5903 
5904  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5905  {
5906  Xyce::dout() << " (*q_ci_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_ci].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5907  }
5909 
5910 
5911  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5912  {
5913  Xyce::dout() << " (*q_ci_Equ_bx_Node_Ptr) += " << +dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bx_ei) +dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bx_bp)<< std::endl;
5914  }
5916 
5917 
5918  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5919  {
5920  Xyce::dout() << " (*q_ci_Equ_bp_Node_Ptr) += " << -dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_si_bp) -dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bx_bp)<< std::endl;
5921  }
5922  (*q_ci_Equ_si_Node_Ptr) += +dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_si_bp);
5923 
5924 
5925  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5926  {
5927  Xyce::dout() << " (*q_ci_Equ_si_Node_Ptr) += " << +dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_si_bp)<< std::endl;
5928  }
5930 
5931 
5932  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5933  {
5935  }
5936  (*q_cx_Equ_ci_Node_Ptr) += -dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ci);
5937 
5938 
5939  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5940  {
5941  Xyce::dout() << " (*q_cx_Equ_ci_Node_Ptr) += " << -dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ci)<< std::endl;
5942  }
5943  (*q_cx_Equ_bx_Node_Ptr) += +dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bx_bp);
5944 
5945 
5946  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5947  {
5948  Xyce::dout() << " (*q_cx_Equ_bx_Node_Ptr) += " << +dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bx_bp)<< std::endl;
5949  }
5950  (*q_cx_Equ_cx_Node_Ptr) += -dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bi_cx);
5951 
5952 
5953  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5954  {
5955  Xyce::dout() << " (*q_cx_Equ_cx_Node_Ptr) += " << -dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bi_cx)<< std::endl;
5956  }
5957  (*q_cx_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_cx].dx(admsProbeID_Temp_dt_GND);
5958 
5959 
5960  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5961  {
5962  Xyce::dout() << " (*q_cx_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_cx].dx(admsProbeID_Temp_dt_GND)<< std::endl;
5963  }
5965 
5966 
5967  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5968  {
5969  Xyce::dout() << " (*q_bp_Equ_bi_Node_Ptr) += " << +dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ci) +dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ei)<< std::endl;
5970  }
5971  (*q_bp_Equ_ei_Node_Ptr) += -dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ei);
5972 
5973 
5974  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5975  {
5976  Xyce::dout() << " (*q_bp_Equ_ei_Node_Ptr) += " << -dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ei)<< std::endl;
5977  }
5978  (*q_bp_Equ_ci_Node_Ptr) += -dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ci);
5979 
5980 
5981  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5982  {
5983  Xyce::dout() << " (*q_bp_Equ_ci_Node_Ptr) += " << -dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bi_ci)<< std::endl;
5984  }
5985  (*q_bp_Equ_bx_Node_Ptr) += +dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bx_bp);
5986 
5987 
5988  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5989  {
5990  Xyce::dout() << " (*q_bp_Equ_bx_Node_Ptr) += " << +dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bx_bp)<< std::endl;
5991  }
5993 
5994 
5995  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5996  {
5997  Xyce::dout() << " (*q_bp_Equ_bp_Node_Ptr) += " << -dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_si_bp) -dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_bx_bp)<< std::endl;
5998  }
5999  (*q_bp_Equ_si_Node_Ptr) += +dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_si_bp);
6000 
6001 
6002  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6003  {
6004  Xyce::dout() << " (*q_bp_Equ_si_Node_Ptr) += " << +dynamicContributions[admsNodeID_bp].dx(admsProbeID_V_si_bp)<< std::endl;
6005  }
6006  (*q_bp_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_bp].dx(admsProbeID_Temp_dt_GND);
6007 
6008 
6009  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6010  {
6011  Xyce::dout() << " (*q_bp_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_bp].dx(admsProbeID_Temp_dt_GND)<< std::endl;
6012  }
6013  (*q_c_Equ_c_Node_Ptr) += -dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c);
6014 
6015 
6016  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6017  {
6018  Xyce::dout() << " (*q_c_Equ_c_Node_Ptr) += " << -dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c)<< std::endl;
6019  }
6020  (*q_cx_Equ_ei_Node_Ptr) += -dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ei);
6021 
6022 
6023  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6024  {
6025  Xyce::dout() << " (*q_cx_Equ_ei_Node_Ptr) += " << -dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ei)<< std::endl;
6026  }
6027  (*q_cx_Equ_bp_Node_Ptr) += -dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bx_bp);
6028 
6029 
6030  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6031  {
6032  Xyce::dout() << " (*q_cx_Equ_bp_Node_Ptr) += " << -dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bx_bp)<< std::endl;
6033  }
6035 
6036 
6037  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6038  {
6039  Xyce::dout() << " (*q_b_Equ_b_Node_Ptr) += " << +dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c) +dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_e)<< std::endl;
6040  }
6041  (*q_e_Equ_e_Node_Ptr) += -dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_e);
6042 
6043 
6044  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6045  {
6046  Xyce::dout() << " (*q_e_Equ_e_Node_Ptr) += " << -dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_e)<< std::endl;
6047  }
6048  (*q_si_Equ_bp_Node_Ptr) += -dynamicContributions[admsNodeID_si].dx(admsProbeID_V_si_bp);
6049 
6050 
6051  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6052  {
6053  Xyce::dout() << " (*q_si_Equ_bp_Node_Ptr) += " << -dynamicContributions[admsNodeID_si].dx(admsProbeID_V_si_bp)<< std::endl;
6054  }
6055  (*q_si_Equ_si_Node_Ptr) += +dynamicContributions[admsNodeID_si].dx(admsProbeID_V_si_bp);
6056 
6057 
6058  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6059  {
6060  Xyce::dout() << " (*q_si_Equ_si_Node_Ptr) += " << +dynamicContributions[admsNodeID_si].dx(admsProbeID_V_si_bp)<< std::endl;
6061  }
6062  (*q_si_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_si].dx(admsProbeID_Temp_dt_GND);
6063 
6064 
6065  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6066  {
6067  Xyce::dout() << " (*q_si_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_si].dx(admsProbeID_Temp_dt_GND)<< std::endl;
6068  }
6069  (*q_xf2_Equ_xf2_Node_Ptr) += +dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_xf2_GND);
6070 
6071 
6072  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6073  {
6074  Xyce::dout() << " (*q_xf2_Equ_xf2_Node_Ptr) += " << +dynamicContributions[admsNodeID_xf2].dx(admsProbeID_V_xf2_GND)<< std::endl;
6075  }
6076  (*q_dt_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_dt].dx(admsProbeID_Temp_dt_GND);
6077 
6078 
6079  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6080  {
6081  Xyce::dout() << " (*q_dt_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_dt].dx(admsProbeID_Temp_dt_GND)<< std::endl;
6082  }
6083  (*q_bi_Equ_cx_Node_Ptr) += -dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_cx);
6084 
6085 
6086  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6087  {
6088  Xyce::dout() << " (*q_bi_Equ_cx_Node_Ptr) += " << -dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_cx)<< std::endl;
6089  }
6090  (*q_ei_Equ_cx_Node_Ptr) += -dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bi_cx);
6091 
6092 
6093  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6094  {
6095  Xyce::dout() << " (*q_ei_Equ_cx_Node_Ptr) += " << -dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bi_cx)<< std::endl;
6096  }
6097  (*q_b_Equ_e_Node_Ptr) += -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_e);
6098 
6099 
6100  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6101  {
6102  Xyce::dout() << " (*q_b_Equ_e_Node_Ptr) += " << -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_e)<< std::endl;
6103  }
6104  (*q_e_Equ_b_Node_Ptr) += +dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_e);
6105 
6106 
6107  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6108  {
6109  Xyce::dout() << " (*q_e_Equ_b_Node_Ptr) += " << +dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_e)<< std::endl;
6110  }
6111  (*q_b_Equ_c_Node_Ptr) += -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c);
6112 
6113 
6114  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6115  {
6116  Xyce::dout() << " (*q_b_Equ_c_Node_Ptr) += " << -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c)<< std::endl;
6117  }
6118  (*q_c_Equ_b_Node_Ptr) += +dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c);
6119 
6120 
6121  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6122  {
6123  Xyce::dout() << " (*q_c_Equ_b_Node_Ptr) += " << +dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c)<< std::endl;
6124  }
6125  (*q_xf1_Equ_xf1_Node_Ptr) += +dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_xf1_GND);
6126 
6127 
6128  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
6129  {
6130  Xyce::dout() << " (*q_xf1_Equ_xf1_Node_Ptr) += " << +dynamicContributions[admsNodeID_xf1].dx(admsProbeID_V_xf1_GND)<< std::endl;
6131  }
6132 
6133 
6134  return bsuccess;
6135 }
6136 
6137 //-----------------------------------------------------------------------------
6138 // Function : Instance::updateTemperature
6139 // Purpose : Set temperature and update any parameters that depend on it
6140 // Special Notes : In Xyce ADMS, we'll simply copy the temperature, which is
6141 // in Kelvin, to our "admsTemperature" variable, which needs
6142 // to be in Celsius.
6143 // Scope : public
6144 // Creator : admsXml
6145 // Creation Date :
6146 //-----------------------------------------------------------------------------
6147 bool Instance::updateTemperature(const double & temperatureTemp)
6148 {
6149 
6150  admsTemperature = temperatureTemp;
6151  adms_vt_nom = adms_vt(temperatureTemp);
6152 
6153  return true;
6154 }
6155 
6156 // Class Model
6157 //-----------------------------------------------------------------------------
6158 // Function : Model::processParams
6159 // Purpose :
6160 // Special Notes :
6161 // Scope : public
6162 // Creator : admsXml
6163 // Creation Date :
6164 //-----------------------------------------------------------------------------
6166 {
6167 
6168  // Now we need to check that any parameters are within their ranges as
6169  // specified in the verilog:
6170 
6171  // Parameter type : [ (-1), 1 ]] 0, 0 [
6172  if ( (!((type >=(-1) && type <=1 )) || (type >0 && type <0 )) )
6173  {
6174  UserError0(*this) << "ADMSvbic13_4t: Parameter type value " << type << " out of range [ (-1), 1 ] or ] 0, 0 [";
6175  }
6176 
6177  // Parameter VBICtype : [ (-1), 1 ][ 0, 0 ]
6178  if ( (!((VBICtype >=(-1) && VBICtype <=1 )) || (VBICtype >=0 && VBICtype <=0 )) )
6179  {
6180  UserError0(*this) << "ADMSvbic13_4t: Parameter VBICtype value " << VBICtype << " out of range [ (-1), 1 ] or in excluded range [ 0, 0 ]";
6181  }
6182 
6183  // Parameter scale : ] 0.0, 1.0 ]
6184  if ( (!((scale >0.0 && scale <=1.0 ))) )
6185  {
6186  UserError0(*this) << "ADMSvbic13_4t: Parameter scale value " << scale << " out of range ] 0.0, 1.0 ]";
6187  }
6188 
6189  // Parameter shrink : [ 0.0, 100.0 [
6190  if ( (!((shrink >=0.0 && shrink <100.0 ))) )
6191  {
6192  UserError0(*this) << "ADMSvbic13_4t: Parameter shrink value " << shrink << " out of range [ 0.0, 100.0 [";
6193  }
6194 
6195  // Parameter tmin : [ (-250.0), 27.0 ]
6196  if ( (!((tmin >=(-250.0) && tmin <=27.0 ))) )
6197  {
6198  UserError0(*this) << "ADMSvbic13_4t: Parameter tmin value " << tmin << " out of range [ (-250.0), 27.0 ]";
6199  }
6200 
6201  // Parameter tmax : [ 27.0, 1000.0 ]
6202  if ( (!((tmax >=27.0 && tmax <=1000.0 ))) )
6203  {
6204  UserError0(*this) << "ADMSvbic13_4t: Parameter tmax value " << tmax << " out of range [ 27.0, 1000.0 ]";
6205  }
6206 
6207  // Parameter gmin : [ 0.0, (+inf) [
6208  if ( (!((gmin >=0.0))) )
6209  {
6210  UserError0(*this) << "ADMSvbic13_4t: Parameter gmin value " << gmin << " out of range [ 0.0, (+inf) [";
6211  }
6212 
6213  // Parameter pnjmaxi : ] 0.0, (+inf) [
6214  if ( (!((pnjmaxi >0.0))) )
6215  {
6216  UserError0(*this) << "ADMSvbic13_4t: Parameter pnjmaxi value " << pnjmaxi << " out of range ] 0.0, (+inf) [";
6217  }
6218 
6219  // Parameter maxexp : ] 0.0, (+inf) [
6220  if ( (!((maxexp >0.0))) )
6221  {
6222  UserError0(*this) << "ADMSvbic13_4t: Parameter maxexp value " << maxexp << " out of range ] 0.0, (+inf) [";
6223  }
6224 
6225  // Parameter tnom : [ (-250.0), 1000.0 ]
6226  if ( (!((tnom >=(-250.0) && tnom <=1000.0 ))) )
6227  {
6228  UserError0(*this) << "ADMSvbic13_4t: Parameter tnom value " << tnom << " out of range [ (-250.0), 1000.0 ]";
6229  }
6230 
6231  // Parameter tminclip : [ (-250.0), 27.0 ]
6232  if ( (!((tminclip >=(-250.0) && tminclip <=27.0 ))) )
6233  {
6234  UserError0(*this) << "ADMSvbic13_4t: Parameter tminclip value " << tminclip << " out of range [ (-250.0), 27.0 ]";
6235  }
6236 
6237  // Parameter tmaxclip : [ 27.0, 1000.0 ]
6238  if ( (!((tmaxclip >=27.0 && tmaxclip <=1000.0 ))) )
6239  {
6240  UserError0(*this) << "ADMSvbic13_4t: Parameter tmaxclip value " << tmaxclip << " out of range [ 27.0, 1000.0 ]";
6241  }
6242 
6243  // Parameter rcx : [ 0.0, (+inf) [
6244  if ( (!((rcx >=0.0))) )
6245  {
6246  UserError0(*this) << "ADMSvbic13_4t: Parameter rcx value " << rcx << " out of range [ 0.0, (+inf) [";
6247  }
6248 
6249  // Parameter rci : [ 0.0, (+inf) [
6250  if ( (!((rci >=0.0))) )
6251  {
6252  UserError0(*this) << "ADMSvbic13_4t: Parameter rci value " << rci << " out of range [ 0.0, (+inf) [";
6253  }
6254 
6255  // Parameter vo : [ 0.0, (+inf) [
6256  if ( (!((vo >=0.0))) )
6257  {
6258  UserError0(*this) << "ADMSvbic13_4t: Parameter vo value " << vo << " out of range [ 0.0, (+inf) [";
6259  }
6260 
6261  // Parameter gamm : [ 0.0, (+inf) [
6262  if ( (!((gamm >=0.0))) )
6263  {
6264  UserError0(*this) << "ADMSvbic13_4t: Parameter gamm value " << gamm << " out of range [ 0.0, (+inf) [";
6265  }
6266 
6267  // Parameter hrcf : [ 0.0, (+inf) [
6268  if ( (!((hrcf >=0.0))) )
6269  {
6270  UserError0(*this) << "ADMSvbic13_4t: Parameter hrcf value " << hrcf << " out of range [ 0.0, (+inf) [";
6271  }
6272 
6273  // Parameter rbx : [ 0.0, (+inf) [
6274  if ( (!((rbx >=0.0))) )
6275  {
6276  UserError0(*this) << "ADMSvbic13_4t: Parameter rbx value " << rbx << " out of range [ 0.0, (+inf) [";
6277  }
6278 
6279  // Parameter rbi : [ 0.0, (+inf) [
6280  if ( (!((rbi >=0.0))) )
6281  {
6282  UserError0(*this) << "ADMSvbic13_4t: Parameter rbi value " << rbi << " out of range [ 0.0, (+inf) [";
6283  }
6284 
6285  // Parameter re : [ 0.0, (+inf) [
6286  if ( (!((re >=0.0))) )
6287  {
6288  UserError0(*this) << "ADMSvbic13_4t: Parameter re value " << re << " out of range [ 0.0, (+inf) [";
6289  }
6290 
6291  // Parameter rs : [ 0.0, (+inf) [
6292  if ( (!((rs >=0.0))) )
6293  {
6294  UserError0(*this) << "ADMSvbic13_4t: Parameter rs value " << rs << " out of range [ 0.0, (+inf) [";
6295  }
6296 
6297  // Parameter rbp : [ 0.0, (+inf) [
6298  if ( (!((rbp >=0.0))) )
6299  {
6300  UserError0(*this) << "ADMSvbic13_4t: Parameter rbp value " << rbp << " out of range [ 0.0, (+inf) [";
6301  }
6302 
6303  // Parameter is : ] 0.0, (+inf) [
6304  if ( (!((is >0.0))) )
6305  {
6306  UserError0(*this) << "ADMSvbic13_4t: Parameter is value " << is << " out of range ] 0.0, (+inf) [";
6307  }
6308 
6309  // Parameter isrr : ] 0.0, (+inf) [
6310  if ( (!((isrr >0.0))) )
6311  {
6312  UserError0(*this) << "ADMSvbic13_4t: Parameter isrr value " << isrr << " out of range ] 0.0, (+inf) [";
6313  }
6314 
6315  // Parameter nf : ] 0.0, (+inf) [
6316  if ( (!((nf >0.0))) )
6317  {
6318  UserError0(*this) << "ADMSvbic13_4t: Parameter nf value " << nf << " out of range ] 0.0, (+inf) [";
6319  }
6320 
6321  // Parameter nr : ] 0.0, (+inf) [
6322  if ( (!((nr >0.0))) )
6323  {
6324  UserError0(*this) << "ADMSvbic13_4t: Parameter nr value " << nr << " out of range ] 0.0, (+inf) [";
6325  }
6326 
6327  // Parameter qbm : [ 0, 1 ]
6328  if ( (!((qbm >=0 && qbm <=1 ))) )
6329  {
6330  UserError0(*this) << "ADMSvbic13_4t: Parameter qbm value " << qbm << " out of range [ 0, 1 ]";
6331  }
6332 
6333  // Parameter isp : [ 0.0, (+inf) [
6334  if ( (!((isp >=0.0))) )
6335  {
6336  UserError0(*this) << "ADMSvbic13_4t: Parameter isp value " << isp << " out of range [ 0.0, (+inf) [";
6337  }
6338 
6339  // Parameter wsp : [ 0.0, 1.0 ]
6340  if ( (!((wsp >=0.0 && wsp <=1.0 ))) )
6341  {
6342  UserError0(*this) << "ADMSvbic13_4t: Parameter wsp value " << wsp << " out of range [ 0.0, 1.0 ]";
6343  }
6344 
6345  // Parameter nfp : ] 0.0, (+inf) [
6346  if ( (!((nfp >0.0))) )
6347  {
6348  UserError0(*this) << "ADMSvbic13_4t: Parameter nfp value " << nfp << " out of range ] 0.0, (+inf) [";
6349  }
6350 
6351  // Parameter fc : [ 0.0, 1.0 [
6352  if ( (!((fc >=0.0 && fc <1.0 ))) )
6353  {
6354  UserError0(*this) << "ADMSvbic13_4t: Parameter fc value " << fc << " out of range [ 0.0, 1.0 [";
6355  }
6356 
6357  // Parameter cbeo : [ 0.0, (+inf) [
6358  if ( (!((cbeo >=0.0))) )
6359  {
6360  UserError0(*this) << "ADMSvbic13_4t: Parameter cbeo value " << cbeo << " out of range [ 0.0, (+inf) [";
6361  }
6362 
6363  // Parameter cje : [ 0.0, (+inf) [
6364  if ( (!((cje >=0.0))) )
6365  {
6366  UserError0(*this) << "ADMSvbic13_4t: Parameter cje value " << cje << " out of range [ 0.0, (+inf) [";
6367  }
6368 
6369  // Parameter pe : ] 0.0, (+inf) [
6370  if ( (!((pe >0.0))) )
6371  {
6372  UserError0(*this) << "ADMSvbic13_4t: Parameter pe value " << pe << " out of range ] 0.0, (+inf) [";
6373  }
6374 
6375  // Parameter me : ] 0.0, 1.0 ]
6376  if ( (!((me >0.0 && me <=1.0 ))) )
6377  {
6378  UserError0(*this) << "ADMSvbic13_4t: Parameter me value " << me << " out of range ] 0.0, 1.0 ]";
6379  }
6380 
6381  // Parameter cbco : [ 0.0, (+inf) [
6382  if ( (!((cbco >=0.0))) )
6383  {
6384  UserError0(*this) << "ADMSvbic13_4t: Parameter cbco value " << cbco << " out of range [ 0.0, (+inf) [";
6385  }
6386 
6387  // Parameter cjc : [ 0.0, (+inf) [
6388  if ( (!((cjc >=0.0))) )
6389  {
6390  UserError0(*this) << "ADMSvbic13_4t: Parameter cjc value " << cjc << " out of range [ 0.0, (+inf) [";
6391  }
6392 
6393  // Parameter pc : ] 0.0, (+inf) [
6394  if ( (!((pc >0.0))) )
6395  {
6396  UserError0(*this) << "ADMSvbic13_4t: Parameter pc value " << pc << " out of range ] 0.0, (+inf) [";
6397  }
6398 
6399  // Parameter mc : ] 0.0, 1.0 ]
6400  if ( (!((mc >0.0 && mc <=1.0 ))) )
6401  {
6402  UserError0(*this) << "ADMSvbic13_4t: Parameter mc value " << mc << " out of range ] 0.0, 1.0 ]";
6403  }
6404 
6405  // Parameter vrt : [ 0.0, (+inf) [
6406  if ( (!((vrt >=0.0))) )
6407  {
6408  UserError0(*this) << "ADMSvbic13_4t: Parameter vrt value " << vrt << " out of range [ 0.0, (+inf) [";
6409  }
6410 
6411  // Parameter art : ] 0.0, (+inf) [
6412  if ( (!((art >0.0))) )
6413  {
6414  UserError0(*this) << "ADMSvbic13_4t: Parameter art value " << art << " out of range ] 0.0, (+inf) [";
6415  }
6416 
6417  // Parameter qco : [ 0.0, (+inf) [
6418  if ( (!((qco >=0.0))) )
6419  {
6420  UserError0(*this) << "ADMSvbic13_4t: Parameter qco value " << qco << " out of range [ 0.0, (+inf) [";
6421  }
6422 
6423  // Parameter cjep : [ 0.0, (+inf) [
6424  if ( (!((cjep >=0.0))) )
6425  {
6426  UserError0(*this) << "ADMSvbic13_4t: Parameter cjep value " << cjep << " out of range [ 0.0, (+inf) [";
6427  }
6428 
6429  // Parameter cjcp : [ 0.0, (+inf) [
6430  if ( (!((cjcp >=0.0))) )
6431  {
6432  UserError0(*this) << "ADMSvbic13_4t: Parameter cjcp value " << cjcp << " out of range [ 0.0, (+inf) [";
6433  }
6434 
6435  // Parameter ps : ] 0.0, (+inf) [
6436  if ( (!((ps >0.0))) )
6437  {
6438  UserError0(*this) << "ADMSvbic13_4t: Parameter ps value " << ps << " out of range ] 0.0, (+inf) [";
6439  }
6440 
6441  // Parameter ms : ] 0.0, 1.0 ]
6442  if ( (!((ms >0.0 && ms <=1.0 ))) )
6443  {
6444  UserError0(*this) << "ADMSvbic13_4t: Parameter ms value " << ms << " out of range ] 0.0, 1.0 ]";
6445  }
6446 
6447  // Parameter ccso : [ 0.0, (+inf) [
6448  if ( (!((ccso >=0.0))) )
6449  {
6450  UserError0(*this) << "ADMSvbic13_4t: Parameter ccso value " << ccso << " out of range [ 0.0, (+inf) [";
6451  }
6452 
6453  // Parameter ibei : [ 0.0, (+inf) [
6454  if ( (!((ibei >=0.0))) )
6455  {
6456  UserError0(*this) << "ADMSvbic13_4t: Parameter ibei value " << ibei << " out of range [ 0.0, (+inf) [";
6457  }
6458 
6459  // Parameter wbe : [ 0.0, 1.0 ]
6460  if ( (!((wbe >=0.0 && wbe <=1.0 ))) )
6461  {
6462  UserError0(*this) << "ADMSvbic13_4t: Parameter wbe value " << wbe << " out of range [ 0.0, 1.0 ]";
6463  }
6464 
6465  // Parameter nei : ] 0.0, (+inf) [
6466  if ( (!((nei >0.0))) )
6467  {
6468  UserError0(*this) << "ADMSvbic13_4t: Parameter nei value " << nei << " out of range ] 0.0, (+inf) [";
6469  }
6470 
6471  // Parameter qnibeir : [ 0.0, 1.0 ]
6472  if ( (!((qnibeir >=0.0 && qnibeir <=1.0 ))) )
6473  {
6474  UserError0(*this) << "ADMSvbic13_4t: Parameter qnibeir value " << qnibeir << " out of range [ 0.0, 1.0 ]";
6475  }
6476 
6477  // Parameter iben : [ 0.0, (+inf) [
6478  if ( (!((iben >=0.0))) )
6479  {
6480  UserError0(*this) << "ADMSvbic13_4t: Parameter iben value " << iben << " out of range [ 0.0, (+inf) [";
6481  }
6482 
6483  // Parameter nen : ] nei, (+inf) [
6484  if ( (!((nen >nei))) )
6485  {
6486  UserError0(*this) << "ADMSvbic13_4t: Parameter nen value " << nen << " out of range ] nei, (+inf) [";
6487  }
6488 
6489  // Parameter ibci : [ 0.0, (+inf) [
6490  if ( (!((ibci >=0.0))) )
6491  {
6492  UserError0(*this) << "ADMSvbic13_4t: Parameter ibci value " << ibci << " out of range [ 0.0, (+inf) [";
6493  }
6494 
6495  // Parameter nci : ] 0.0, (+inf) [
6496  if ( (!((nci >0.0))) )
6497  {
6498  UserError0(*this) << "ADMSvbic13_4t: Parameter nci value " << nci << " out of range ] 0.0, (+inf) [";
6499  }
6500 
6501  // Parameter ibcn : [ 0.0, (+inf) [
6502  if ( (!((ibcn >=0.0))) )
6503  {
6504  UserError0(*this) << "ADMSvbic13_4t: Parameter ibcn value " << ibcn << " out of range [ 0.0, (+inf) [";
6505  }
6506 
6507  // Parameter ncn : ] nci, (+inf) [
6508  if ( (!((ncn >nci))) )
6509  {
6510  UserError0(*this) << "ADMSvbic13_4t: Parameter ncn value " << ncn << " out of range ] nci, (+inf) [";
6511  }
6512 
6513  // Parameter ibeip : [ 0.0, (+inf) [
6514  if ( (!((ibeip >=0.0))) )
6515  {
6516  UserError0(*this) << "ADMSvbic13_4t: Parameter ibeip value " << ibeip << " out of range [ 0.0, (+inf) [";
6517  }
6518 
6519  // Parameter ibenp : [ 0.0, (+inf) [
6520  if ( (!((ibenp >=0.0))) )
6521  {
6522  UserError0(*this) << "ADMSvbic13_4t: Parameter ibenp value " << ibenp << " out of range [ 0.0, (+inf) [";
6523  }
6524 
6525  // Parameter ibcip : [ 0.0, (+inf) [
6526  if ( (!((ibcip >=0.0))) )
6527  {
6528  UserError0(*this) << "ADMSvbic13_4t: Parameter ibcip value " << ibcip << " out of range [ 0.0, (+inf) [";
6529  }
6530 
6531  // Parameter ncip : ] 0.0, (+inf) [
6532  if ( (!((ncip >0.0))) )
6533  {
6534  UserError0(*this) << "ADMSvbic13_4t: Parameter ncip value " << ncip << " out of range ] 0.0, (+inf) [";
6535  }
6536 
6537  // Parameter ibcnp : [ 0.0, (+inf) [
6538  if ( (!((ibcnp >=0.0))) )
6539  {
6540  UserError0(*this) << "ADMSvbic13_4t: Parameter ibcnp value " << ibcnp << " out of range [ 0.0, (+inf) [";
6541  }
6542 
6543  // Parameter ncnp : ] ncip, (+inf) [
6544  if ( (!((ncnp >ncip))) )
6545  {
6546  UserError0(*this) << "ADMSvbic13_4t: Parameter ncnp value " << ncnp << " out of range ] ncip, (+inf) [";
6547  }
6548 
6549  // Parameter vef : [ 0.0, (+inf) [
6550  if ( (!((vef >=0.0))) )
6551  {
6552  UserError0(*this) << "ADMSvbic13_4t: Parameter vef value " << vef << " out of range [ 0.0, (+inf) [";
6553  }
6554 
6555  // Parameter ver : [ 0.0, (+inf) [
6556  if ( (!((ver >=0.0))) )
6557  {
6558  UserError0(*this) << "ADMSvbic13_4t: Parameter ver value " << ver << " out of range [ 0.0, (+inf) [";
6559  }
6560 
6561  // Parameter ikf : [ 0.0, (+inf) [
6562  if ( (!((ikf >=0.0))) )
6563  {
6564  UserError0(*this) << "ADMSvbic13_4t: Parameter ikf value " << ikf << " out of range [ 0.0, (+inf) [";
6565  }
6566 
6567  // Parameter nkf : ] 0.0, (+inf) [
6568  if ( (!((nkf >0.0))) )
6569  {
6570  UserError0(*this) << "ADMSvbic13_4t: Parameter nkf value " << nkf << " out of range ] 0.0, (+inf) [";
6571  }
6572 
6573  // Parameter ikr : [ 0.0, (+inf) [
6574  if ( (!((ikr >=0.0))) )
6575  {
6576  UserError0(*this) << "ADMSvbic13_4t: Parameter ikr value " << ikr << " out of range [ 0.0, (+inf) [";
6577  }
6578 
6579  // Parameter ikp : [ 0.0, (+inf) [
6580  if ( (!((ikp >=0.0))) )
6581  {
6582  UserError0(*this) << "ADMSvbic13_4t: Parameter ikp value " << ikp << " out of range [ 0.0, (+inf) [";
6583  }
6584 
6585  // Parameter tf : [ 0.0, (+inf) [
6586  if ( (!((tf >=0.0))) )
6587  {
6588  UserError0(*this) << "ADMSvbic13_4t: Parameter tf value " << tf << " out of range [ 0.0, (+inf) [";
6589  }
6590 
6591  // Parameter qtf : [ 0.0, (+inf) [
6592  if ( (!((qtf >=0.0))) )
6593  {
6594  UserError0(*this) << "ADMSvbic13_4t: Parameter qtf value " << qtf << " out of range [ 0.0, (+inf) [";
6595  }
6596 
6597  // Parameter xtf : [ 0.0, (+inf) [
6598  if ( (!((xtf >=0.0))) )
6599  {
6600  UserError0(*this) << "ADMSvbic13_4t: Parameter xtf value " << xtf << " out of range [ 0.0, (+inf) [";
6601  }
6602 
6603  // Parameter vtf : [ 0.0, (+inf) [
6604  if ( (!((vtf >=0.0))) )
6605  {
6606  UserError0(*this) << "ADMSvbic13_4t: Parameter vtf value " << vtf << " out of range [ 0.0, (+inf) [";
6607  }
6608 
6609  // Parameter itf : [ 0.0, (+inf) [
6610  if ( (!((itf >=0.0))) )
6611  {
6612  UserError0(*this) << "ADMSvbic13_4t: Parameter itf value " << itf << " out of range [ 0.0, (+inf) [";
6613  }
6614 
6615  // Parameter tr : [ 0.0, (+inf) [
6616  if ( (!((tr >=0.0))) )
6617  {
6618  UserError0(*this) << "ADMSvbic13_4t: Parameter tr value " << tr << " out of range [ 0.0, (+inf) [";
6619  }
6620 
6621  // Parameter td : [ 0.0, (+inf) [
6622  if ( (!((td >=0.0))) )
6623  {
6624  UserError0(*this) << "ADMSvbic13_4t: Parameter td value " << td << " out of range [ 0.0, (+inf) [";
6625  }
6626 
6627  // Parameter avc1 : [ 0.0, (+inf) [
6628  if ( (!((avc1 >=0.0))) )
6629  {
6630  UserError0(*this) << "ADMSvbic13_4t: Parameter avc1 value " << avc1 << " out of range [ 0.0, (+inf) [";
6631  }
6632 
6633  // Parameter avc2 : [ 0.0, (+inf) [
6634  if ( (!((avc2 >=0.0))) )
6635  {
6636  UserError0(*this) << "ADMSvbic13_4t: Parameter avc2 value " << avc2 << " out of range [ 0.0, (+inf) [";
6637  }
6638 
6639  // Parameter avcx1 : [ 0.0, (+inf) [
6640  if ( (!((avcx1 >=0.0))) )
6641  {
6642  UserError0(*this) << "ADMSvbic13_4t: Parameter avcx1 value " << avcx1 << " out of range [ 0.0, (+inf) [";
6643  }
6644 
6645  // Parameter avcx2 : [ 0.0, (+inf) [
6646  if ( (!((avcx2 >=0.0))) )
6647  {
6648  UserError0(*this) << "ADMSvbic13_4t: Parameter avcx2 value " << avcx2 << " out of range [ 0.0, (+inf) [";
6649  }
6650 
6651  // Parameter mcx : ] 0.0, 1.0 ]
6652  if ( (!((mcx >0.0 && mcx <=1.0 ))) )
6653  {
6654  UserError0(*this) << "ADMSvbic13_4t: Parameter mcx value " << mcx << " out of range ] 0.0, 1.0 ]";
6655  }
6656 
6657  // Parameter vbbe : [ 0.0, (+inf) [
6658  if ( (!((vbbe >=0.0))) )
6659  {
6660  UserError0(*this) << "ADMSvbic13_4t: Parameter vbbe value " << vbbe << " out of range [ 0.0, (+inf) [";
6661  }
6662 
6663  // Parameter nbbe : ] 0.0, (+inf) [
6664  if ( (!((nbbe >0.0))) )
6665  {
6666  UserError0(*this) << "ADMSvbic13_4t: Parameter nbbe value " << nbbe << " out of range ] 0.0, (+inf) [";
6667  }
6668 
6669  // Parameter ibbe : ] 0.0, (+inf) [
6670  if ( (!((ibbe >0.0))) )
6671  {
6672  UserError0(*this) << "ADMSvbic13_4t: Parameter ibbe value " << ibbe << " out of range ] 0.0, (+inf) [";
6673  }
6674 
6675  // Parameter vpte : [ 0.0, (+inf) [
6676  if ( (!((vpte >=0.0))) )
6677  {
6678  UserError0(*this) << "ADMSvbic13_4t: Parameter vpte value " << vpte << " out of range [ 0.0, (+inf) [";
6679  }
6680 
6681  // Parameter ibk0 : [ 0.0, (+inf) [
6682  if ( (!((ibk0 >=0.0))) )
6683  {
6684  UserError0(*this) << "ADMSvbic13_4t: Parameter ibk0 value " << ibk0 << " out of range [ 0.0, (+inf) [";
6685  }
6686 
6687  // Parameter abk : ] 0.0, (+inf) [
6688  if ( (!((abk >0.0))) )
6689  {
6690  UserError0(*this) << "ADMSvbic13_4t: Parameter abk value " << abk << " out of range ] 0.0, (+inf) [";
6691  }
6692 
6693  // Parameter bbk : [ 0.0, (+inf) [
6694  if ( (!((bbk >=0.0))) )
6695  {
6696  UserError0(*this) << "ADMSvbic13_4t: Parameter bbk value " << bbk << " out of range [ 0.0, (+inf) [";
6697  }
6698 
6699  // Parameter kfn : [ 0.0, (+inf) [
6700  if ( (!((kfn >=0.0))) )
6701  {
6702  UserError0(*this) << "ADMSvbic13_4t: Parameter kfn value " << kfn << " out of range [ 0.0, (+inf) [";
6703  }
6704 
6705  // Parameter afn : ] 0.0, (+inf) [
6706  if ( (!((afn >0.0))) )
6707  {
6708  UserError0(*this) << "ADMSvbic13_4t: Parameter afn value " << afn << " out of range ] 0.0, (+inf) [";
6709  }
6710 
6711  // Parameter bfn : ] 0.0, (+inf) [
6712  if ( (!((bfn >0.0))) )
6713  {
6714  UserError0(*this) << "ADMSvbic13_4t: Parameter bfn value " << bfn << " out of range ] 0.0, (+inf) [";
6715  }
6716 
6717  // Parameter rth : [ 0.0, (+inf) [
6718  if ( (!((rth >=0.0))) )
6719  {
6720  UserError0(*this) << "ADMSvbic13_4t: Parameter rth value " << rth << " out of range [ 0.0, (+inf) [";
6721  }
6722 
6723  // Parameter cth : [ 0.0, (+inf) [
6724  if ( (!((cth >=0.0))) )
6725  {
6726  UserError0(*this) << "ADMSvbic13_4t: Parameter cth value " << cth << " out of range [ 0.0, (+inf) [";
6727  }
6728 
6729 
6730  // and of course, this routine is where we should put the initial_model
6731  // stuff
6732 
6733 
6734  return true;
6735 }
6736 //----------------------------------------------------------------------------
6737 // Function : Model::processInstanceParams
6738 // Purpose :
6739 // Special Notes :
6740 // Scope : public
6741 // Creator :
6742 // Creation Date :
6743 //----------------------------------------------------------------------------
6745 {
6746 
6747  std::vector<Instance*>::iterator iter;
6748  std::vector<Instance*>::iterator first = instanceContainer.begin();
6749  std::vector<Instance*>::iterator last = instanceContainer.end();
6750 
6751  for (iter=first; iter!=last; ++iter)
6752  {
6753  (*iter)->processParams();
6754  }
6755 
6756  return true;
6757 }
6758 
6759 //-----------------------------------------------------------------------------
6760 // Function : Model::Model
6761 // Purpose : model block constructor
6762 // Special Notes :
6763 // Scope : public
6764 // Creator :
6765 // Creation Date :
6766 //-----------------------------------------------------------------------------
6768  const Configuration & configuration,
6769  const ModelBlock & model_block,
6770  const FactoryBlock & factory_block)
6771  : DeviceModel(model_block, configuration.getModelParameters(), factory_block),
6772  npn(0.0),
6773  pnp(0.0),
6774  type((-1)),
6775  VBICtype(1),
6776  scale(1.0),
6777  shrink(0.0),
6778  tmin((-100.0)),
6779  tmax(500.0),
6780  gmin(1.0e-12),
6781  pnjmaxi(1.0),
6782  maxexp(1.0e22),
6783  tnom(27.0),
6784  tminclip((-100.0)),
6785  tmaxclip(500.0),
6786  rcx(0.0),
6787  rci(0.0),
6788  vo(0.0),
6789  gamm(0.0),
6790  hrcf(0.0),
6791  rbx(0.0),
6792  rbi(0.0),
6793  re(0.0),
6794  rs(0.0),
6795  rbp(0.0),
6796  is(1.0e-16),
6797  isrr(1.0),
6798  nf(1.0),
6799  nr(1.0),
6800  qbm(0),
6801  isp(0.0),
6802  wsp(1.0),
6803  nfp(1.0),
6804  fc(0.9),
6805  cbeo(0.0),
6806  cje(0.0),
6807  pe(0.75),
6808  me(0.33),
6809  aje((-0.5)),
6810  cbco(0.0),
6811  cjc(0.0),
6812  pc(0.75),
6813  mc(0.33),
6814  ajc((-0.5)),
6815  vrt(0.0),
6816  art(0.1),
6817  qco(0.0),
6818  cjep(0.0),
6819  cjcp(0.0),
6820  ps(0.75),
6821  ms(0.33),
6822  ajs((-0.5)),
6823  ccso(0.0),
6824  ibei(1.0e-18),
6825  wbe(1.0),
6826  nei(1.0),
6827  qnibeir(0.0),
6828  iben(0.0),
6829  nen(2.0),
6830  ibci(1.0e-16),
6831  nci(1.0),
6832  ibcn(0.0),
6833  ncn(2.0),
6834  ibeip(0.0),
6835  ibenp(0.0),
6836  ibcip(0.0),
6837  ncip(1.0),
6838  ibcnp(0.0),
6839  ncnp(2.0),
6840  vef(0.0),
6841  ver(0.0),
6842  ikf(0.0),
6843  nkf(0.5),
6844  ikr(0.0),
6845  ikp(0.0),
6846  tf(0.0),
6847  qtf(0.0),
6848  xtf(0.0),
6849  vtf(0.0),
6850  itf(0.0),
6851  tr(0.0),
6852  td(0.0),
6853  avc1(0.0),
6854  avc2(0.0),
6855  avcx1(0.0),
6856  avcx2(0.0),
6857  mcx(0.33),
6858  vbbe(0.0),
6859  nbbe(1.0),
6860  ibbe(1.0e-06),
6861  tvbbe1(0.0),
6862  tvbbe2(0.0),
6863  tnbbe(0.0),
6864  vpte(0.0),
6865  ibk0(0.0),
6866  abk(1.0),
6867  bbk(0.0),
6868  kfn(0.0),
6869  afn(1.0),
6870  bfn(1.0),
6871  rth(0.0),
6872  cth(0.0),
6873  xre(0.0),
6874  xrb(0.0),
6875  xrbi(0.0),
6876  xrbx(0.0),
6877  xrc(0.0),
6878  xrci(0.0),
6879  xrcx(0.0),
6880  xrbp(0.0),
6881  xrs(0.0),
6882  xvo(0.0),
6883  ea(1.12),
6884  eaie(1.12),
6885  eaic(1.12),
6886  eais(1.12),
6887  eane(1.12),
6888  eanc(1.12),
6889  eans(1.12),
6890  eap(1.12),
6891  dear(0.0),
6892  xis(3.0),
6893  xii(3.0),
6894  xin(3.0),
6895  xisr(0.0),
6896  xikf(0.0),
6897  tavc(0.0),
6898  tavcx(0.0),
6899  tnf(0.0),
6900  tcvef(0.0),
6901  tcver(0.0),
6902  tcrth(0.0)
6903 {
6904  // Set params to constant default values (from parTable):
6905  setDefaultParams();
6906 
6907  // Set params according to .model line and constant defaults from metadata:
6908  setModParams(model_block.params);
6909 
6910  // Set any non-constant parameter defaults:
6911  // Set any parameters that were not given and whose defaults depend on other
6912  // parameters:
6913 
6914 
6915  if (!given("XYCEADMSMODTEMP"))
6916  admsModTemp=getDeviceOptions().temp.getImmutableValue<double>();
6917 
6918  // Fix the TNOM parameter that has "helpfully" been converted to Kelvin
6919  // by the DeviceEntity class
6920 
6921  if (given("TNOM"))
6922  tnom -= CONSTCtoK;
6923 
6924  // Calculate any parameters specified as expressions:
6925 
6927 
6928  // set internal model type based on model card type
6929  if (getType() == "pnp" || getType() == "PNP")
6930  VBICtype = -1;
6931 
6932  // calculate dependent (ie computed) params and check for errors:
6933  processParams();
6934 }
6935 
6936 //-----------------------------------------------------------------------------
6937 // Function : Model::~Model
6938 // Purpose : destructor
6939 // Special Notes :
6940 // Scope : public
6941 // Creator :
6942 // Creation Date :
6943 //-----------------------------------------------------------------------------
6945 {
6946  std::vector<Instance*>::iterator iterI;
6947  std::vector<Instance*>::iterator firstI = instanceContainer.begin ();
6948  std::vector<Instance*>::iterator lastI = instanceContainer.end ();
6949 
6950  // loop over instances:
6951  for (iterI = firstI; iterI != lastI; ++iterI)
6952  {
6953  delete (*iterI);
6954  }
6955 }
6956 
6957 //-----------------------------------------------------------------------------
6958 // Function : Model::printOutInstances
6959 // Purpose : debugging tool.
6960 // Special Notes :
6961 // Scope : public
6962 // Creator :
6963 // Creation Date :
6964 //-----------------------------------------------------------------------------
6965 std::ostream &Model::printOutInstances(std::ostream &os) const
6966 {
6967  std::vector<Instance*>::const_iterator iter;
6968  std::vector<Instance*>::const_iterator first = instanceContainer.begin();
6969  std::vector<Instance*>::const_iterator last = instanceContainer.end();
6970 
6971  int i;
6972  os << std::endl;
6973  os << " name model name Parameters" << std::endl;
6974  for (i=0, iter=first; iter!=last; ++iter, ++i)
6975  {
6976  os << " " << i << ": " << (*iter)->getName() << " ";
6977  os << getName();
6978 
6979  os << std::endl;
6980  os << "M = " << (*iter)->m << std::endl;
6981  os << "TRISE = " << (*iter)->trise << std::endl;
6982  os << "SW_NOISE = " << (*iter)->sw_noise << std::endl;
6983  os << "SW_ET = " << (*iter)->sw_et << std::endl;
6984  os << std::endl;
6985  }
6986 
6987  os << std::endl;
6988 
6989  return os;
6990 }
6991 
6992 //-----------------------------------------------------------------------------
6993 // Function : Model::forEachInstance
6994 // Purpose :
6995 // Special Notes :
6996 // Scope : public
6997 // Creator : David Baur
6998 // Creation Date : 2/4/2014
6999 //-----------------------------------------------------------------------------
7000 /// Apply a device instance "op" to all instances associated with this
7001 /// model
7002 ///
7003 /// @param[in] op Operator to apply to all instances.
7004 ///
7005 ///
7006 void Model::forEachInstance(DeviceInstanceOp &op) const /* override */
7007 {
7008  for (std::vector<Instance *>::const_iterator it = instanceContainer.begin(); it != instanceContainer.end(); ++it)
7009  op(*it);
7010 }
7011 
7012 Device *Traits::factory(const Configuration &configuration, const FactoryBlock &factory_block)
7013 {
7014  return new DeviceMaster<Traits>(configuration, factory_block, factory_block.solverState_, factory_block.deviceOptions_);
7015 }
7016 
7018 {
7020  .registerDevice("q", 12)
7021  .registerModelType("npn", 12)
7022  .registerModelType("pnp", 12);
7023 }
7024 
7025 
7026 
7027 #ifdef Xyce_ADMS_SENSITIVITIES
7028 //-----------------------------------------------------------------------------
7029 // Function : evaluateInitialInstance
7030 // Purpose : Evaluate the statements in the initial_instance block
7031 // Special Notes : specific for sensitivity use
7032 // Scope : public
7033 // Creator : admsXml
7034 // Creation Date :
7035 //-----------------------------------------------------------------------------
7036 void evaluateInitialInstance(
7037  // instance parameters
7038  // reals
7039  AdmsSensFadType & instancePar_m,
7040  bool instancePar_given_m,
7041  AdmsSensFadType & instancePar_trise,
7042  bool instancePar_given_trise,
7043  // non-reals(including hidden)
7044  int instancePar_sw_noise,
7045  bool instancePar_given_sw_noise,
7046  int instancePar_sw_et,
7047  bool instancePar_given_sw_et,
7048  // model parameters
7049  // reals
7050  AdmsSensFadType & modelPar_npn,
7051  bool modelPar_given_npn,
7052  AdmsSensFadType & modelPar_pnp,
7053  bool modelPar_given_pnp,
7054  AdmsSensFadType & modelPar_scale,
7055  bool modelPar_given_scale,
7056  AdmsSensFadType & modelPar_shrink,
7057  bool modelPar_given_shrink,
7058  AdmsSensFadType & modelPar_tmin,
7059  bool modelPar_given_tmin,
7060  AdmsSensFadType & modelPar_tmax,
7061  bool modelPar_given_tmax,
7062  AdmsSensFadType & modelPar_gmin,
7063  bool modelPar_given_gmin,
7064  AdmsSensFadType & modelPar_pnjmaxi,
7065  bool modelPar_given_pnjmaxi,
7066  AdmsSensFadType & modelPar_maxexp,
7067  bool modelPar_given_maxexp,
7068  AdmsSensFadType & modelPar_tnom,
7069  bool modelPar_given_tnom,
7070  AdmsSensFadType & modelPar_tminclip,
7071  bool modelPar_given_tminclip,
7072  AdmsSensFadType & modelPar_tmaxclip,
7073  bool modelPar_given_tmaxclip,
7074  AdmsSensFadType & modelPar_rcx,
7075  bool modelPar_given_rcx,
7076  AdmsSensFadType & modelPar_rci,
7077  bool modelPar_given_rci,
7078  AdmsSensFadType & modelPar_vo,
7079  bool modelPar_given_vo,
7080  AdmsSensFadType & modelPar_gamm,
7081  bool modelPar_given_gamm,
7082  AdmsSensFadType & modelPar_hrcf,
7083  bool modelPar_given_hrcf,
7084  AdmsSensFadType & modelPar_rbx,
7085  bool modelPar_given_rbx,
7086  AdmsSensFadType & modelPar_rbi,
7087  bool modelPar_given_rbi,
7088  AdmsSensFadType & modelPar_re,
7089  bool modelPar_given_re,
7090  AdmsSensFadType & modelPar_rs,
7091  bool modelPar_given_rs,
7092  AdmsSensFadType & modelPar_rbp,
7093  bool modelPar_given_rbp,
7094  AdmsSensFadType & modelPar_is,
7095  bool modelPar_given_is,
7096  AdmsSensFadType & modelPar_isrr,
7097  bool modelPar_given_isrr,
7098  AdmsSensFadType & modelPar_nf,
7099  bool modelPar_given_nf,
7100  AdmsSensFadType & modelPar_nr,
7101  bool modelPar_given_nr,
7102  AdmsSensFadType & modelPar_isp,
7103  bool modelPar_given_isp,
7104  AdmsSensFadType & modelPar_wsp,
7105  bool modelPar_given_wsp,
7106  AdmsSensFadType & modelPar_nfp,
7107  bool modelPar_given_nfp,
7108  AdmsSensFadType & modelPar_fc,
7109  bool modelPar_given_fc,
7110  AdmsSensFadType & modelPar_cbeo,
7111  bool modelPar_given_cbeo,
7112  AdmsSensFadType & modelPar_cje,
7113  bool modelPar_given_cje,
7114  AdmsSensFadType & modelPar_pe,
7115  bool modelPar_given_pe,
7116  AdmsSensFadType & modelPar_me,
7117  bool modelPar_given_me,
7118  AdmsSensFadType & modelPar_aje,
7119  bool modelPar_given_aje,
7120  AdmsSensFadType & modelPar_cbco,
7121  bool modelPar_given_cbco,
7122  AdmsSensFadType & modelPar_cjc,
7123  bool modelPar_given_cjc,
7124  AdmsSensFadType & modelPar_pc,
7125  bool modelPar_given_pc,
7126  AdmsSensFadType & modelPar_mc,
7127  bool modelPar_given_mc,
7128  AdmsSensFadType & modelPar_ajc,
7129  bool modelPar_given_ajc,
7130  AdmsSensFadType & modelPar_vrt,
7131  bool modelPar_given_vrt,
7132  AdmsSensFadType & modelPar_art,
7133  bool modelPar_given_art,
7134  AdmsSensFadType & modelPar_qco,
7135  bool modelPar_given_qco,
7136  AdmsSensFadType & modelPar_cjep,
7137  bool modelPar_given_cjep,
7138  AdmsSensFadType & modelPar_cjcp,
7139  bool modelPar_given_cjcp,
7140  AdmsSensFadType & modelPar_ps,
7141  bool modelPar_given_ps,
7142  AdmsSensFadType & modelPar_ms,
7143  bool modelPar_given_ms,
7144  AdmsSensFadType & modelPar_ajs,
7145  bool modelPar_given_ajs,
7146  AdmsSensFadType & modelPar_ccso,
7147  bool modelPar_given_ccso,
7148  AdmsSensFadType & modelPar_ibei,
7149  bool modelPar_given_ibei,
7150  AdmsSensFadType & modelPar_wbe,
7151  bool modelPar_given_wbe,
7152  AdmsSensFadType & modelPar_nei,
7153  bool modelPar_given_nei,
7154  AdmsSensFadType & modelPar_qnibeir,
7155  bool modelPar_given_qnibeir,
7156  AdmsSensFadType & modelPar_iben,
7157  bool modelPar_given_iben,
7158  AdmsSensFadType & modelPar_nen,
7159  bool modelPar_given_nen,
7160  AdmsSensFadType & modelPar_ibci,
7161  bool modelPar_given_ibci,
7162  AdmsSensFadType & modelPar_nci,
7163  bool modelPar_given_nci,
7164  AdmsSensFadType & modelPar_ibcn,
7165  bool modelPar_given_ibcn,
7166  AdmsSensFadType & modelPar_ncn,
7167  bool modelPar_given_ncn,
7168  AdmsSensFadType & modelPar_ibeip,
7169  bool modelPar_given_ibeip,
7170  AdmsSensFadType & modelPar_ibenp,
7171  bool modelPar_given_ibenp,
7172  AdmsSensFadType & modelPar_ibcip,
7173  bool modelPar_given_ibcip,
7174  AdmsSensFadType & modelPar_ncip,
7175  bool modelPar_given_ncip,
7176  AdmsSensFadType & modelPar_ibcnp,
7177  bool modelPar_given_ibcnp,
7178  AdmsSensFadType & modelPar_ncnp,
7179  bool modelPar_given_ncnp,
7180  AdmsSensFadType & modelPar_vef,
7181  bool modelPar_given_vef,
7182  AdmsSensFadType & modelPar_ver,
7183  bool modelPar_given_ver,
7184  AdmsSensFadType & modelPar_ikf,
7185  bool modelPar_given_ikf,
7186  AdmsSensFadType & modelPar_nkf,
7187  bool modelPar_given_nkf,
7188  AdmsSensFadType & modelPar_ikr,
7189  bool modelPar_given_ikr,
7190  AdmsSensFadType & modelPar_ikp,
7191  bool modelPar_given_ikp,
7192  AdmsSensFadType & modelPar_tf,
7193  bool modelPar_given_tf,
7194  AdmsSensFadType & modelPar_qtf,
7195  bool modelPar_given_qtf,
7196  AdmsSensFadType & modelPar_xtf,
7197  bool modelPar_given_xtf,
7198  AdmsSensFadType & modelPar_vtf,
7199  bool modelPar_given_vtf,
7200  AdmsSensFadType & modelPar_itf,
7201  bool modelPar_given_itf,
7202  AdmsSensFadType & modelPar_tr,
7203  bool modelPar_given_tr,
7204  AdmsSensFadType & modelPar_td,
7205  bool modelPar_given_td,
7206  AdmsSensFadType & modelPar_avc1,
7207  bool modelPar_given_avc1,
7208  AdmsSensFadType & modelPar_avc2,
7209  bool modelPar_given_avc2,
7210  AdmsSensFadType & modelPar_avcx1,
7211  bool modelPar_given_avcx1,
7212  AdmsSensFadType & modelPar_avcx2,
7213  bool modelPar_given_avcx2,
7214  AdmsSensFadType & modelPar_mcx,
7215  bool modelPar_given_mcx,
7216  AdmsSensFadType & modelPar_vbbe,
7217  bool modelPar_given_vbbe,
7218  AdmsSensFadType & modelPar_nbbe,
7219  bool modelPar_given_nbbe,
7220  AdmsSensFadType & modelPar_ibbe,
7221  bool modelPar_given_ibbe,
7222  AdmsSensFadType & modelPar_tvbbe1,
7223  bool modelPar_given_tvbbe1,
7224  AdmsSensFadType & modelPar_tvbbe2,
7225  bool modelPar_given_tvbbe2,
7226  AdmsSensFadType & modelPar_tnbbe,
7227  bool modelPar_given_tnbbe,
7228  AdmsSensFadType & modelPar_vpte,
7229  bool modelPar_given_vpte,
7230  AdmsSensFadType & modelPar_ibk0,
7231  bool modelPar_given_ibk0,
7232  AdmsSensFadType & modelPar_abk,
7233  bool modelPar_given_abk,
7234  AdmsSensFadType & modelPar_bbk,
7235  bool modelPar_given_bbk,
7236  AdmsSensFadType & modelPar_kfn,
7237  bool modelPar_given_kfn,
7238  AdmsSensFadType & modelPar_afn,
7239  bool modelPar_given_afn,
7240  AdmsSensFadType & modelPar_bfn,
7241  bool modelPar_given_bfn,
7242  AdmsSensFadType & modelPar_rth,
7243  bool modelPar_given_rth,
7244  AdmsSensFadType & modelPar_cth,
7245  bool modelPar_given_cth,
7246  AdmsSensFadType & modelPar_xre,
7247  bool modelPar_given_xre,
7248  AdmsSensFadType & modelPar_xrb,
7249  bool modelPar_given_xrb,
7250  AdmsSensFadType & modelPar_xrbi,
7251  bool modelPar_given_xrbi,
7252  AdmsSensFadType & modelPar_xrbx,
7253  bool modelPar_given_xrbx,
7254  AdmsSensFadType & modelPar_xrc,
7255  bool modelPar_given_xrc,
7256  AdmsSensFadType & modelPar_xrci,
7257  bool modelPar_given_xrci,
7258  AdmsSensFadType & modelPar_xrcx,
7259  bool modelPar_given_xrcx,
7260  AdmsSensFadType & modelPar_xrbp,
7261  bool modelPar_given_xrbp,
7262  AdmsSensFadType & modelPar_xrs,
7263  bool modelPar_given_xrs,
7264  AdmsSensFadType & modelPar_xvo,
7265  bool modelPar_given_xvo,
7266  AdmsSensFadType & modelPar_ea,
7267  bool modelPar_given_ea,
7268  AdmsSensFadType & modelPar_eaie,
7269  bool modelPar_given_eaie,
7270  AdmsSensFadType & modelPar_eaic,
7271  bool modelPar_given_eaic,
7272  AdmsSensFadType & modelPar_eais,
7273  bool modelPar_given_eais,
7274  AdmsSensFadType & modelPar_eane,
7275  bool modelPar_given_eane,
7276  AdmsSensFadType & modelPar_eanc,
7277  bool modelPar_given_eanc,
7278  AdmsSensFadType & modelPar_eans,
7279  bool modelPar_given_eans,
7280  AdmsSensFadType & modelPar_eap,
7281  bool modelPar_given_eap,
7282  AdmsSensFadType & modelPar_dear,
7283  bool modelPar_given_dear,
7284  AdmsSensFadType & modelPar_xis,
7285  bool modelPar_given_xis,
7286  AdmsSensFadType & modelPar_xii,
7287  bool modelPar_given_xii,
7288  AdmsSensFadType & modelPar_xin,
7289  bool modelPar_given_xin,
7290  AdmsSensFadType & modelPar_xisr,
7291  bool modelPar_given_xisr,
7292  AdmsSensFadType & modelPar_xikf,
7293  bool modelPar_given_xikf,
7294  AdmsSensFadType & modelPar_tavc,
7295  bool modelPar_given_tavc,
7296  AdmsSensFadType & modelPar_tavcx,
7297  bool modelPar_given_tavcx,
7298  AdmsSensFadType & modelPar_tnf,
7299  bool modelPar_given_tnf,
7300  AdmsSensFadType & modelPar_tcvef,
7301  bool modelPar_given_tcvef,
7302  AdmsSensFadType & modelPar_tcver,
7303  bool modelPar_given_tcver,
7304  AdmsSensFadType & modelPar_tcrth,
7305  bool modelPar_given_tcrth,
7306  // non-reals (including hidden)
7307  int modelPar_type,
7308  bool modelPar_given_type,
7309  int modelPar_VBICtype,
7310  int modelPar_qbm,
7311  bool modelPar_given_qbm,
7312  double admsTemperature, double adms_vt_nom)
7313 {
7314 }
7315 
7316 
7317 
7318 //-----------------------------------------------------------------------------
7319 // Function : evaluateInitialModel
7320 // Purpose : Evaluate the statements in the initial_model block
7321 // Special Notes : specific for sensitivity use
7322 // Scope : public
7323 // Creator : admsXml
7324 // Creation Date :
7325 //-----------------------------------------------------------------------------
7326 void evaluateInitialModel(
7327  // model parameters
7328  // reals
7329  AdmsSensFadType & modelPar_npn,
7330  bool modelPar_given_npn,
7331  AdmsSensFadType & modelPar_pnp,
7332  bool modelPar_given_pnp,
7333  AdmsSensFadType & modelPar_scale,
7334  bool modelPar_given_scale,
7335  AdmsSensFadType & modelPar_shrink,
7336  bool modelPar_given_shrink,
7337  AdmsSensFadType & modelPar_tmin,
7338  bool modelPar_given_tmin,
7339  AdmsSensFadType & modelPar_tmax,
7340  bool modelPar_given_tmax,
7341  AdmsSensFadType & modelPar_gmin,
7342  bool modelPar_given_gmin,
7343  AdmsSensFadType & modelPar_pnjmaxi,
7344  bool modelPar_given_pnjmaxi,
7345  AdmsSensFadType & modelPar_maxexp,
7346  bool modelPar_given_maxexp,
7347  AdmsSensFadType & modelPar_tnom,
7348  bool modelPar_given_tnom,
7349  AdmsSensFadType & modelPar_tminclip,
7350  bool modelPar_given_tminclip,
7351  AdmsSensFadType & modelPar_tmaxclip,
7352  bool modelPar_given_tmaxclip,
7353  AdmsSensFadType & modelPar_rcx,
7354  bool modelPar_given_rcx,
7355  AdmsSensFadType & modelPar_rci,
7356  bool modelPar_given_rci,
7357  AdmsSensFadType & modelPar_vo,
7358  bool modelPar_given_vo,
7359  AdmsSensFadType & modelPar_gamm,
7360  bool modelPar_given_gamm,
7361  AdmsSensFadType & modelPar_hrcf,
7362  bool modelPar_given_hrcf,
7363  AdmsSensFadType & modelPar_rbx,
7364  bool modelPar_given_rbx,
7365  AdmsSensFadType & modelPar_rbi,
7366  bool modelPar_given_rbi,
7367  AdmsSensFadType & modelPar_re,
7368  bool modelPar_given_re,
7369  AdmsSensFadType & modelPar_rs,
7370  bool modelPar_given_rs,
7371  AdmsSensFadType & modelPar_rbp,
7372  bool modelPar_given_rbp,
7373  AdmsSensFadType & modelPar_is,
7374  bool modelPar_given_is,
7375  AdmsSensFadType & modelPar_isrr,
7376  bool modelPar_given_isrr,
7377  AdmsSensFadType & modelPar_nf,
7378  bool modelPar_given_nf,
7379  AdmsSensFadType & modelPar_nr,
7380  bool modelPar_given_nr,
7381  AdmsSensFadType & modelPar_isp,
7382  bool modelPar_given_isp,
7383  AdmsSensFadType & modelPar_wsp,
7384  bool modelPar_given_wsp,
7385  AdmsSensFadType & modelPar_nfp,
7386  bool modelPar_given_nfp,
7387  AdmsSensFadType & modelPar_fc,
7388  bool modelPar_given_fc,
7389  AdmsSensFadType & modelPar_cbeo,
7390  bool modelPar_given_cbeo,
7391  AdmsSensFadType & modelPar_cje,
7392  bool modelPar_given_cje,
7393  AdmsSensFadType & modelPar_pe,
7394  bool modelPar_given_pe,
7395  AdmsSensFadType & modelPar_me,
7396  bool modelPar_given_me,
7397  AdmsSensFadType & modelPar_aje,
7398  bool modelPar_given_aje,
7399  AdmsSensFadType & modelPar_cbco,
7400  bool modelPar_given_cbco,
7401  AdmsSensFadType & modelPar_cjc,
7402  bool modelPar_given_cjc,
7403  AdmsSensFadType & modelPar_pc,
7404  bool modelPar_given_pc,
7405  AdmsSensFadType & modelPar_mc,
7406  bool modelPar_given_mc,
7407  AdmsSensFadType & modelPar_ajc,
7408  bool modelPar_given_ajc,
7409  AdmsSensFadType & modelPar_vrt,
7410  bool modelPar_given_vrt,
7411  AdmsSensFadType & modelPar_art,
7412  bool modelPar_given_art,
7413  AdmsSensFadType & modelPar_qco,
7414  bool modelPar_given_qco,
7415  AdmsSensFadType & modelPar_cjep,
7416  bool modelPar_given_cjep,
7417  AdmsSensFadType & modelPar_cjcp,
7418  bool modelPar_given_cjcp,
7419  AdmsSensFadType & modelPar_ps,
7420  bool modelPar_given_ps,
7421  AdmsSensFadType & modelPar_ms,
7422  bool modelPar_given_ms,
7423  AdmsSensFadType & modelPar_ajs,
7424  bool modelPar_given_ajs,
7425  AdmsSensFadType & modelPar_ccso,
7426  bool modelPar_given_ccso,
7427  AdmsSensFadType & modelPar_ibei,
7428  bool modelPar_given_ibei,
7429  AdmsSensFadType & modelPar_wbe,
7430  bool modelPar_given_wbe,
7431  AdmsSensFadType & modelPar_nei,
7432  bool modelPar_given_nei,
7433  AdmsSensFadType & modelPar_qnibeir,
7434  bool modelPar_given_qnibeir,
7435  AdmsSensFadType & modelPar_iben,
7436  bool modelPar_given_iben,
7437  AdmsSensFadType & modelPar_nen,
7438  bool modelPar_given_nen,
7439  AdmsSensFadType & modelPar_ibci,
7440  bool modelPar_given_ibci,
7441  AdmsSensFadType & modelPar_nci,
7442  bool modelPar_given_nci,
7443  AdmsSensFadType & modelPar_ibcn,
7444  bool modelPar_given_ibcn,
7445  AdmsSensFadType & modelPar_ncn,
7446  bool modelPar_given_ncn,
7447  AdmsSensFadType & modelPar_ibeip,
7448  bool modelPar_given_ibeip,
7449  AdmsSensFadType & modelPar_ibenp,
7450  bool modelPar_given_ibenp,
7451  AdmsSensFadType & modelPar_ibcip,
7452  bool modelPar_given_ibcip,
7453  AdmsSensFadType & modelPar_ncip,
7454  bool modelPar_given_ncip,
7455  AdmsSensFadType & modelPar_ibcnp,
7456  bool modelPar_given_ibcnp,
7457  AdmsSensFadType & modelPar_ncnp,
7458  bool modelPar_given_ncnp,
7459  AdmsSensFadType & modelPar_vef,
7460  bool modelPar_given_vef,
7461  AdmsSensFadType & modelPar_ver,
7462  bool modelPar_given_ver,
7463  AdmsSensFadType & modelPar_ikf,
7464  bool modelPar_given_ikf,
7465  AdmsSensFadType & modelPar_nkf,
7466  bool modelPar_given_nkf,
7467  AdmsSensFadType & modelPar_ikr,
7468  bool modelPar_given_ikr,
7469  AdmsSensFadType & modelPar_ikp,
7470  bool modelPar_given_ikp,
7471  AdmsSensFadType & modelPar_tf,
7472  bool modelPar_given_tf,
7473  AdmsSensFadType & modelPar_qtf,
7474  bool modelPar_given_qtf,
7475  AdmsSensFadType & modelPar_xtf,
7476  bool modelPar_given_xtf,
7477  AdmsSensFadType & modelPar_vtf,
7478  bool modelPar_given_vtf,
7479  AdmsSensFadType & modelPar_itf,
7480  bool modelPar_given_itf,
7481  AdmsSensFadType & modelPar_tr,
7482  bool modelPar_given_tr,
7483  AdmsSensFadType & modelPar_td,
7484  bool modelPar_given_td,
7485  AdmsSensFadType & modelPar_avc1,
7486  bool modelPar_given_avc1,
7487  AdmsSensFadType & modelPar_avc2,
7488  bool modelPar_given_avc2,
7489  AdmsSensFadType & modelPar_avcx1,
7490  bool modelPar_given_avcx1,
7491  AdmsSensFadType & modelPar_avcx2,
7492  bool modelPar_given_avcx2,
7493  AdmsSensFadType & modelPar_mcx,
7494  bool modelPar_given_mcx,
7495  AdmsSensFadType & modelPar_vbbe,
7496  bool modelPar_given_vbbe,
7497  AdmsSensFadType & modelPar_nbbe,
7498  bool modelPar_given_nbbe,
7499  AdmsSensFadType & modelPar_ibbe,
7500  bool modelPar_given_ibbe,
7501  AdmsSensFadType & modelPar_tvbbe1,
7502  bool modelPar_given_tvbbe1,
7503  AdmsSensFadType & modelPar_tvbbe2,
7504  bool modelPar_given_tvbbe2,
7505  AdmsSensFadType & modelPar_tnbbe,
7506  bool modelPar_given_tnbbe,
7507  AdmsSensFadType & modelPar_vpte,
7508  bool modelPar_given_vpte,
7509  AdmsSensFadType & modelPar_ibk0,
7510  bool modelPar_given_ibk0,
7511  AdmsSensFadType & modelPar_abk,
7512  bool modelPar_given_abk,
7513  AdmsSensFadType & modelPar_bbk,
7514  bool modelPar_given_bbk,
7515  AdmsSensFadType & modelPar_kfn,
7516  bool modelPar_given_kfn,
7517  AdmsSensFadType & modelPar_afn,
7518  bool modelPar_given_afn,
7519  AdmsSensFadType & modelPar_bfn,
7520  bool modelPar_given_bfn,
7521  AdmsSensFadType & modelPar_rth,
7522  bool modelPar_given_rth,
7523  AdmsSensFadType & modelPar_cth,
7524  bool modelPar_given_cth,
7525  AdmsSensFadType & modelPar_xre,
7526  bool modelPar_given_xre,
7527  AdmsSensFadType & modelPar_xrb,
7528  bool modelPar_given_xrb,
7529  AdmsSensFadType & modelPar_xrbi,
7530  bool modelPar_given_xrbi,
7531  AdmsSensFadType & modelPar_xrbx,
7532  bool modelPar_given_xrbx,
7533  AdmsSensFadType & modelPar_xrc,
7534  bool modelPar_given_xrc,
7535  AdmsSensFadType & modelPar_xrci,
7536  bool modelPar_given_xrci,
7537  AdmsSensFadType & modelPar_xrcx,
7538  bool modelPar_given_xrcx,
7539  AdmsSensFadType & modelPar_xrbp,
7540  bool modelPar_given_xrbp,
7541  AdmsSensFadType & modelPar_xrs,
7542  bool modelPar_given_xrs,
7543  AdmsSensFadType & modelPar_xvo,
7544  bool modelPar_given_xvo,
7545  AdmsSensFadType & modelPar_ea,
7546  bool modelPar_given_ea,
7547  AdmsSensFadType & modelPar_eaie,
7548  bool modelPar_given_eaie,
7549  AdmsSensFadType & modelPar_eaic,
7550  bool modelPar_given_eaic,
7551  AdmsSensFadType & modelPar_eais,
7552  bool modelPar_given_eais,
7553  AdmsSensFadType & modelPar_eane,
7554  bool modelPar_given_eane,
7555  AdmsSensFadType & modelPar_eanc,
7556  bool modelPar_given_eanc,
7557  AdmsSensFadType & modelPar_eans,
7558  bool modelPar_given_eans,
7559  AdmsSensFadType & modelPar_eap,
7560  bool modelPar_given_eap,
7561  AdmsSensFadType & modelPar_dear,
7562  bool modelPar_given_dear,
7563  AdmsSensFadType & modelPar_xis,
7564  bool modelPar_given_xis,
7565  AdmsSensFadType & modelPar_xii,
7566  bool modelPar_given_xii,
7567  AdmsSensFadType & modelPar_xin,
7568  bool modelPar_given_xin,
7569  AdmsSensFadType & modelPar_xisr,
7570  bool modelPar_given_xisr,
7571  AdmsSensFadType & modelPar_xikf,
7572  bool modelPar_given_xikf,
7573  AdmsSensFadType & modelPar_tavc,
7574  bool modelPar_given_tavc,
7575  AdmsSensFadType & modelPar_tavcx,
7576  bool modelPar_given_tavcx,
7577  AdmsSensFadType & modelPar_tnf,
7578  bool modelPar_given_tnf,
7579  AdmsSensFadType & modelPar_tcvef,
7580  bool modelPar_given_tcvef,
7581  AdmsSensFadType & modelPar_tcver,
7582  bool modelPar_given_tcver,
7583  AdmsSensFadType & modelPar_tcrth,
7584  bool modelPar_given_tcrth,
7585  // non-reals (including hidden)
7586  int modelPar_type,
7587  bool modelPar_given_type,
7588  int modelPar_VBICtype,
7589  int modelPar_qbm,
7590  bool modelPar_given_qbm,
7591  double admsTemperature)
7592 {
7593 }
7594 
7595 
7596 
7597 //-----------------------------------------------------------------------------
7598 // Function : evaluateModelEquations
7599 // Purpose : Evaluate the main module block. Similar to
7600 // updateIntermediateVars, but takes all instance and model
7601 // parameters and variables as arguments instead of using
7602 // the ones stored in the objects.
7603 // Special Notes : specific for sensitivity use
7604 // Scope : public
7605 // Creator : admsXml
7606 // Creation Date :
7607 //-----------------------------------------------------------------------------
7608 void evaluateModelEquations(
7609  std::vector <double> & probeVars,
7610  // probe constants
7611  const int admsProbeID_V_xf2_GND,
7612  const int admsProbeID_V_xf1_GND,
7613  const int admsProbeID_V_s_si,
7614  const int admsProbeID_V_bx_si,
7615  const int admsProbeID_V_si_bp,
7616  const int admsProbeID_V_bp_cx,
7617  const int admsProbeID_V_e_ei,
7618  const int admsProbeID_V_bx_bi,
7619  const int admsProbeID_V_b_bx,
7620  const int admsProbeID_V_cx_ci,
7621  const int admsProbeID_V_c_cx,
7622  const int admsProbeID_V_b_c,
7623  const int admsProbeID_V_b_e,
7624  const int admsProbeID_V_bx_bp,
7625  const int admsProbeID_V_ci_ei,
7626  const int admsProbeID_V_bx_cx,
7627  const int admsProbeID_V_bi_cx,
7628  const int admsProbeID_V_bi_ci,
7629  const int admsProbeID_V_bx_ei,
7630  const int admsProbeID_V_bi_ei,
7631  const int admsProbeID_Temp_dt_GND,
7632  // node constants
7633  const int admsNodeID_c,
7634  const int admsNodeID_b,
7635  const int admsNodeID_e,
7636  const int admsNodeID_s,
7637  const int admsNodeID_dt,
7638  const int admsNodeID_cx,
7639  const int admsNodeID_ci,
7640  const int admsNodeID_bx,
7641  const int admsNodeID_bi,
7642  const int admsNodeID_ei,
7643  const int admsNodeID_bp,
7644  const int admsNodeID_si,
7645  const int admsNodeID_xf1,
7646  const int admsNodeID_xf2,
7647  // instance parameters
7648  // reals
7649  AdmsSensFadType & instancePar_m,
7650  bool instancePar_given_m,
7651  AdmsSensFadType & instancePar_trise,
7652  bool instancePar_given_trise,
7653  // non-reals(including hidden)
7654  int instancePar_sw_noise,
7655  bool instancePar_given_sw_noise,
7656  int instancePar_sw_et,
7657  bool instancePar_given_sw_et,
7658  // model parameters
7659  // reals
7660  AdmsSensFadType & modelPar_npn,
7661  bool modelPar_given_npn,
7662  AdmsSensFadType & modelPar_pnp,
7663  bool modelPar_given_pnp,
7664  AdmsSensFadType & modelPar_scale,
7665  bool modelPar_given_scale,
7666  AdmsSensFadType & modelPar_shrink,
7667  bool modelPar_given_shrink,
7668  AdmsSensFadType & modelPar_tmin,
7669  bool modelPar_given_tmin,
7670  AdmsSensFadType & modelPar_tmax,
7671  bool modelPar_given_tmax,
7672  AdmsSensFadType & modelPar_gmin,
7673  bool modelPar_given_gmin,
7674  AdmsSensFadType & modelPar_pnjmaxi,
7675  bool modelPar_given_pnjmaxi,
7676  AdmsSensFadType & modelPar_maxexp,
7677  bool modelPar_given_maxexp,
7678  AdmsSensFadType & modelPar_tnom,
7679  bool modelPar_given_tnom,
7680  AdmsSensFadType & modelPar_tminclip,
7681  bool modelPar_given_tminclip,
7682  AdmsSensFadType & modelPar_tmaxclip,
7683  bool modelPar_given_tmaxclip,
7684  AdmsSensFadType & modelPar_rcx,
7685  bool modelPar_given_rcx,
7686  AdmsSensFadType & modelPar_rci,
7687  bool modelPar_given_rci,
7688  AdmsSensFadType & modelPar_vo,
7689  bool modelPar_given_vo,
7690  AdmsSensFadType & modelPar_gamm,
7691  bool modelPar_given_gamm,
7692  AdmsSensFadType & modelPar_hrcf,
7693  bool modelPar_given_hrcf,
7694  AdmsSensFadType & modelPar_rbx,
7695  bool modelPar_given_rbx,
7696  AdmsSensFadType & modelPar_rbi,
7697  bool modelPar_given_rbi,
7698  AdmsSensFadType & modelPar_re,
7699  bool modelPar_given_re,
7700  AdmsSensFadType & modelPar_rs,
7701  bool modelPar_given_rs,
7702  AdmsSensFadType & modelPar_rbp,
7703  bool modelPar_given_rbp,
7704  AdmsSensFadType & modelPar_is,
7705  bool modelPar_given_is,
7706  AdmsSensFadType & modelPar_isrr,
7707  bool modelPar_given_isrr,
7708  AdmsSensFadType & modelPar_nf,
7709  bool modelPar_given_nf,
7710  AdmsSensFadType & modelPar_nr,
7711  bool modelPar_given_nr,
7712  AdmsSensFadType & modelPar_isp,
7713  bool modelPar_given_isp,
7714  AdmsSensFadType & modelPar_wsp,
7715  bool modelPar_given_wsp,
7716  AdmsSensFadType & modelPar_nfp,
7717  bool modelPar_given_nfp,
7718  AdmsSensFadType & modelPar_fc,
7719  bool modelPar_given_fc,
7720  AdmsSensFadType & modelPar_cbeo,
7721  bool modelPar_given_cbeo,
7722  AdmsSensFadType & modelPar_cje,
7723  bool modelPar_given_cje,
7724  AdmsSensFadType & modelPar_pe,
7725  bool modelPar_given_pe,
7726  AdmsSensFadType & modelPar_me,
7727  bool modelPar_given_me,
7728  AdmsSensFadType & modelPar_aje,
7729  bool modelPar_given_aje,
7730  AdmsSensFadType & modelPar_cbco,
7731  bool modelPar_given_cbco,
7732  AdmsSensFadType & modelPar_cjc,
7733  bool modelPar_given_cjc,
7734  AdmsSensFadType & modelPar_pc,
7735  bool modelPar_given_pc,
7736  AdmsSensFadType & modelPar_mc,
7737  bool modelPar_given_mc,
7738  AdmsSensFadType & modelPar_ajc,
7739  bool modelPar_given_ajc,
7740  AdmsSensFadType & modelPar_vrt,
7741  bool modelPar_given_vrt,
7742  AdmsSensFadType & modelPar_art,
7743  bool modelPar_given_art,
7744  AdmsSensFadType & modelPar_qco,
7745  bool modelPar_given_qco,
7746  AdmsSensFadType & modelPar_cjep,
7747  bool modelPar_given_cjep,
7748  AdmsSensFadType & modelPar_cjcp,
7749  bool modelPar_given_cjcp,
7750  AdmsSensFadType & modelPar_ps,
7751  bool modelPar_given_ps,
7752  AdmsSensFadType & modelPar_ms,
7753  bool modelPar_given_ms,
7754  AdmsSensFadType & modelPar_ajs,
7755  bool modelPar_given_ajs,
7756  AdmsSensFadType & modelPar_ccso,
7757  bool modelPar_given_ccso,
7758  AdmsSensFadType & modelPar_ibei,
7759  bool modelPar_given_ibei,
7760  AdmsSensFadType & modelPar_wbe,
7761  bool modelPar_given_wbe,
7762  AdmsSensFadType & modelPar_nei,
7763  bool modelPar_given_nei,
7764  AdmsSensFadType & modelPar_qnibeir,
7765  bool modelPar_given_qnibeir,
7766  AdmsSensFadType & modelPar_iben,
7767  bool modelPar_given_iben,
7768  AdmsSensFadType & modelPar_nen,
7769  bool modelPar_given_nen,
7770  AdmsSensFadType & modelPar_ibci,
7771  bool modelPar_given_ibci,
7772  AdmsSensFadType & modelPar_nci,
7773  bool modelPar_given_nci,
7774  AdmsSensFadType & modelPar_ibcn,
7775  bool modelPar_given_ibcn,
7776  AdmsSensFadType & modelPar_ncn,
7777  bool modelPar_given_ncn,
7778  AdmsSensFadType & modelPar_ibeip,
7779  bool modelPar_given_ibeip,
7780  AdmsSensFadType & modelPar_ibenp,
7781  bool modelPar_given_ibenp,
7782  AdmsSensFadType & modelPar_ibcip,
7783  bool modelPar_given_ibcip,
7784  AdmsSensFadType & modelPar_ncip,
7785  bool modelPar_given_ncip,
7786  AdmsSensFadType & modelPar_ibcnp,
7787  bool modelPar_given_ibcnp,
7788  AdmsSensFadType & modelPar_ncnp,
7789  bool modelPar_given_ncnp,
7790  AdmsSensFadType & modelPar_vef,
7791  bool modelPar_given_vef,
7792  AdmsSensFadType & modelPar_ver,
7793  bool modelPar_given_ver,
7794  AdmsSensFadType & modelPar_ikf,
7795  bool modelPar_given_ikf,
7796  AdmsSensFadType & modelPar_nkf,
7797  bool modelPar_given_nkf,
7798  AdmsSensFadType & modelPar_ikr,
7799  bool modelPar_given_ikr,
7800  AdmsSensFadType & modelPar_ikp,
7801  bool modelPar_given_ikp,
7802  AdmsSensFadType & modelPar_tf,
7803  bool modelPar_given_tf,
7804  AdmsSensFadType & modelPar_qtf,
7805  bool modelPar_given_qtf,
7806  AdmsSensFadType & modelPar_xtf,
7807  bool modelPar_given_xtf,
7808  AdmsSensFadType & modelPar_vtf,
7809  bool modelPar_given_vtf,
7810  AdmsSensFadType & modelPar_itf,
7811  bool modelPar_given_itf,
7812  AdmsSensFadType & modelPar_tr,
7813  bool modelPar_given_tr,
7814  AdmsSensFadType & modelPar_td,
7815  bool modelPar_given_td,
7816  AdmsSensFadType & modelPar_avc1,
7817  bool modelPar_given_avc1,
7818  AdmsSensFadType & modelPar_avc2,
7819  bool modelPar_given_avc2,
7820  AdmsSensFadType & modelPar_avcx1,
7821  bool modelPar_given_avcx1,
7822  AdmsSensFadType & modelPar_avcx2,
7823  bool modelPar_given_avcx2,
7824  AdmsSensFadType & modelPar_mcx,
7825  bool modelPar_given_mcx,
7826  AdmsSensFadType & modelPar_vbbe,
7827  bool modelPar_given_vbbe,
7828  AdmsSensFadType & modelPar_nbbe,
7829  bool modelPar_given_nbbe,
7830  AdmsSensFadType & modelPar_ibbe,
7831  bool modelPar_given_ibbe,
7832  AdmsSensFadType & modelPar_tvbbe1,
7833  bool modelPar_given_tvbbe1,
7834  AdmsSensFadType & modelPar_tvbbe2,
7835  bool modelPar_given_tvbbe2,
7836  AdmsSensFadType & modelPar_tnbbe,
7837  bool modelPar_given_tnbbe,
7838  AdmsSensFadType & modelPar_vpte,
7839  bool modelPar_given_vpte,
7840  AdmsSensFadType & modelPar_ibk0,
7841  bool modelPar_given_ibk0,
7842  AdmsSensFadType & modelPar_abk,
7843  bool modelPar_given_abk,
7844  AdmsSensFadType & modelPar_bbk,
7845  bool modelPar_given_bbk,
7846  AdmsSensFadType & modelPar_kfn,
7847  bool modelPar_given_kfn,
7848  AdmsSensFadType & modelPar_afn,
7849  bool modelPar_given_afn,
7850  AdmsSensFadType & modelPar_bfn,
7851  bool modelPar_given_bfn,
7852  AdmsSensFadType & modelPar_rth,
7853  bool modelPar_given_rth,
7854  AdmsSensFadType & modelPar_cth,
7855  bool modelPar_given_cth,
7856  AdmsSensFadType & modelPar_xre,
7857  bool modelPar_given_xre,
7858  AdmsSensFadType & modelPar_xrb,
7859  bool modelPar_given_xrb,
7860  AdmsSensFadType & modelPar_xrbi,
7861  bool modelPar_given_xrbi,
7862  AdmsSensFadType & modelPar_xrbx,
7863  bool modelPar_given_xrbx,
7864  AdmsSensFadType & modelPar_xrc,
7865  bool modelPar_given_xrc,
7866  AdmsSensFadType & modelPar_xrci,
7867  bool modelPar_given_xrci,
7868  AdmsSensFadType & modelPar_xrcx,
7869  bool modelPar_given_xrcx,
7870  AdmsSensFadType & modelPar_xrbp,
7871  bool modelPar_given_xrbp,
7872  AdmsSensFadType & modelPar_xrs,
7873  bool modelPar_given_xrs,
7874  AdmsSensFadType & modelPar_xvo,
7875  bool modelPar_given_xvo,
7876  AdmsSensFadType & modelPar_ea,
7877  bool modelPar_given_ea,
7878  AdmsSensFadType & modelPar_eaie,
7879  bool modelPar_given_eaie,
7880  AdmsSensFadType & modelPar_eaic,
7881  bool modelPar_given_eaic,
7882  AdmsSensFadType & modelPar_eais,
7883  bool modelPar_given_eais,
7884  AdmsSensFadType & modelPar_eane,
7885  bool modelPar_given_eane,
7886  AdmsSensFadType & modelPar_eanc,
7887  bool modelPar_given_eanc,
7888  AdmsSensFadType & modelPar_eans,
7889  bool modelPar_given_eans,
7890  AdmsSensFadType & modelPar_eap,
7891  bool modelPar_given_eap,
7892  AdmsSensFadType & modelPar_dear,
7893  bool modelPar_given_dear,
7894  AdmsSensFadType & modelPar_xis,
7895  bool modelPar_given_xis,
7896  AdmsSensFadType & modelPar_xii,
7897  bool modelPar_given_xii,
7898  AdmsSensFadType & modelPar_xin,
7899  bool modelPar_given_xin,
7900  AdmsSensFadType & modelPar_xisr,
7901  bool modelPar_given_xisr,
7902  AdmsSensFadType & modelPar_xikf,
7903  bool modelPar_given_xikf,
7904  AdmsSensFadType & modelPar_tavc,
7905  bool modelPar_given_tavc,
7906  AdmsSensFadType & modelPar_tavcx,
7907  bool modelPar_given_tavcx,
7908  AdmsSensFadType & modelPar_tnf,
7909  bool modelPar_given_tnf,
7910  AdmsSensFadType & modelPar_tcvef,
7911  bool modelPar_given_tcvef,
7912  AdmsSensFadType & modelPar_tcver,
7913  bool modelPar_given_tcver,
7914  AdmsSensFadType & modelPar_tcrth,
7915  bool modelPar_given_tcrth,
7916  // non-reals (including hidden)
7917  int modelPar_type,
7918  bool modelPar_given_type,
7919  int modelPar_VBICtype,
7920  int modelPar_qbm,
7921  bool modelPar_given_qbm,
7922  // basic variables
7923  double admsTemperature, double adms_vt_nom, double gmin, std::vector <AdmsSensFadType> & staticContributions, std::vector <AdmsSensFadType> & dynamicContributions, const Instance & theInstance)
7924 {
7925 
7926  // Local variables
7927 
7928 
7929  // -- code converted from analog/code block
7930  //Block-local variables for block analogBlock
7931  AdmsSensFadType is_t;
7932  AdmsSensFadType isrr_t;
7933  AdmsSensFadType ikf_t;
7934  AdmsSensFadType ibei_t;
7935  AdmsSensFadType ibci_t;
7936  AdmsSensFadType isp_t;
7937  AdmsSensFadType iben_t;
7938  AdmsSensFadType ibcn_t;
7939  //End of Block-local variables
7940  //Block-local variables for block analogBlock
7941  AdmsSensFadType ibeip_t;
7942  AdmsSensFadType ibenp_t;
7943  AdmsSensFadType ibcip_t;
7944  AdmsSensFadType ibcnp_t;
7945  //End of Block-local variables
7946  //Block-local variables for block analogBlock
7947  AdmsSensFadType rcx_t;
7948  AdmsSensFadType rci_t;
7949  AdmsSensFadType rbx_t;
7950  AdmsSensFadType rbi_t;
7951  AdmsSensFadType re_t;
7952  AdmsSensFadType rs_t;
7953  AdmsSensFadType rbp_t;
7954  AdmsSensFadType rth_t;
7955  //End of Block-local variables
7956  //Block-local variables for block analogBlock
7957  AdmsSensFadType pe_t;
7958  AdmsSensFadType pc_t;
7959  AdmsSensFadType ps_t;
7960  //End of Block-local variables
7961  //Block-local variables for block analogBlock
7962  AdmsSensFadType cje_t;
7963  AdmsSensFadType cjc_t;
7964  AdmsSensFadType cjep_t;
7965  AdmsSensFadType cjcp_t;
7966  //End of Block-local variables
7967  //Block-local variables for block analogBlock
7968  AdmsSensFadType nf_t;
7969  AdmsSensFadType nr_t;
7970  AdmsSensFadType avc2_t;
7971  AdmsSensFadType avcx2_t;
7972  AdmsSensFadType vbbe_t;
7973  AdmsSensFadType nbbe_t;
7974  AdmsSensFadType gamm_t;
7975  AdmsSensFadType vo_t;
7976  AdmsSensFadType ebbe_t;
7977  AdmsSensFadType vef_t;
7978  AdmsSensFadType ver_t;
7979  //End of Block-local variables
7980  //Block-local variables for block analogBlock
7981  AdmsSensFadType tdevC;
7982  AdmsSensFadType tdevK;
7983  AdmsSensFadType tiniK;
7984  AdmsSensFadType rT;
7985  AdmsSensFadType dT;
7986  //End of Block-local variables
7987  //Block-local variables for block analogBlock
7988  AdmsSensFadType Ivef;
7989  AdmsSensFadType Iver;
7990  AdmsSensFadType Iikf;
7991  AdmsSensFadType Iikr;
7992  AdmsSensFadType Iikp;
7993  AdmsSensFadType Ivo;
7994  AdmsSensFadType Ihrcf;
7995  AdmsSensFadType Ivtf;
7996  AdmsSensFadType Iitf;
7997  AdmsSensFadType sltf;
7998  //End of Block-local variables
7999  //Block-local variables for block analogBlock
8000  AdmsSensFadType Gcx;
8001  AdmsSensFadType Gci;
8002  AdmsSensFadType Gbx;
8003  AdmsSensFadType Gbi;
8004  AdmsSensFadType Ge;
8005  AdmsSensFadType Gbp;
8006  AdmsSensFadType Gs;
8007  AdmsSensFadType Gth;
8008  //End of Block-local variables
8009  //Block-local variables for block analogBlock
8010  AdmsSensFadType maxvIfi;
8011  AdmsSensFadType maxvIri;
8012  AdmsSensFadType maxvIp;
8013  AdmsSensFadType maxvIbbe;
8014  //End of Block-local variables
8015  //Block-local variables for block analogBlock
8016  AdmsSensFadType maxvIbei;
8017  AdmsSensFadType maxvIben;
8018  AdmsSensFadType maxvIbci;
8019  AdmsSensFadType maxvIbcn;
8020  AdmsSensFadType maxvIbeip;
8021  AdmsSensFadType maxvIbenp;
8022  AdmsSensFadType maxvIbcip;
8023  AdmsSensFadType maxvIbcnp;
8024  //End of Block-local variables
8025  //Block-local variables for block analogBlock
8026  AdmsSensFadType vtv;
8027  AdmsSensFadType Ifi;
8028  AdmsSensFadType Iri;
8029  AdmsSensFadType Itzf;
8030  AdmsSensFadType Itzr;
8031  AdmsSensFadType q1z;
8032  AdmsSensFadType q1;
8033  AdmsSensFadType q2;
8034  AdmsSensFadType qb;
8035  AdmsSensFadType Ifp;
8036  AdmsSensFadType Irp;
8037  AdmsSensFadType Iccp;
8038  AdmsSensFadType q2p;
8039  AdmsSensFadType qbp;
8040  //End of Block-local variables
8041  //Block-local variables for block analogBlock
8042  AdmsSensFadType Ibe;
8043  AdmsSensFadType Ibex;
8044  AdmsSensFadType Ibcj;
8045  AdmsSensFadType Ibc;
8046  AdmsSensFadType Ibep;
8047  AdmsSensFadType Ibcp;
8048  AdmsSensFadType Igc;
8049  AdmsSensFadType Igcx;
8050  AdmsSensFadType avalf;
8051  //End of Block-local variables
8052  //Block-local variables for block analogBlock
8053  AdmsSensFadType Ircx;
8054  AdmsSensFadType Irci;
8055  AdmsSensFadType Irbx;
8056  AdmsSensFadType Irbi;
8057  AdmsSensFadType Ire;
8058  AdmsSensFadType Irbp;
8059  AdmsSensFadType Irs;
8060  //End of Block-local variables
8061  //Block-local variables for block analogBlock
8062  AdmsSensFadType Kbci;
8063  AdmsSensFadType Kbcx;
8064  AdmsSensFadType rKp1;
8065  AdmsSensFadType Iohm;
8066  AdmsSensFadType derf;
8067  //End of Block-local variables
8068  //Block-local variables for block analogBlock
8069  AdmsSensFadType arg;
8070  AdmsSensFadType expi;
8071  AdmsSensFadType expn;
8072  AdmsSensFadType expx;
8073  AdmsSensFadType afac;
8074  //End of Block-local variables
8075  //Block-local variables for block analogBlock
8076  AdmsSensFadType VmaxExp;
8077  //End of Block-local variables
8078  //Block-local variables for block analogBlock
8079  AdmsSensFadType qdbe;
8080  AdmsSensFadType qdbex;
8081  AdmsSensFadType qdbc;
8082  AdmsSensFadType qdbep;
8083  AdmsSensFadType qdbcp;
8084  //End of Block-local variables
8085  //Block-local variables for block analogBlock
8086  AdmsSensFadType sgIf;
8087  AdmsSensFadType rIf;
8088  AdmsSensFadType mIf;
8089  AdmsSensFadType tff;
8090  //End of Block-local variables
8091  //Block-local variables for block analogBlock
8092  AdmsSensFadType Qbe;
8093  AdmsSensFadType Qbex;
8094  AdmsSensFadType Qbc;
8095  AdmsSensFadType Qbcx;
8096  AdmsSensFadType Qbep;
8097  AdmsSensFadType Qbcp;
8098  AdmsSensFadType Qbeo;
8099  AdmsSensFadType Qbco;
8100  //End of Block-local variables
8101  //Block-local variables for block analogBlock
8102  double Vxf1;
8103  double Vxf2;
8104  AdmsSensFadType Ixf1;
8105  double Ixf2;
8106  AdmsSensFadType Qxf1;
8107  AdmsSensFadType Qxf2;
8108  AdmsSensFadType Itxf;
8109  //End of Block-local variables
8110  //Block-local variables for block analogBlock
8111  double dt_et;
8112  AdmsSensFadType Ith;
8113  AdmsSensFadType power;
8114  AdmsSensFadType Irth;
8115  AdmsSensFadType Qcth;
8116  //End of Block-local variables
8117  //Block-local variables for block analogBlock
8118  AdmsSensFadType Vbei;
8119  AdmsSensFadType Vbci;
8120  AdmsSensFadType Vbex;
8121  AdmsSensFadType Vbep;
8122  AdmsSensFadType Vbcp;
8123  AdmsSensFadType Vbcx;
8124  AdmsSensFadType Vbxcx;
8125  AdmsSensFadType Bvbe;
8126  //End of Block-local variables
8127  //Block-local variables for block analogBlock
8128  AdmsSensFadType Vbe;
8129  double Vbc;
8130  double Vrcx;
8131  AdmsSensFadType Vrci;
8132  double Vrbx;
8133  double Vrbi;
8134  double Vre;
8135  double Vrbp;
8136  double Vrs;
8137  AdmsSensFadType Vcei;
8138  AdmsSensFadType Vcep;
8139  //End of Block-local variables
8140  //Block-local variables for block analogBlock
8141  AdmsSensFadType scaleFac;
8142  AdmsSensFadType shrinkL;
8143  AdmsSensFadType gminMod;
8144  AdmsSensFadType imaxMod;
8145  AdmsSensFadType mMod;
8146  //End of Block-local variables
8147  //Block-local variables for block analogBlock
8148  double ic;
8149  double ib;
8150  double ie;
8151  double isub;
8152  double powerT;
8153  double powerD;
8154  double Vce;
8155  //End of Block-local variables
8156  //Block-local variables for block analogBlock
8157  double Ircx_Vrcx;
8158  double Irci_Vrci;
8159  double Irbx_Vrbx;
8160  double Irbi_Vrbi;
8161  double Irbp_Vrbp;
8162  double Ire_Vre;
8163  double Irs_Vrs;
8164  //End of Block-local variables
8165  //Block-local variables for block analogBlock
8166  double tauTh;
8167  double gci_eff;
8168  AdmsSensFadType Iibk;
8169  AdmsSensFadType Ibk;
8170  AdmsSensFadType VcbFac;
8171  //End of Block-local variables
8172  //Block-local variables for block analogBlock
8173  AdmsSensFadType tVCrit;
8174  //End of Block-local variables
8175  //Begin block initializeModel
8176  {
8177  scaleFac = modelPar_scale;
8178  shrinkL = (1.0-(0.01*modelPar_shrink));
8179  if (modelPar_given_gmin)
8180  {
8181  gminMod = modelPar_gmin;
8182  }
8183  else
8184  {
8185  gminMod = gmin;
8186  }
8187  mMod = instancePar_m;
8188  if (modelPar_given_pnjmaxi)
8189  {
8190  imaxMod = modelPar_pnjmaxi;
8191  }
8192  else
8193  {
8194  imaxMod = 1.0;
8195  }
8196  if (modelPar_given_npn)
8197  {
8198  modelPar_VBICtype = 1.0;
8199  }
8200  else
8201  {
8202  if (modelPar_given_pnp)
8203  {
8204  modelPar_VBICtype = (-1.0);
8205  }
8206  else
8207  {
8208  if (modelPar_given_type)
8209  {
8210  modelPar_VBICtype = (-modelPar_type);
8211  }
8212  }
8213  }
8214  VmaxExp = log(modelPar_maxexp);
8215  Iikr = adms_ternary_op<AdmsSensFadType>((modelPar_ikr>0.0),(1.0/modelPar_ikr),0.0);
8216  Iikp = adms_ternary_op<AdmsSensFadType>((modelPar_ikp>0.0),(1.0/modelPar_ikp),0.0);
8217  Ihrcf = adms_ternary_op<AdmsSensFadType>((modelPar_hrcf>0.0),(1.0/modelPar_hrcf),0.0);
8218  Ivtf = adms_ternary_op<AdmsSensFadType>((modelPar_vtf>0.0),(1.0/modelPar_vtf),0.0);
8219  Iitf = adms_ternary_op<AdmsSensFadType>((modelPar_itf>0.0),(1.0/modelPar_itf),0.0);
8220  sltf = ((modelPar_itf>0.0)?0.0:1.0);
8221  tiniK = (273.15+modelPar_tnom);
8222  }
8223  // End block initializeModel
8224  //Begin block initializeInstance
8225  {
8226  tdevC = ((admsTemperature+instancePar_trise)-273.15);
8227  if ((tdevC<modelPar_tmin))
8228  {
8229  std::cerr << "WARNING: ambient temperature is lower than allowed minimum" << std::endl;
8230  }
8231  if ((tdevC>modelPar_tmax))
8232  {
8233  std::cerr << "WARNING: ambient temperature is higher than allowed maximum" << std::endl;
8234  }
8235  if ((tdevC<(modelPar_tminclip+1.0)))
8236  {
8237  tdevC = (modelPar_tminclip+exp(((tdevC-modelPar_tminclip)-1.0)));
8238  }
8239  else
8240  {
8241  if ((tdevC>(modelPar_tmaxclip-1.0)))
8242  {
8243  tdevC = (modelPar_tmaxclip-exp(((modelPar_tmaxclip-tdevC)-1.0)));
8244  }
8245  else
8246  {
8247  tdevC = tdevC;
8248  }
8249  }
8250  tdevK = (tdevC+273.15);
8251  vtv = ((1.380662e-23*tdevK)/1.602189e-19);
8252  rT = (tdevK/tiniK);
8253  tVCrit = (adms_vt(admsTemperature)*log((adms_vt(admsTemperature)/(1.41421356237309504880*modelPar_is))));
8254  if ((modelPar_ibbe>0.0))
8255  {
8256  maxvIbbe = ((modelPar_nbbe*vtv)*log((exp(((-modelPar_vbbe)/(modelPar_nbbe*vtv)))+(imaxMod/modelPar_ibbe))));
8257  }
8258  else
8259  {
8260  maxvIbbe = 0.0;
8261  }
8262  is_t = ((modelPar_is*pow(rT,(modelPar_xis/modelPar_nf)))*exp((((-modelPar_ea)*(1.0-rT))/(vtv*modelPar_nf))));
8263  if ((is_t>0.0))
8264  {
8265  if (((modelPar_ikf>0.0)&&(imaxMod>modelPar_ikf)))
8266  {
8267  maxvIfi = ((modelPar_nf*vtv)*log((1.0+(pow(((0.5*imaxMod)*pow((4.0/modelPar_ikf),modelPar_nkf)),(1.0/(1.0-modelPar_nkf)))/is_t))));
8268  }
8269  else
8270  {
8271  maxvIfi = ((modelPar_nf*vtv)*log((1.0+(imaxMod/is_t))));
8272  }
8273  }
8274  else
8275  {
8276  maxvIfi = 0.0;
8277  }
8278  isrr_t = ((modelPar_isrr*pow(rT,(modelPar_xisr/modelPar_nr)))*exp((((-modelPar_dear)*(1.0-rT))/(vtv*modelPar_nr))));
8279  if (((is_t>0.0)&&(isrr_t>0.0)))
8280  {
8281  if (((modelPar_ikr>0.0)&&(imaxMod>modelPar_ikr)))
8282  {
8283  maxvIri = ((modelPar_nr*vtv)*log((1.0+(pow(((0.5*imaxMod)*pow((4.0/modelPar_ikr),modelPar_nkf)),(1.0/(1.0-modelPar_nkf)))/(is_t*isrr_t)))));
8284  }
8285  else
8286  {
8287  maxvIri = ((modelPar_nr*vtv)*log((1.0+(imaxMod/(is_t*isrr_t)))));
8288  }
8289  }
8290  else
8291  {
8292  maxvIri = 0.0;
8293  }
8294  isp_t = ((modelPar_isp*pow(rT,(modelPar_xis/modelPar_nfp)))*exp((((-modelPar_eap)*(1.0-rT))/(vtv*modelPar_nfp))));
8295  if ((isp_t>0.0))
8296  {
8297  if (((modelPar_ikp>0.0)&&(imaxMod>modelPar_ikp)))
8298  {
8299  maxvIp = ((modelPar_nfp*vtv)*log((1.0+(((imaxMod*imaxMod)*Iikp)/isp_t))));
8300  }
8301  else
8302  {
8303  maxvIp = ((modelPar_nfp*vtv)*log((1.0+(imaxMod/isp_t))));
8304  }
8305  }
8306  else
8307  {
8308  maxvIp = 0.0;
8309  }
8310  ibei_t = ((modelPar_ibei*pow(rT,(modelPar_xii/modelPar_nei)))*exp((((-modelPar_eaie)*(1.0-rT))/(vtv*modelPar_nei))));
8311  if ((ibei_t>0.0))
8312  {
8313  maxvIbei = ((modelPar_nei*vtv)*log((1.0+(imaxMod/ibei_t))));
8314  }
8315  else
8316  {
8317  maxvIbei = 0.0;
8318  }
8319  iben_t = ((modelPar_iben*pow(rT,(modelPar_xin/modelPar_nen)))*exp((((-modelPar_eane)*(1.0-rT))/(vtv*modelPar_nen))));
8320  if ((iben_t>0.0))
8321  {
8322  maxvIben = ((modelPar_nen*vtv)*log((1.0+(imaxMod/iben_t))));
8323  }
8324  else
8325  {
8326  maxvIben = 0.0;
8327  }
8328  ibci_t = ((modelPar_ibci*pow(rT,(modelPar_xii/modelPar_nci)))*exp((((-modelPar_eaic)*(1.0-rT))/(vtv*modelPar_nci))));
8329  if ((ibci_t>0.0))
8330  {
8331  maxvIbci = ((modelPar_nci*vtv)*log((1.0+(imaxMod/ibci_t))));
8332  }
8333  else
8334  {
8335  maxvIbci = 0.0;
8336  }
8337  ibcn_t = ((modelPar_ibcn*pow(rT,(modelPar_xin/modelPar_ncn)))*exp((((-modelPar_eanc)*(1.0-rT))/(vtv*modelPar_ncn))));
8338  if ((ibcn_t>0.0))
8339  {
8340  maxvIbcn = ((modelPar_ncn*vtv)*log((1.0+(imaxMod/ibcn_t))));
8341  }
8342  else
8343  {
8344  maxvIbcn = 0.0;
8345  }
8346  ibeip_t = ((modelPar_ibeip*pow(rT,(modelPar_xii/modelPar_nci)))*exp((((-modelPar_eaic)*(1.0-rT))/(vtv*modelPar_nci))));
8347  if ((ibeip_t>0.0))
8348  {
8349  maxvIbeip = ((modelPar_nci*vtv)*log((1.0+(imaxMod/ibeip_t))));
8350  }
8351  else
8352  {
8353  maxvIbeip = 0.0;
8354  }
8355  ibenp_t = ((modelPar_ibenp*pow(rT,(modelPar_xin/modelPar_ncn)))*exp((((-modelPar_eanc)*(1.0-rT))/(vtv*modelPar_ncn))));
8356  if ((ibenp_t>0.0))
8357  {
8358  maxvIbenp = ((modelPar_ncn*vtv)*log((1.0+(imaxMod/ibenp_t))));
8359  }
8360  else
8361  {
8362  maxvIbenp = 0.0;
8363  }
8364  ibcip_t = ((modelPar_ibcip*pow(rT,(modelPar_xii/modelPar_ncip)))*exp((((-modelPar_eais)*(1.0-rT))/(vtv*modelPar_ncip))));
8365  if ((ibcip_t>0.0))
8366  {
8367  maxvIbcip = ((modelPar_ncip*vtv)*log((1.0+(imaxMod/ibcip_t))));
8368  }
8369  else
8370  {
8371  maxvIbcip = 0.0;
8372  }
8373  ibcnp_t = ((modelPar_ibcnp*pow(rT,(modelPar_xin/modelPar_ncnp)))*exp((((-modelPar_eans)*(1.0-rT))/(vtv*modelPar_ncnp))));
8374  if ((ibcnp_t>0.0))
8375  {
8376  maxvIbcnp = ((modelPar_ncnp*vtv)*log((1.0+(imaxMod/ibcnp_t))));
8377  }
8378  else
8379  {
8380  maxvIbcnp = 0.0;
8381  }
8382  }
8383  // End block initializeInstance
8384  //Begin block evaluateStatic
8385  {
8386  dt_et = probeVars[admsProbeID_Temp_dt_GND];
8387 
8388  tdevC = (((admsTemperature+instancePar_trise)+dt_et)-273.15);
8389  if ((tdevC<(modelPar_tminclip+1.0)))
8390  {
8391  tdevC = (modelPar_tminclip+exp(((tdevC-modelPar_tminclip)-1.0)));
8392  }
8393  else
8394  {
8395  if ((tdevC>(modelPar_tmaxclip-1.0)))
8396  {
8397  tdevC = (modelPar_tmaxclip-exp(((modelPar_tmaxclip-tdevC)-1.0)));
8398  }
8399  else
8400  {
8401  tdevC = tdevC;
8402  }
8403  }
8404  tdevK = (tdevC+273.15);
8405  vtv = ((1.380662e-23*tdevK)/1.602189e-19);
8406  rT = (tdevK/tiniK);
8407  dT = (tdevK-tiniK);
8408  ikf_t = (modelPar_ikf*pow(rT,modelPar_xikf));
8409  if (modelPar_given_xrcx)
8410  {
8411  rcx_t = (modelPar_rcx*pow(rT,modelPar_xrcx));
8412  }
8413  else
8414  {
8415  rcx_t = (modelPar_rcx*pow(rT,modelPar_xrc));
8416  }
8417  if (modelPar_given_xrci)
8418  {
8419  rci_t = (modelPar_rci*pow(rT,modelPar_xrci));
8420  }
8421  else
8422  {
8423  rci_t = (modelPar_rci*pow(rT,modelPar_xrc));
8424  }
8425  if (modelPar_given_xrbx)
8426  {
8427  rbx_t = (modelPar_rbx*pow(rT,modelPar_xrbx));
8428  }
8429  else
8430  {
8431  rbx_t = (modelPar_rbx*pow(rT,modelPar_xrb));
8432  }
8433  if (modelPar_given_xrbi)
8434  {
8435  rbi_t = (modelPar_rbi*pow(rT,modelPar_xrbi));
8436  }
8437  else
8438  {
8439  rbi_t = (modelPar_rbi*pow(rT,modelPar_xrb));
8440  }
8441  re_t = (modelPar_re*pow(rT,modelPar_xre));
8442  rs_t = (modelPar_rs*pow(rT,modelPar_xrs));
8443  if (modelPar_given_xrbp)
8444  {
8445  rbp_t = (modelPar_rbp*pow(rT,modelPar_xrbp));
8446  }
8447  else
8448  {
8449  rbp_t = (modelPar_rbp*pow(rT,modelPar_xrc));
8450  }
8451  rth_t = (modelPar_rth*(1.0+(dT*modelPar_tcrth)));
8452  is_t = ((modelPar_is*pow(rT,(modelPar_xis/modelPar_nf)))*exp((((-modelPar_ea)*(1.0-rT))/(vtv*modelPar_nf))));
8453  isrr_t = ((modelPar_isrr*pow(rT,(modelPar_xisr/modelPar_nr)))*exp((((-modelPar_dear)*(1.0-rT))/(vtv*modelPar_nr))));
8454  isp_t = ((modelPar_isp*pow(rT,(modelPar_xis/modelPar_nfp)))*exp((((-modelPar_eap)*(1.0-rT))/(vtv*modelPar_nfp))));
8455  ibei_t = ((modelPar_ibei*pow(rT,(modelPar_xii/modelPar_nei)))*exp((((-modelPar_eaie)*(1.0-rT))/(vtv*modelPar_nei))));
8456  iben_t = ((modelPar_iben*pow(rT,(modelPar_xin/modelPar_nen)))*exp((((-modelPar_eane)*(1.0-rT))/(vtv*modelPar_nen))));
8457  ibci_t = ((modelPar_ibci*pow(rT,(modelPar_xii/modelPar_nci)))*exp((((-modelPar_eaic)*(1.0-rT))/(vtv*modelPar_nci))));
8458  ibcn_t = ((modelPar_ibcn*pow(rT,(modelPar_xin/modelPar_ncn)))*exp((((-modelPar_eanc)*(1.0-rT))/(vtv*modelPar_ncn))));
8459  ibeip_t = ((modelPar_ibeip*pow(rT,(modelPar_xii/modelPar_nci)))*exp((((-modelPar_eaic)*(1.0-rT))/(vtv*modelPar_nci))));
8460  ibenp_t = ((modelPar_ibenp*pow(rT,(modelPar_xin/modelPar_ncn)))*exp((((-modelPar_eanc)*(1.0-rT))/(vtv*modelPar_ncn))));
8461  ibcip_t = ((modelPar_ibcip*pow(rT,(modelPar_xii/modelPar_ncip)))*exp((((-modelPar_eais)*(1.0-rT))/(vtv*modelPar_ncip))));
8462  ibcnp_t = ((modelPar_ibcnp*pow(rT,(modelPar_xin/modelPar_ncnp)))*exp((((-modelPar_eans)*(1.0-rT))/(vtv*modelPar_ncnp))));
8463  nf_t = (modelPar_nf*(1.0+(dT*modelPar_tnf)));
8464  nr_t = (modelPar_nr*(1.0+(dT*modelPar_tnf)));
8465  avc2_t = (modelPar_avc2*(1.0+(dT*modelPar_tavc)));
8466  avcx2_t = (modelPar_avcx2*(1.0+(dT*modelPar_tavcx)));
8467  vbbe_t = (modelPar_vbbe*(1.0+(dT*(modelPar_tvbbe1+(dT*modelPar_tvbbe2)))));
8468  nbbe_t = (modelPar_nbbe*(1.0+(dT*modelPar_tnbbe)));
8469  //Begin block pePsibiBlock
8470  {
8471  //Block-local variables for block pePsibiBlock
8472  AdmsSensFadType psiio;
8473  AdmsSensFadType psiin;
8474  //End of Block-local variables
8475  psiio = ((2.0*(vtv/rT))*log((exp((((0.5*modelPar_pe)*rT)/vtv))-exp(((((-0.5)*modelPar_pe)*rT)/vtv)))));
8476  psiin = (((psiio*rT)-((3.0*vtv)*log(rT)))-(modelPar_eaie*(rT-1.0)));
8477  pe_t = (psiin+((2.0*vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/vtv))))))))));
8478  }
8479  // End block pePsibiBlock
8480  //Begin block pcPsibiBlock
8481  {
8482  //Block-local variables for block pcPsibiBlock
8483  AdmsSensFadType psiio;
8484  AdmsSensFadType psiin;
8485  //End of Block-local variables
8486  psiio = ((2.0*(vtv/rT))*log((exp((((0.5*modelPar_pc)*rT)/vtv))-exp(((((-0.5)*modelPar_pc)*rT)/vtv)))));
8487  psiin = (((psiio*rT)-((3.0*vtv)*log(rT)))-(modelPar_eaic*(rT-1.0)));
8488  pc_t = (psiin+((2.0*vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/vtv))))))))));
8489  }
8490  // End block pcPsibiBlock
8491  //Begin block psPsibiBlock
8492  {
8493  //Block-local variables for block psPsibiBlock
8494  AdmsSensFadType psiio;
8495  AdmsSensFadType psiin;
8496  //End of Block-local variables
8497  psiio = ((2.0*(vtv/rT))*log((exp((((0.5*modelPar_ps)*rT)/vtv))-exp(((((-0.5)*modelPar_ps)*rT)/vtv)))));
8498  psiin = (((psiio*rT)-((3.0*vtv)*log(rT)))-(modelPar_eais*(rT-1.0)));
8499  ps_t = (psiin+((2.0*vtv)*log((0.5*(1.0+sqrt((1.0+(4.0*exp(((-psiin)/vtv))))))))));
8500  }
8501  // End block psPsibiBlock
8502  cje_t = (modelPar_cje*pow((modelPar_pe/pe_t),modelPar_me));
8503  cjc_t = (modelPar_cjc*pow((modelPar_pc/pc_t),modelPar_mc));
8504  cjep_t = (modelPar_cjep*pow((modelPar_pc/pc_t),modelPar_mc));
8505  cjcp_t = (modelPar_cjcp*pow((modelPar_ps/ps_t),modelPar_ms));
8506  gamm_t = ((modelPar_gamm*pow(rT,modelPar_xis))*exp((((-modelPar_ea)*(1.0-rT))/vtv)));
8507  vo_t = (modelPar_vo*pow(rT,modelPar_xvo));
8508  ebbe_t = exp(((-vbbe_t)/(nbbe_t*vtv)));
8509  vef_t = (modelPar_vef*(1.0+(dT*modelPar_tcvef)));
8510  ver_t = (modelPar_ver*(1.0+(dT*modelPar_tcver)));
8511  Gcx = adms_ternary_op<AdmsSensFadType>((rcx_t>1.0e-3),(1.0/rcx_t),1.0e3);
8512  Gci = adms_ternary_op<AdmsSensFadType>((rci_t>1.0e-3),(1.0/rci_t),1.0e3);
8513  Gbx = adms_ternary_op<AdmsSensFadType>((rbx_t>1.0e-3),(1.0/rbx_t),1.0e3);
8514  Gbi = adms_ternary_op<AdmsSensFadType>((rbi_t>1.0e-3),(1.0/rbi_t),1.0e3);
8515  Ge = adms_ternary_op<AdmsSensFadType>((re_t>1.0e-3),(1.0/re_t),1.0e3);
8516  Gbp = adms_ternary_op<AdmsSensFadType>((rbp_t>1.0e-3),(1.0/rbp_t),1.0e3);
8517  Gs = adms_ternary_op<AdmsSensFadType>((rs_t>1.0e-3),(1.0/rs_t),1.0e3);
8518  Gth = adms_ternary_op<AdmsSensFadType>((rth_t>1.0e-3),(1.0/rth_t),1.0e3);
8519  Ivef = adms_ternary_op<AdmsSensFadType>((vef_t>0.0),(1.0/vef_t),0.0);
8520  Iver = adms_ternary_op<AdmsSensFadType>((ver_t>0.0),(1.0/ver_t),0.0);
8521  Iikf = adms_ternary_op<AdmsSensFadType>((ikf_t>0.0),(1.0/ikf_t),0.0);
8522  Ivo = adms_ternary_op<AdmsSensFadType>((vo_t>0.0),(1.0/vo_t),0.0);
8523  Vbei = probeVars[admsProbeID_V_bi_ei];
8524 
8525  Vbex = probeVars[admsProbeID_V_bx_ei];
8526 
8527  Vbci = probeVars[admsProbeID_V_bi_ci];
8528 
8529  Vbcx = probeVars[admsProbeID_V_bi_cx];
8530 
8531  Vbxcx = probeVars[admsProbeID_V_bx_cx];
8532 
8533  Vcei = (modelPar_VBICtype*(probeVars[admsProbeID_V_ci_ei]));
8534  Vbep = probeVars[admsProbeID_V_bx_bp];
8535 
8536  Vbe = probeVars[admsProbeID_V_b_e];
8537 
8538  Vbc = (probeVars[admsProbeID_V_b_c]);
8539  Vrcx = (probeVars[admsProbeID_V_c_cx]);
8540  Vrci = (modelPar_VBICtype*(probeVars[admsProbeID_V_cx_ci]));
8541  Vrbx = (probeVars[admsProbeID_V_b_bx]);
8542  Vrbi = (probeVars[admsProbeID_V_bx_bi]);
8543  Vre = (probeVars[admsProbeID_V_e_ei]);
8544  Vrbp = (probeVars[admsProbeID_V_bp_cx]);
8545  Vbcp = (modelPar_VBICtype*(probeVars[admsProbeID_V_si_bp]));
8546  Vcep = (modelPar_VBICtype*(probeVars[admsProbeID_V_bx_si]));
8547  Vrs = (probeVars[admsProbeID_V_s_si]);
8548  Vxf1 = (probeVars[admsProbeID_V_xf1_GND]);
8549  Vxf2 = (probeVars[admsProbeID_V_xf2_GND]);
8550  //Begin block qdbeBlock
8551  {
8552  //Block-local variables for block qdbeBlock
8553  AdmsSensFadType dv0;
8554  AdmsSensFadType dvh;
8555  AdmsSensFadType pwq;
8556  AdmsSensFadType qlo;
8557  AdmsSensFadType qhi;
8558  AdmsSensFadType mv0;
8559  AdmsSensFadType vl0;
8560  AdmsSensFadType q0;
8561  AdmsSensFadType dv;
8562  AdmsSensFadType mv;
8563  AdmsSensFadType vl;
8564  //End of Block-local variables
8565  dv0 = ((-pe_t)*modelPar_fc);
8566  if ((modelPar_aje<=0.0))
8567  {
8568  dvh = (Vbei+dv0);
8569  if ((dvh>0.0))
8570  {
8571  pwq = pow((1.0-modelPar_fc),(-modelPar_me));
8572  qlo = ((pe_t*(1.0-(pwq*(1.0-modelPar_fc))))/(1.0-modelPar_me));
8573  qhi = ((dvh*(1.0+(((0.5*modelPar_me)*dvh)/(pe_t*(1.0-modelPar_fc)))))*pwq);
8574  }
8575  else
8576  {
8577  qlo = ((pe_t*(1.0-pow((1.0-(Vbei/pe_t)),(1.0-modelPar_me))))/(1.0-modelPar_me));
8578  qhi = 0.0;
8579  }
8580  qdbe = (qlo+qhi);
8581  }
8582  else
8583  {
8584  mv0 = sqrt(((dv0*dv0)+((4.0*modelPar_aje)*modelPar_aje)));
8585  vl0 = ((-0.5)*(dv0+mv0));
8586  q0 = (((-pe_t)*pow((1.0-(vl0/pe_t)),(1.0-modelPar_me)))/(1.0-modelPar_me));
8587  dv = (Vbei+dv0);
8588  mv = sqrt(((dv*dv)+((4.0*modelPar_aje)*modelPar_aje)));
8589  vl = ((0.5*(dv-mv))-dv0);
8590  qlo = (((-pe_t)*pow((1.0-(vl/pe_t)),(1.0-modelPar_me)))/(1.0-modelPar_me));
8591  qdbe = ((qlo+((pow((1.0-modelPar_fc),(-modelPar_me))*((Vbei-vl)+vl0))*(1.0+(((0.5*modelPar_me)*((Vbei-vl)+vl0))/(pe_t*(1.0-modelPar_fc))))))-q0);
8592  }
8593  }
8594  // End block qdbeBlock
8595  //Begin block qdbcBlock
8596  {
8597  //Block-local variables for block qdbcBlock
8598  AdmsSensFadType dv0;
8599  AdmsSensFadType dvh;
8600  AdmsSensFadType pwq;
8601  AdmsSensFadType qlo;
8602  AdmsSensFadType qhi;
8603  AdmsSensFadType vn0;
8604  AdmsSensFadType vnl0;
8605  AdmsSensFadType vl0;
8606  AdmsSensFadType qlo0;
8607  AdmsSensFadType vn;
8608  AdmsSensFadType vnl;
8609  AdmsSensFadType vl;
8610  AdmsSensFadType sel;
8611  AdmsSensFadType crt;
8612  AdmsSensFadType cmx;
8613  AdmsSensFadType cl;
8614  AdmsSensFadType ql;
8615  AdmsSensFadType mv0;
8616  AdmsSensFadType q0;
8617  AdmsSensFadType dv;
8618  AdmsSensFadType mv;
8619  //End of Block-local variables
8620  dv0 = ((-pc_t)*modelPar_fc);
8621  if ((modelPar_ajc<=0.0))
8622  {
8623  dvh = (Vbci+dv0);
8624  if ((dvh>0.0))
8625  {
8626  pwq = pow((1.0-modelPar_fc),((-1.0)-modelPar_mc));
8627  qlo = ((pc_t*(1.0-((pwq*(1.0-modelPar_fc))*(1.0-modelPar_fc))))/(1.0-modelPar_mc));
8628  qhi = ((dvh*((1.0-modelPar_fc)+(((0.5*modelPar_mc)*dvh)/pc_t)))*pwq);
8629  }
8630  else
8631  {
8632  if (((modelPar_vrt>0.0)&&(Vbci<(-modelPar_vrt))))
8633  {
8634  qlo = ((pc_t*(1.0-(pow((1.0+(modelPar_vrt/pc_t)),(1.0-modelPar_mc))*(1.0-(((1.0-modelPar_mc)*(Vbci+modelPar_vrt))/(pc_t+modelPar_vrt))))))/(1.0-modelPar_mc));
8635  }
8636  else
8637  {
8638  qlo = ((pc_t*(1.0-pow((1.0-(Vbci/pc_t)),(1.0-modelPar_mc))))/(1.0-modelPar_mc));
8639  }
8640  qhi = 0.0;
8641  }
8642  qdbc = (qlo+qhi);
8643  }
8644  else
8645  {
8646  if (((modelPar_vrt>0.0)&&(modelPar_art>0.0)))
8647  {
8648  vn0 = ((modelPar_vrt+dv0)/(modelPar_vrt-dv0));
8649  vnl0 = ((2.0*vn0)/(sqrt((((vn0-1.0)*(vn0-1))+((4*modelPar_ajc)*modelPar_ajc)))+sqrt((((vn0+1.0)*(vn0+1))+((4*modelPar_art)*modelPar_art)))));
8650  vl0 = (0.5*(((vnl0*(modelPar_vrt-dv0))-modelPar_vrt)-dv0));
8651  qlo0 = ((pc_t*(1.0-pow((1.0-(vl0/pc_t)),(1.0-modelPar_mc))))/(1.0-modelPar_mc));
8652  vn = ((((2*Vbci)+modelPar_vrt)+dv0)/(modelPar_vrt-dv0));
8653  vnl = ((2.0*vn)/(sqrt((((vn-1.0)*(vn-1))+((4*modelPar_ajc)*modelPar_ajc)))+sqrt((((vn+1.0)*(vn+1))+((4*modelPar_art)*modelPar_art)))));
8654  vl = (0.5*(((vnl*(modelPar_vrt-dv0))-modelPar_vrt)-dv0));
8655  qlo = ((pc_t*(1.0-pow((1.0-(vl/pc_t)),(1.0-modelPar_mc))))/(1.0-modelPar_mc));
8656  sel = (0.5*(vnl+1.0));
8657  crt = pow((1.0+(modelPar_vrt/pc_t)),(-modelPar_mc));
8658  cmx = pow((1.0+(dv0/pc_t)),(-modelPar_mc));
8659  cl = (((1.0-sel)*crt)+(sel*cmx));
8660  ql = (((Vbci-vl)+vl0)*cl);
8661  qdbc = ((ql+qlo)-qlo0);
8662  }
8663  else
8664  {
8665  mv0 = sqrt(((dv0*dv0)+((4*modelPar_ajc)*modelPar_ajc)));
8666  vl0 = ((-0.5)*(dv0+mv0));
8667  q0 = (((-pc_t)*pow((1.0-(vl0/pc_t)),(1.0-modelPar_mc)))/(1.0-modelPar_mc));
8668  dv = (Vbci+dv0);
8669  mv = sqrt(((dv*dv)+((4*modelPar_ajc)*modelPar_ajc)));
8670  vl = ((0.5*(dv-mv))-dv0);
8671  qlo = (((-pc_t)*pow((1.0-(vl/pc_t)),(1.0-modelPar_mc)))/(1.0-modelPar_mc));
8672  qdbc = ((qlo+(pow((1.0-modelPar_fc),(-modelPar_mc))*((Vbci-vl)+vl0)))-q0);
8673  }
8674  }
8675  }
8676  // End block qdbcBlock
8677  afac = (1.0/(nf_t*vtv));
8678  if ((Vbei<maxvIfi))
8679  {
8680  expi = exp((Vbei*afac));
8681  }
8682  else
8683  {
8684  expi = (exp((maxvIfi*afac))*(1.0+((Vbei-maxvIfi)*afac)));
8685  }
8686  Ifi = (is_t*(expi-1.0));
8687  afac = (1.0/(nr_t*vtv));
8688  if ((Vbci<maxvIri))
8689  {
8690  expi = exp((Vbci*afac));
8691  }
8692  else
8693  {
8694  expi = (exp((maxvIri*afac))*(1.0+((Vbci-maxvIri)*afac)));
8695  }
8696  Iri = ((is_t*isrr_t)*(expi-1.0));
8697  q1z = (((1.0+(qdbe*Iver))+(qdbc*Ivef))-1.0e-4);
8698  q1 = ((0.5*(sqrt(((q1z*q1z)+1.0e-8))+q1z))+1.0e-4);
8699  q2 = ((Ifi*Iikf)+(Iri*Iikr));
8700  if ((modelPar_qbm<0.5))
8701  {
8702  arg = (pow(q1,(1.0/modelPar_nkf))+(4.0*q2));
8703  if ((arg>1.0e-8))
8704  {
8705  qb = (0.5*(q1+pow(arg,modelPar_nkf)));
8706  }
8707  else
8708  {
8709  qb = (0.5*(q1+pow(1.0e-8,modelPar_nkf)));
8710  }
8711  }
8712  else
8713  {
8714  arg = (1.0+(4.0*q2));
8715  if ((arg>1.0e-8))
8716  {
8717  qb = ((0.5*q1)*(1.0+pow(arg,modelPar_nkf)));
8718  }
8719  else
8720  {
8721  qb = ((0.5*q1)*(1.0+pow(1.0e-8,modelPar_nkf)));
8722  }
8723  }
8724  Itzr = (Iri/qb);
8725  Itzf = (Ifi/qb);
8726  Itxf = Vxf2;
8727  if ((modelPar_isp>0.0))
8728  {
8729  afac = (1.0/(modelPar_nfp*vtv));
8730  if ((Vbep<maxvIp))
8731  {
8732  expi = exp((Vbep*afac));
8733  }
8734  else
8735  {
8736  expi = (exp((maxvIp*afac))*(1.0+((Vbep-maxvIp)*afac)));
8737  }
8738  if ((Vbci<maxvIp))
8739  {
8740  expx = exp((Vbci*afac));
8741  }
8742  else
8743  {
8744  expx = (exp((maxvIp*afac))*(1.0+((Vbci-maxvIp)*afac)));
8745  }
8746  Ifp = (isp_t*(((modelPar_wsp*expi)+((1.0-modelPar_wsp)*expx))-1.0));
8747  q2p = (Ifp*Iikp);
8748  arg = (1.0+(4.0*q2p));
8749  if ((arg>1.0e-8))
8750  {
8751  qbp = (0.5*(1.0+sqrt(arg)));
8752  }
8753  else
8754  {
8755  qbp = (0.5*(1.0+sqrt(1.0e-8)));
8756  }
8757  if ((Vbcp<maxvIp))
8758  {
8759  expi = exp((Vbcp*afac));
8760  }
8761  else
8762  {
8763  expi = (exp((maxvIp*afac))*(1.0+((Vbcp-maxvIp)*afac)));
8764  }
8765  Irp = (isp_t*(expi-1.0));
8766  Iccp = ((Ifp-Irp)/qbp);
8767  }
8768  else
8769  {
8770  Ifp = 0.0;
8771  qbp = 1.0;
8772  Iccp = 0.0;
8773  }
8774  if ((modelPar_wbe==1.0))
8775  {
8776  afac = (1.0/(modelPar_nei*vtv));
8777  if ((Vbei<maxvIbei))
8778  {
8779  expi = exp((Vbei*afac));
8780  }
8781  else
8782  {
8783  expi = (exp((maxvIbei*afac))*(1.0+((Vbei-maxvIbei)*afac)));
8784  }
8785  afac = (1.0/(modelPar_nen*vtv));
8786  if ((Vbei<maxvIben))
8787  {
8788  expn = exp((Vbei*afac));
8789  }
8790  else
8791  {
8792  expn = (exp((maxvIben*afac))*(1.0+((Vbei-maxvIben)*afac)));
8793  }
8794  if ((modelPar_qnibeir>0.0))
8795  {
8796  Ibe = (((ibei_t*(1.0+(modelPar_qnibeir*(q1-1.0))))*(expi-1.0))+(iben_t*(expn-1.0)));
8797  }
8798  else
8799  {
8800  Ibe = ((ibei_t*(expi-1.0))+(iben_t*(expn-1.0)));
8801  }
8802  if ((modelPar_vbbe>0.0))
8803  {
8804  Bvbe = ((-vbbe_t)-Vbei);
8805  afac = (1.0/(nbbe_t*vtv));
8806  if ((Bvbe<maxvIbbe))
8807  {
8808  expx = exp((Bvbe*afac));
8809  }
8810  else
8811  {
8812  expx = (exp((maxvIbbe*afac))*(1.0+((Bvbe-maxvIbbe)*afac)));
8813  }
8814  Ibe = (Ibe-(modelPar_ibbe*(expx-ebbe_t)));
8815  }
8816  Ibex = 0.0;
8817  }
8818  else
8819  {
8820  if ((modelPar_wbe==0.0))
8821  {
8822  Ibe = 0.0;
8823  afac = (1.0/(modelPar_nei*vtv));
8824  if ((Vbex<maxvIbei))
8825  {
8826  expi = exp((Vbex*afac));
8827  }
8828  else
8829  {
8830  expi = (exp((maxvIbei*afac))*(1.0+((Vbex-maxvIbei)*afac)));
8831  }
8832  afac = (1.0/(modelPar_nen*vtv));
8833  if ((Vbex<maxvIben))
8834  {
8835  expn = exp((Vbex*afac));
8836  }
8837  else
8838  {
8839  expn = (exp((maxvIben*afac))*(1.0+((Vbex-maxvIben)*afac)));
8840  }
8841  Ibex = ((ibei_t*(expi-1.0))+(iben_t*(expn-1.0)));
8842  if ((modelPar_vbbe>0.0))
8843  {
8844  Bvbe = ((-vbbe_t)-Vbei);
8845  afac = (1.0/(nbbe_t*vtv));
8846  if ((Bvbe<maxvIbbe))
8847  {
8848  expx = exp((Bvbe*afac));
8849  }
8850  else
8851  {
8852  expx = (exp((maxvIbbe*afac))*(1.0+((Bvbe-maxvIbbe)*afac)));
8853  }
8854  Ibex = (Ibex-(modelPar_ibbe*(expx-ebbe_t)));
8855  }
8856  }
8857  else
8858  {
8859  afac = (1.0/(modelPar_nei*vtv));
8860  if ((Vbei<maxvIbei))
8861  {
8862  expi = exp((Vbei*afac));
8863  }
8864  else
8865  {
8866  expi = (exp((maxvIbei*afac))*(1.0+((Vbei-maxvIbei)*afac)));
8867  }
8868  afac = (1.0/(modelPar_nen*vtv));
8869  if ((Vbei<maxvIben))
8870  {
8871  expn = exp((Vbei*afac));
8872  }
8873  else
8874  {
8875  expn = (exp((maxvIben*afac))*(1.0+((Vbei-maxvIben)*afac)));
8876  }
8877  if ((modelPar_qnibeir>0.0))
8878  {
8879  Ibe = (modelPar_wbe*(((ibei_t*(1.0+(modelPar_qnibeir*(q1-1.0))))*(expi-1.0))+(iben_t*(expn-1.0))));
8880  }
8881  else
8882  {
8883  Ibe = (modelPar_wbe*((ibei_t*(expi-1.0))+(iben_t*(expn-1.0))));
8884  }
8885  if ((modelPar_vbbe>0.0))
8886  {
8887  Bvbe = ((-vbbe_t)-Vbei);
8888  afac = (1.0/(nbbe_t*vtv));
8889  if ((Bvbe<maxvIbbe))
8890  {
8891  expx = exp((Bvbe*afac));
8892  }
8893  else
8894  {
8895  expx = (exp((maxvIbbe*afac))*(1.0+((Bvbe-maxvIbbe)*afac)));
8896  }
8897  Ibe = (Ibe-((modelPar_wbe*modelPar_ibbe)*(expx-ebbe_t)));
8898  }
8899  afac = (1.0/(modelPar_nei*vtv));
8900  if ((Vbex<maxvIbei))
8901  {
8902  expi = exp((Vbex*afac));
8903  }
8904  else
8905  {
8906  expi = (exp((maxvIbei*afac))*(1.0+((Vbex-maxvIbei)*afac)));
8907  }
8908  afac = (1.0/(modelPar_nen*vtv));
8909  if ((Vbex<maxvIben))
8910  {
8911  expn = exp((Vbex*afac));
8912  }
8913  else
8914  {
8915  expn = (exp((maxvIben*afac))*(1.0+((Vbex-maxvIben)*afac)));
8916  }
8917  Ibex = ((1.0-modelPar_wbe)*((ibei_t*(expi-1.0))+(iben_t*(expn-1.0))));
8918  if ((modelPar_vbbe>0.0))
8919  {
8920  Bvbe = ((-vbbe_t)-Vbei);
8921  afac = (1.0/(nbbe_t*vtv));
8922  if ((Bvbe<maxvIbbe))
8923  {
8924  expx = exp((Bvbe*afac));
8925  }
8926  else
8927  {
8928  expx = (exp((maxvIbbe*afac))*(1.0+((Bvbe-maxvIbbe)*afac)));
8929  }
8930  Ibex = (Ibex-(((1.0-modelPar_wbe)*modelPar_ibbe)*(expx-ebbe_t)));
8931  }
8932  }
8933  }
8934  afac = (1.0/(modelPar_nci*vtv));
8935  if ((Vbci<maxvIbci))
8936  {
8937  expi = exp((Vbci*afac));
8938  }
8939  else
8940  {
8941  expi = (exp((maxvIbci*afac))*(1.0+((Vbci-maxvIbci)*afac)));
8942  }
8943  afac = (1.0/(modelPar_ncn*vtv));
8944  if ((Vbci<maxvIbcn))
8945  {
8946  expn = exp((Vbci*afac));
8947  }
8948  else
8949  {
8950  expn = (exp((maxvIbcn*afac))*(1.0+((Vbci-maxvIbcn)*afac)));
8951  }
8952  Ibcj = ((ibci_t*(expi-1.0))+(ibcn_t*(expn-1.0)));
8953  if (((modelPar_ibeip>0.0)||(modelPar_ibenp>0.0)))
8954  {
8955  afac = (1.0/(modelPar_nci*vtv));
8956  if ((Vbep<maxvIbeip))
8957  {
8958  expi = exp((Vbep*afac));
8959  }
8960  else
8961  {
8962  expi = (exp((maxvIbeip*afac))*(1.0+((Vbep-maxvIbeip)*afac)));
8963  }
8964  afac = (1.0/(modelPar_ncn*vtv));
8965  if ((Vbep<maxvIbenp))
8966  {
8967  expn = exp((Vbep*afac));
8968  }
8969  else
8970  {
8971  expn = (exp((maxvIbenp*afac))*(1.0+((Vbep-maxvIbenp)*afac)));
8972  }
8973  Ibep = ((ibeip_t*(expi-1.0))+(ibenp_t*(expn-1.0)));
8974  }
8975  else
8976  {
8977  Ibep = 0.0;
8978  }
8979  arg = (Vbci/vtv);
8980  if ((arg<VmaxExp))
8981  {
8982  expi = exp(arg);
8983  }
8984  else
8985  {
8986  expi = (exp(VmaxExp)*(1.0+(arg-VmaxExp)));
8987  }
8988  arg = (Vbcx/vtv);
8989  if ((arg<VmaxExp))
8990  {
8991  expx = exp(arg);
8992  }
8993  else
8994  {
8995  expx = (exp(VmaxExp)*(1.0+(arg-VmaxExp)));
8996  }
8997  Kbci = sqrt((1.0+(gamm_t*expi)));
8998  Kbcx = sqrt((1.0+(gamm_t*expx)));
8999  Ircx = (Vrcx*Gcx);
9000  rKp1 = ((Kbci+1.0)/(Kbcx+1.0));
9001  Iohm = ((Vrci+(vtv*((Kbci-Kbcx)-log(rKp1))))*Gci);
9002  derf = ((Ivo*Iohm)/(Gci*(1.0+(((0.5*Ivo)*Ihrcf)*sqrt(((Vrci*Vrci)+0.01))))));
9003  Irci = (Iohm/sqrt((1+(derf*derf))));
9004  Irbx = (Vrbx*Gbx);
9005  Irbi = ((Vrbi*qb)*Gbi);
9006  Ire = (Vre*Ge);
9007  Irbp = ((Vrbp*qbp)*Gbp);
9008  Irs = (Vrs*Gs);
9009  if ((modelPar_avc1>0.0))
9010  {
9011  //Begin block igcBlock
9012  {
9013  //Block-local variables for block igcBlock
9014  AdmsSensFadType vminm;
9015  AdmsSensFadType vl;
9016  AdmsSensFadType mac1;
9017  AdmsSensFadType expi;
9018  AdmsSensFadType expl;
9019  //End of Block-local variables
9020  vminm = pow((0.02*(avc2_t+1.0)),(1.0/(1.01-modelPar_mc)));
9021  vl = ((0.5*(sqrt(((((pc_t-Vbci)-vminm)*((pc_t-Vbci)-vminm))+0.01))+((pc_t-Vbci)-vminm)))+vminm);
9022  mac1 = ((-avc2_t)*pow(vl,(modelPar_mc-1.0)));
9023  if ((mac1<VmaxExp))
9024  {
9025  expi = exp(mac1);
9026  }
9027  else
9028  {
9029  expl = exp(VmaxExp);
9030  expi = (expl*(1.0+(mac1-VmaxExp)));
9031  }
9032  avalf = ((modelPar_avc1*vl)*expi);
9033  }
9034  // End block igcBlock
9035  Igc = (((Itxf-Itzr)-Ibcj)*avalf);
9036  }
9037  else
9038  {
9039  Igc = 0.0;
9040  }
9041  if ((modelPar_avcx1>0.0))
9042  {
9043  //Begin block igcxBlock
9044  {
9045  //Block-local variables for block igcxBlock
9046  AdmsSensFadType vminm;
9047  AdmsSensFadType vl;
9048  AdmsSensFadType mac1;
9049  AdmsSensFadType expi;
9050  AdmsSensFadType expl;
9051  //End of Block-local variables
9052  vminm = pow((0.02*(avcx2_t+1.0)),(1.0/(1.01-modelPar_mcx)));
9053  vl = ((0.5*(sqrt(((((-Vbxcx)-vminm)*((-Vbxcx)-vminm))+0.01))+((-Vbxcx)-vminm)))+vminm);
9054  mac1 = ((-avcx2_t)*pow(vl,(modelPar_mcx-1.0)));
9055  if ((mac1<VmaxExp))
9056  {
9057  expi = exp(mac1);
9058  }
9059  else
9060  {
9061  expl = exp(VmaxExp);
9062  expi = (expl*(1.0+(mac1-VmaxExp)));
9063  }
9064  avalf = ((modelPar_avcx1*vl)*expi);
9065  }
9066  // End block igcxBlock
9067  Igcx = ((-Ircx)*avalf);
9068  }
9069  else
9070  {
9071  Igcx = 0.0;
9072  }
9073  if (((modelPar_bbk>0.0)&&(modelPar_ibk0>0.0)))
9074  {
9075  if ((modelPar_vpte>0.0))
9076  {
9077  VcbFac = ((1.0-(Vbci/modelPar_vpte))-0.1);
9078  VcbFac = (0.1+(0.5*(VcbFac+sqrt(((VcbFac*VcbFac)+1.0e-4)))));
9079  Iibk = (modelPar_ibk0*VcbFac);
9080  }
9081  else
9082  {
9083  Iibk = modelPar_ibk0;
9084  }
9085  Ibk = (modelPar_bbk*pow(((Itzf/Iibk)-1.0),modelPar_abk));
9086  }
9087  else
9088  {
9089  Ibk = 0.0;
9090  }
9091  Ibc = ((Ibcj-Igc)-Ibk);
9092  if (((modelPar_ibcip>0.0)||(modelPar_ibcnp>0.0)))
9093  {
9094  afac = (1.0/(modelPar_ncip*vtv));
9095  if ((Vbcp<maxvIbcip))
9096  {
9097  expi = exp((Vbcp*afac));
9098  }
9099  else
9100  {
9101  expi = (exp((maxvIbcip*afac))*(1.0+((Vbcp-maxvIbcip)*afac)));
9102  }
9103  afac = (1.0/(modelPar_ncnp*vtv));
9104  if ((Vbcp<maxvIbcnp))
9105  {
9106  expn = exp((Vbcp*afac));
9107  }
9108  else
9109  {
9110  expn = (exp((maxvIbcnp*afac))*(1.0+((Vbcp-maxvIbcnp)*afac)));
9111  }
9112  Ibcp = ((ibcip_t*(expi-1.0))+(ibcnp_t*(expn-1.0)));
9113  }
9114  else
9115  {
9116  Ibcp = 0.0;
9117  }
9118  power = ((((((((((((((Ibe*Vbei)+(Ibc*Vbci))+((Itxf-Itzr)*Vcei))+(Ibex*Vbex))+(Ibep*Vbep))+(Irs*Vrs))+(Ibcp*Vbcp))+(Iccp*Vcep))+(Ircx*Vrcx))+(Irci*Vrci))+(Irbx*Vrbx))+(Irbi*Vrbi))+(Ire*Vre))+(Irbp*Vrbp));
9119  Ith = ((-instancePar_sw_et)*power);
9120  Irth = (dt_et*Gth);
9121  Ixf1 = (Vxf2-Itzf);
9122  Ixf2 = (Vxf2-Vxf1);
9123  Ibe = (Ibe+(gminMod*Vbei));
9124  Ibex = (Ibex+(gminMod*Vbex));
9125  Ibep = (Ibep+(gminMod*Vbep));
9126  Ibc = (Ibc+(gminMod*Vbci));
9127  Igcx = (Igcx+(gminMod*Vbxcx));
9128  Ibcp = (Ibcp+(gminMod*Vbcp));
9129  Ibe = ((modelPar_VBICtype*mMod)*Ibe);
9130  Ibex = ((modelPar_VBICtype*mMod)*Ibex);
9131  Itzf = ((modelPar_VBICtype*mMod)*Itzf);
9132  Itxf = ((modelPar_VBICtype*mMod)*Itxf);
9133  Itzr = ((modelPar_VBICtype*mMod)*Itzr);
9134  Ibc = ((modelPar_VBICtype*mMod)*Ibc);
9135  Igcx = ((modelPar_VBICtype*mMod)*Igcx);
9136  Ibep = ((modelPar_VBICtype*mMod)*Ibep);
9137  Ircx = (mMod*Ircx);
9138  Irci = ((modelPar_VBICtype*mMod)*Irci);
9139  Irbx = (mMod*Irbx);
9140  Irbi = (mMod*Irbi);
9141  Ire = (mMod*Ire);
9142  Irbp = (mMod*Irbp);
9143  Ibcp = ((modelPar_VBICtype*mMod)*Ibcp);
9144  Iccp = ((modelPar_VBICtype*mMod)*Iccp);
9145  Irs = (mMod*Irs);
9146  Ith = (mMod*Ith);
9147  Irth = (mMod*Irth);
9148  }
9149  // End block evaluateStatic
9150  //Begin block evaluateDynamic
9151  {
9152  if ((modelPar_cjcp>0.0))
9153  {
9154  //Begin block qdbcpBlock
9155  {
9156  //Block-local variables for block qdbcpBlock
9157  AdmsSensFadType dv0;
9158  AdmsSensFadType dvh;
9159  AdmsSensFadType pwq;
9160  AdmsSensFadType qlo;
9161  AdmsSensFadType qhi;
9162  AdmsSensFadType mv0;
9163  AdmsSensFadType vl0;
9164  AdmsSensFadType q0;
9165  AdmsSensFadType dv;
9166  AdmsSensFadType mv;
9167  AdmsSensFadType vl;
9168  //End of Block-local variables
9169  dv0 = ((-ps_t)*modelPar_fc);
9170  if ((modelPar_ajs<=0.0))
9171  {
9172  dvh = (Vbcp+dv0);
9173  if ((dvh>0.0))
9174  {
9175  pwq = pow((1.0-modelPar_fc),(-modelPar_ms));
9176  qlo = ((ps_t*(1.0-(pwq*(1.0-modelPar_fc))))/(1.0-modelPar_ms));
9177  qhi = ((dvh*(1.0+(((0.5*modelPar_ms)*dvh)/(ps_t*(1.0-modelPar_fc)))))*pwq);
9178  }
9179  else
9180  {
9181  qlo = ((ps_t*(1.0-pow((1.0-(Vbcp/ps_t)),(1.0-modelPar_ms))))/(1.0-modelPar_ms));
9182  qhi = 0.0;
9183  }
9184  qdbcp = (qlo+qhi);
9185  }
9186  else
9187  {
9188  mv0 = sqrt(((dv0*dv0)+((4.0*modelPar_ajs)*modelPar_ajs)));
9189  vl0 = ((-0.5)*(dv0+mv0));
9190  q0 = (((-ps_t)*pow((1.0-(vl0/ps_t)),(1.0-modelPar_ms)))/(1.0-modelPar_ms));
9191  dv = (Vbcp+dv0);
9192  mv = sqrt(((dv*dv)+((4.0*modelPar_ajs)*modelPar_ajs)));
9193  vl = ((0.5*(dv-mv))-dv0);
9194  qlo = (((-ps_t)*pow((1.0-(vl/ps_t)),(1.0-modelPar_ms)))/(1.0-modelPar_ms));
9195  qdbcp = ((qlo+((pow((1.0-modelPar_fc),(-modelPar_ms))*((Vbcp-vl)+vl0))*(1.0+(((0.5*modelPar_ms)*((Vbcp-vl)+vl0))/(ps_t*(1.0-modelPar_fc))))))-q0);
9196  }
9197  }
9198  // End block qdbcpBlock
9199  }
9200  else
9201  {
9202  qdbcp = 0.0;
9203  }
9204  //Begin block qdbexBlock
9205  {
9206  //Block-local variables for block qdbexBlock
9207  AdmsSensFadType dv0;
9208  AdmsSensFadType dvh;
9209  AdmsSensFadType pwq;
9210  AdmsSensFadType qlo;
9211  AdmsSensFadType qhi;
9212  AdmsSensFadType mv0;
9213  AdmsSensFadType vl0;
9214  AdmsSensFadType q0;
9215  AdmsSensFadType dv;
9216  AdmsSensFadType mv;
9217  AdmsSensFadType vl;
9218  //End of Block-local variables
9219  dv0 = ((-pe_t)*modelPar_fc);
9220  if ((modelPar_aje<=0.0))
9221  {
9222  dvh = (Vbex+dv0);
9223  if ((dvh>0.0))
9224  {
9225  pwq = pow((1.0-modelPar_fc),(-modelPar_me));
9226  qlo = ((pe_t*(1.0-(pwq*(1.0-modelPar_fc))))/(1.0-modelPar_me));
9227  qhi = ((dvh*(1.0+(((0.5*modelPar_me)*dvh)/(pe_t*(1.0-modelPar_fc)))))*pwq);
9228  }
9229  else
9230  {
9231  qlo = ((pe_t*(1.0-pow((1.0-(Vbex/pe_t)),(1.0-modelPar_me))))/(1.0-modelPar_me));
9232  qhi = 0.0;
9233  }
9234  qdbex = (qlo+qhi);
9235  }
9236  else
9237  {
9238  mv0 = sqrt(((dv0*dv0)+((4.0*modelPar_aje)*modelPar_aje)));
9239  vl0 = ((-0.5)*(dv0+mv0));
9240  q0 = (((-pe_t)*pow((1.0-(vl0/pe_t)),(1.0-modelPar_me)))/(1.0-modelPar_me));
9241  dv = (Vbex+dv0);
9242  mv = sqrt(((dv*dv)+((4.0*modelPar_aje)*modelPar_aje)));
9243  vl = ((0.5*(dv-mv))-dv0);
9244  qlo = (((-pe_t)*pow((1.0-(vl/pe_t)),(1.0-modelPar_me)))/(1.0-modelPar_me));
9245  qdbex = ((qlo+((pow((1.0-modelPar_fc),(-modelPar_me))*((Vbex-vl)+vl0))*(1.0+(((0.5*modelPar_me)*((Vbex-vl)+vl0))/(pe_t*(1.0-modelPar_fc))))))-q0);
9246  }
9247  }
9248  // End block qdbexBlock
9249  //Begin block qdbepBlock
9250  {
9251  //Block-local variables for block qdbepBlock
9252  AdmsSensFadType dv0;
9253  AdmsSensFadType dvh;
9254  AdmsSensFadType pwq;
9255  AdmsSensFadType qlo;
9256  AdmsSensFadType qhi;
9257  AdmsSensFadType vn0;
9258  AdmsSensFadType vnl0;
9259  AdmsSensFadType vl0;
9260  AdmsSensFadType qlo0;
9261  AdmsSensFadType vn;
9262  AdmsSensFadType vnl;
9263  AdmsSensFadType vl;
9264  AdmsSensFadType sel;
9265  AdmsSensFadType crt;
9266  AdmsSensFadType cmx;
9267  AdmsSensFadType cl;
9268  AdmsSensFadType ql;
9269  AdmsSensFadType mv0;
9270  AdmsSensFadType q0;
9271  AdmsSensFadType dv;
9272  AdmsSensFadType mv;
9273  //End of Block-local variables
9274  dv0 = ((-pc_t)*modelPar_fc);
9275  if ((modelPar_ajc<=0.0))
9276  {
9277  dvh = (Vbep+dv0);
9278  if ((dvh>0.0))
9279  {
9280  pwq = pow((1.0-modelPar_fc),((-1.0)-modelPar_mc));
9281  qlo = ((pc_t*(1.0-((pwq*(1.0-modelPar_fc))*(1.0-modelPar_fc))))/(1.0-modelPar_mc));
9282  qhi = ((dvh*((1.0-modelPar_fc)+(((0.5*modelPar_mc)*dvh)/pc_t)))*pwq);
9283  }
9284  else
9285  {
9286  if (((modelPar_vrt>0.0)&&(Vbep<(-modelPar_vrt))))
9287  {
9288  qlo = ((pc_t*(1.0-(pow((1.0+(modelPar_vrt/pc_t)),(1.0-modelPar_mc))*(1.0-(((1.0-modelPar_mc)*(Vbep+modelPar_vrt))/(pc_t+modelPar_vrt))))))/(1.0-modelPar_mc));
9289  }
9290  else
9291  {
9292  qlo = ((pc_t*(1.0-pow((1.0-(Vbep/pc_t)),(1.0-modelPar_mc))))/(1.0-modelPar_mc));
9293  }
9294  qhi = 0.0;
9295  }
9296  qdbep = (qlo+qhi);
9297  }
9298  else
9299  {
9300  if (((modelPar_vrt>0.0)&&(modelPar_art>0.0)))
9301  {
9302  vn0 = ((modelPar_vrt+dv0)/(modelPar_vrt-dv0));
9303  vnl0 = ((2.0*vn0)/(sqrt((((vn0-1.0)*(vn0-1))+((4*modelPar_ajc)*modelPar_ajc)))+sqrt((((vn0+1.0)*(vn0+1))+((4*modelPar_art)*modelPar_art)))));
9304  vl0 = (0.5*(((vnl0*(modelPar_vrt-dv0))-modelPar_vrt)-dv0));
9305  qlo0 = ((pc_t*(1.0-pow((1.0-(vl0/pc_t)),(1.0-modelPar_mc))))/(1.0-modelPar_mc));
9306  vn = ((((2*Vbep)+modelPar_vrt)+dv0)/(modelPar_vrt-dv0));
9307  vnl = ((2.0*vn)/(sqrt((((vn-1.0)*(vn-1))+((4*modelPar_ajc)*modelPar_ajc)))+sqrt((((vn+1.0)*(vn+1))+((4*modelPar_art)*modelPar_art)))));
9308  vl = (0.5*(((vnl*(modelPar_vrt-dv0))-modelPar_vrt)-dv0));
9309  qlo = ((pc_t*(1.0-pow((1.0-(vl/pc_t)),(1.0-modelPar_mc))))/(1.0-modelPar_mc));
9310  sel = (0.5*(vnl+1.0));
9311  crt = pow((1.0+(modelPar_vrt/pc_t)),(-modelPar_mc));
9312  cmx = pow((1.0+(dv0/pc_t)),(-modelPar_mc));
9313  cl = (((1.0-sel)*crt)+(sel*cmx));
9314  ql = (((Vbep-vl)+vl0)*cl);
9315  qdbep = ((ql+qlo)-qlo0);
9316  }
9317  else
9318  {
9319  mv0 = sqrt(((dv0*dv0)+((4*modelPar_ajc)*modelPar_ajc)));
9320  vl0 = ((-0.5)*(dv0+mv0));
9321  q0 = (((-pc_t)*pow((1.0-(vl0/pc_t)),(1.0-modelPar_mc)))/(1.0-modelPar_mc));
9322  dv = (Vbep+dv0);
9323  mv = sqrt(((dv*dv)+((4*modelPar_ajc)*modelPar_ajc)));
9324  vl = ((0.5*(dv-mv))-dv0);
9325  qlo = (((-pc_t)*pow((1.0-(vl/pc_t)),(1.0-modelPar_mc)))/(1.0-modelPar_mc));
9326  qdbep = ((qlo+(pow((1.0-modelPar_fc),(-modelPar_mc))*((Vbep-vl)+vl0)))-q0);
9327  }
9328  }
9329  }
9330  // End block qdbepBlock
9331  sgIf = ((Ifi>0.0)?1.0:0.0);
9332  rIf = ((Ifi*sgIf)*Iitf);
9333  mIf = (rIf/(rIf+1.0));
9334  arg = ((Vbci*Ivtf)/1.44);
9335  if ((arg<VmaxExp))
9336  {
9337  expi = exp(arg);
9338  }
9339  else
9340  {
9341  expi = (exp(VmaxExp)*(1.0+(arg-VmaxExp)));
9342  }
9343  tff = ((modelPar_tf*(1.0+(modelPar_qtf*q1)))*(1.0+(((modelPar_xtf*expi)*(sltf+(mIf*mIf)))*sgIf)));
9344  Qbe = (((cje_t*qdbe)*modelPar_wbe)+((tff*Ifi)/qb));
9345  Qbex = ((cje_t*qdbex)*(1.0-modelPar_wbe));
9346  Qbc = (((cjc_t*qdbc)+(modelPar_tr*Iri))+(modelPar_qco*Kbci));
9347  Qbcx = (modelPar_qco*Kbcx);
9348  Qbep = ((cjep_t*qdbep)+(modelPar_tr*Ifp));
9349  Qbcp = ((cjcp_t*qdbcp)+(modelPar_ccso*Vbcp));
9350  Qbeo = (Vbe*modelPar_cbeo);
9351  Qbco = (Vbc*modelPar_cbco);
9352  Qcth = (dt_et*modelPar_cth);
9353  Qxf1 = (modelPar_td*Vxf1);
9354  Qxf2 = ((modelPar_td*Vxf2)*0.3333333333333333);
9355  Qbe = ((modelPar_VBICtype*mMod)*Qbe);
9356  Qbex = ((modelPar_VBICtype*mMod)*Qbex);
9357  Qbc = ((modelPar_VBICtype*mMod)*Qbc);
9358  Qbcx = ((modelPar_VBICtype*mMod)*Qbcx);
9359  Qbep = ((modelPar_VBICtype*mMod)*Qbep);
9360  Qbeo = (mMod*Qbeo);
9361  Qbco = (mMod*Qbco);
9362  Qbcp = ((modelPar_VBICtype*mMod)*Qbcp);
9363  Qcth = (mMod*Qcth);
9364  }
9365  // End block evaluateDynamic
9366  //Begin block loadStatic
9367  {
9368  // I(bi,ei) <+ (Ibe)
9369  staticContributions[admsNodeID_bi] += Ibe;
9370  staticContributions[admsNodeID_ei] -= Ibe;
9371  // I(bx,ei) <+ (Ibex)
9372  staticContributions[admsNodeID_bx] += Ibex;
9373  staticContributions[admsNodeID_ei] -= Ibex;
9374  // I(ci,ei) <+ (Itxf)
9375  staticContributions[admsNodeID_ci] += Itxf;
9376  staticContributions[admsNodeID_ei] -= Itxf;
9377  // I(ei,ci) <+ (Itzr)
9378  staticContributions[admsNodeID_ei] += Itzr;
9379  staticContributions[admsNodeID_ci] -= Itzr;
9380  // I(bi,ci) <+ (Ibc)
9381  staticContributions[admsNodeID_bi] += Ibc;
9382  staticContributions[admsNodeID_ci] -= Ibc;
9383  // I(bx,cx) <+ (Igcx)
9384  staticContributions[admsNodeID_bx] += Igcx;
9385  staticContributions[admsNodeID_cx] -= Igcx;
9386  // I(bx,bp) <+ (Ibep)
9387  staticContributions[admsNodeID_bx] += Ibep;
9388  staticContributions[admsNodeID_bp] -= Ibep;
9389  // I(c,cx) <+ (Ircx)
9390  staticContributions[admsNodeID_c] += Ircx;
9391  staticContributions[admsNodeID_cx] -= Ircx;
9392  // I(cx,ci) <+ (Irci)
9393  staticContributions[admsNodeID_cx] += Irci;
9394  staticContributions[admsNodeID_ci] -= Irci;
9395  // I(b,bx) <+ (Irbx)
9396  staticContributions[admsNodeID_b] += Irbx;
9397  staticContributions[admsNodeID_bx] -= Irbx;
9398  // I(bx,bi) <+ (Irbi)
9399  staticContributions[admsNodeID_bx] += Irbi;
9400  staticContributions[admsNodeID_bi] -= Irbi;
9401  // I(e,ei) <+ (Ire)
9402  staticContributions[admsNodeID_e] += Ire;
9403  staticContributions[admsNodeID_ei] -= Ire;
9404  // I(bp,cx) <+ (Irbp)
9405  staticContributions[admsNodeID_bp] += Irbp;
9406  staticContributions[admsNodeID_cx] -= Irbp;
9407  // I(si,bp) <+ (Ibcp)
9408  staticContributions[admsNodeID_si] += Ibcp;
9409  staticContributions[admsNodeID_bp] -= Ibcp;
9410  // I(bx,si) <+ (Iccp)
9411  staticContributions[admsNodeID_bx] += Iccp;
9412  staticContributions[admsNodeID_si] -= Iccp;
9413  // I(s,si) <+ (Irs)
9414  staticContributions[admsNodeID_s] += Irs;
9415  staticContributions[admsNodeID_si] -= Irs;
9416  // I(xf1,GND) <+ (Ixf1)
9417  staticContributions[admsNodeID_xf1] += Ixf1;
9418  // I(xf2,GND) <+ (Ixf2)
9419  staticContributions[admsNodeID_xf2] += Ixf2;
9420  // Pwr(dt,GND) <+ (Irth)
9421  staticContributions[admsNodeID_dt] += Irth;
9422  // Pwr(dt,GND) <+ (Ith)
9423  staticContributions[admsNodeID_dt] += Ith;
9424  }
9425  // End block loadStatic
9426  //Begin block loadDynamic
9427  {
9428  // I(bi,ei) <+ (ddt(Qbe))
9429  dynamicContributions[admsNodeID_bi] += (Qbe);
9430  dynamicContributions[admsNodeID_ei] -= (Qbe);
9431  // I(bx,ei) <+ (ddt(Qbex))
9432  dynamicContributions[admsNodeID_bx] += (Qbex);
9433  dynamicContributions[admsNodeID_ei] -= (Qbex);
9434  // I(bi,ci) <+ (ddt(Qbc))
9435  dynamicContributions[admsNodeID_bi] += (Qbc);
9436  dynamicContributions[admsNodeID_ci] -= (Qbc);
9437  // I(bi,cx) <+ (ddt(Qbcx))
9438  dynamicContributions[admsNodeID_bi] += (Qbcx);
9439  dynamicContributions[admsNodeID_cx] -= (Qbcx);
9440  // I(bx,bp) <+ (ddt(Qbep))
9441  dynamicContributions[admsNodeID_bx] += (Qbep);
9442  dynamicContributions[admsNodeID_bp] -= (Qbep);
9443  // I(b,e) <+ (ddt(Qbeo))
9444  dynamicContributions[admsNodeID_b] += (Qbeo);
9445  dynamicContributions[admsNodeID_e] -= (Qbeo);
9446  // I(b,c) <+ (ddt(Qbco))
9447  dynamicContributions[admsNodeID_b] += (Qbco);
9448  dynamicContributions[admsNodeID_c] -= (Qbco);
9449  // I(si,bp) <+ (ddt(Qbcp))
9450  dynamicContributions[admsNodeID_si] += (Qbcp);
9451  dynamicContributions[admsNodeID_bp] -= (Qbcp);
9452  // I(xf1,GND) <+ (ddt(Qxf1))
9453  dynamicContributions[admsNodeID_xf1] += (Qxf1);
9454  // I(xf2,GND) <+ (ddt(Qxf2))
9455  dynamicContributions[admsNodeID_xf2] += (Qxf2);
9456  // Pwr(dt,GND) <+ (ddt(Qcth))
9457  dynamicContributions[admsNodeID_dt] += (Qcth);
9458  }
9459  // End block loadDynamic
9460 }
9461 
9462 
9463 
9464 //-----------------------------------------------------------------------------
9465 // Function : InstanceSensitivity::operator()
9466 // Purpose : return sensitivity for a single instance parameter
9467 // Special Notes :
9468 // Scope : public
9469 // Creator : admsXml
9470 // Creation Date :
9471 //-----------------------------------------------------------------------------
9472 /// Compute sensitivity of a device instance's outputs to a specified instance
9473 /// parameter
9474 ///
9475 ///
9476 /// @param[in] entity The device entity that owns the parameter
9477 /// @param[in] name The unadorned parameter name specific to the entity
9478 /// @param[out] dfdp The derivative of the F vector with respect to the parameter
9479 /// @param[out] dqdp The derivative of the Q vector with respect to the parameter
9480 /// @param[out] dbdp The derivative of the B vector with respect to the parameter
9481 /// @param[out] Findices The indices into the F vector corresponding to the elements of dfdp
9482 /// @param[out] Qindices The indices into the Q vector corresponding to the elements of dfdp
9483 /// @param[out] Bindices The indices into the B vector corresponding to the elements of dfdp
9484 ///
9485 ///
9486 void InstanceSensitivity::operator()
9487  (
9488  const ParameterBase &entity,
9489  const std::string &name,
9490  std::vector<double> & dfdp,
9491  std::vector<double> & dqdp,
9492  std::vector<double> & dbdp,
9493  std::vector<int> & Findices,
9494  std::vector<int> & Qindices,
9495  std::vector<int> & Bindices
9496  ) const
9497 {
9498  const ParameterBase * e1 = &entity;
9499  const Instance & in = *(dynamic_cast<const Instance *> (e1));
9500  const Model & mod =in.model_;
9501 
9502  dfdp.resize(14+0);
9503  dqdp.resize(14+0);
9504  Findices.resize(14+0);
9505  Qindices.resize(14+0);
9506 
9507  std::vector <double> probeVars(21);
9508  std::vector <AdmsSensFadType> staticContributions(14+0);
9509  std::vector <AdmsSensFadType> dynamicContributions(14+0);
9510 
9511 
9512  // initialize contributions to zero (automatically sets derivatives to zero)
9513  for (int i=0; i < 14+0 ; ++i)
9514  {
9515  staticContributions[i]=0;
9516  dynamicContributions[i]=0;
9517  }
9518 
9519  // Copy out all the model parameters (doubles) into FAD types
9520  //reals
9521  AdmsSensFadType modelPar_npn=mod.npn;
9522  bool modelPar_given_npn=mod.given("npn");
9523  AdmsSensFadType modelPar_pnp=mod.pnp;
9524  bool modelPar_given_pnp=mod.given("pnp");
9525  AdmsSensFadType modelPar_scale=mod.scale;
9526  bool modelPar_given_scale=mod.given("scale");
9527  AdmsSensFadType modelPar_shrink=mod.shrink;
9528  bool modelPar_given_shrink=mod.given("shrink");
9529  AdmsSensFadType modelPar_tmin=mod.tmin;
9530  bool modelPar_given_tmin=mod.given("tmin");
9531  AdmsSensFadType modelPar_tmax=mod.tmax;
9532  bool modelPar_given_tmax=mod.given("tmax");
9533  AdmsSensFadType modelPar_gmin=mod.gmin;
9534  bool modelPar_given_gmin=mod.given("gmin");
9535  AdmsSensFadType modelPar_pnjmaxi=mod.pnjmaxi;
9536  bool modelPar_given_pnjmaxi=mod.given("pnjmaxi");
9537  AdmsSensFadType modelPar_maxexp=mod.maxexp;
9538  bool modelPar_given_maxexp=mod.given("maxexp");
9539  AdmsSensFadType modelPar_tnom=mod.tnom;
9540  bool modelPar_given_tnom=mod.given("tnom");
9541  AdmsSensFadType modelPar_tminclip=mod.tminclip;
9542  bool modelPar_given_tminclip=mod.given("tminclip");
9543  AdmsSensFadType modelPar_tmaxclip=mod.tmaxclip;
9544  bool modelPar_given_tmaxclip=mod.given("tmaxclip");
9545  AdmsSensFadType modelPar_rcx=mod.rcx;
9546  bool modelPar_given_rcx=mod.given("rcx");
9547  AdmsSensFadType modelPar_rci=mod.rci;
9548  bool modelPar_given_rci=mod.given("rci");
9549  AdmsSensFadType modelPar_vo=mod.vo;
9550  bool modelPar_given_vo=mod.given("vo");
9551  AdmsSensFadType modelPar_gamm=mod.gamm;
9552  bool modelPar_given_gamm=mod.given("gamm");
9553  AdmsSensFadType modelPar_hrcf=mod.hrcf;
9554  bool modelPar_given_hrcf=mod.given("hrcf");
9555  AdmsSensFadType modelPar_rbx=mod.rbx;
9556  bool modelPar_given_rbx=mod.given("rbx");
9557  AdmsSensFadType modelPar_rbi=mod.rbi;
9558  bool modelPar_given_rbi=mod.given("rbi");
9559  AdmsSensFadType modelPar_re=mod.re;
9560  bool modelPar_given_re=mod.given("re");
9561  AdmsSensFadType modelPar_rs=mod.rs;
9562  bool modelPar_given_rs=mod.given("rs");
9563  AdmsSensFadType modelPar_rbp=mod.rbp;
9564  bool modelPar_given_rbp=mod.given("rbp");
9565  AdmsSensFadType modelPar_is=mod.is;
9566  bool modelPar_given_is=mod.given("is");
9567  AdmsSensFadType modelPar_isrr=mod.isrr;
9568  bool modelPar_given_isrr=mod.given("isrr");
9569  AdmsSensFadType modelPar_nf=mod.nf;
9570  bool modelPar_given_nf=mod.given("nf");
9571  AdmsSensFadType modelPar_nr=mod.nr;
9572  bool modelPar_given_nr=mod.given("nr");
9573  AdmsSensFadType modelPar_isp=mod.isp;
9574  bool modelPar_given_isp=mod.given("isp");
9575  AdmsSensFadType modelPar_wsp=mod.wsp;
9576  bool modelPar_given_wsp=mod.given("wsp");
9577  AdmsSensFadType modelPar_nfp=mod.nfp;
9578  bool modelPar_given_nfp=mod.given("nfp");
9579  AdmsSensFadType modelPar_fc=mod.fc;
9580  bool modelPar_given_fc=mod.given("fc");
9581  AdmsSensFadType modelPar_cbeo=mod.cbeo;
9582  bool modelPar_given_cbeo=mod.given("cbeo");
9583  AdmsSensFadType modelPar_cje=mod.cje;
9584  bool modelPar_given_cje=mod.given("cje");
9585  AdmsSensFadType modelPar_pe=mod.pe;
9586  bool modelPar_given_pe=mod.given("pe");
9587  AdmsSensFadType modelPar_me=mod.me;
9588  bool modelPar_given_me=mod.given("me");
9589  AdmsSensFadType modelPar_aje=mod.aje;
9590  bool modelPar_given_aje=mod.given("aje");
9591  AdmsSensFadType modelPar_cbco=mod.cbco;
9592  bool modelPar_given_cbco=mod.given("cbco");
9593  AdmsSensFadType modelPar_cjc=mod.cjc;
9594  bool modelPar_given_cjc=mod.given("cjc");
9595  AdmsSensFadType modelPar_pc=mod.pc;
9596  bool modelPar_given_pc=mod.given("pc");
9597  AdmsSensFadType modelPar_mc=mod.mc;
9598  bool modelPar_given_mc=mod.given("mc");
9599  AdmsSensFadType modelPar_ajc=mod.ajc;
9600  bool modelPar_given_ajc=mod.given("ajc");
9601  AdmsSensFadType modelPar_vrt=mod.vrt;
9602  bool modelPar_given_vrt=mod.given("vrt");
9603  AdmsSensFadType modelPar_art=mod.art;
9604  bool modelPar_given_art=mod.given("art");
9605  AdmsSensFadType modelPar_qco=mod.qco;
9606  bool modelPar_given_qco=mod.given("qco");
9607  AdmsSensFadType modelPar_cjep=mod.cjep;
9608  bool modelPar_given_cjep=mod.given("cjep");
9609  AdmsSensFadType modelPar_cjcp=mod.cjcp;
9610  bool modelPar_given_cjcp=mod.given("cjcp");
9611  AdmsSensFadType modelPar_ps=mod.ps;
9612  bool modelPar_given_ps=mod.given("ps");
9613  AdmsSensFadType modelPar_ms=mod.ms;
9614  bool modelPar_given_ms=mod.given("ms");
9615  AdmsSensFadType modelPar_ajs=mod.ajs;
9616  bool modelPar_given_ajs=mod.given("ajs");
9617  AdmsSensFadType modelPar_ccso=mod.ccso;
9618  bool modelPar_given_ccso=mod.given("ccso");
9619  AdmsSensFadType modelPar_ibei=mod.ibei;
9620  bool modelPar_given_ibei=mod.given("ibei");
9621  AdmsSensFadType modelPar_wbe=mod.wbe;
9622  bool modelPar_given_wbe=mod.given("wbe");
9623  AdmsSensFadType modelPar_nei=mod.nei;
9624  bool modelPar_given_nei=mod.given("nei");
9625  AdmsSensFadType modelPar_qnibeir=mod.qnibeir;
9626  bool modelPar_given_qnibeir=mod.given("qnibeir");
9627  AdmsSensFadType modelPar_iben=mod.iben;
9628  bool modelPar_given_iben=mod.given("iben");
9629  AdmsSensFadType modelPar_nen=mod.nen;
9630  bool modelPar_given_nen=mod.given("nen");
9631  AdmsSensFadType modelPar_ibci=mod.ibci;
9632  bool modelPar_given_ibci=mod.given("ibci");
9633  AdmsSensFadType modelPar_nci=mod.nci;
9634  bool modelPar_given_nci=mod.given("nci");
9635  AdmsSensFadType modelPar_ibcn=mod.ibcn;
9636  bool modelPar_given_ibcn=mod.given("ibcn");
9637  AdmsSensFadType modelPar_ncn=mod.ncn;
9638  bool modelPar_given_ncn=mod.given("ncn");
9639  AdmsSensFadType modelPar_ibeip=mod.ibeip;
9640  bool modelPar_given_ibeip=mod.given("ibeip");
9641  AdmsSensFadType modelPar_ibenp=mod.ibenp;
9642  bool modelPar_given_ibenp=mod.given("ibenp");
9643  AdmsSensFadType modelPar_ibcip=mod.ibcip;
9644  bool modelPar_given_ibcip=mod.given("ibcip");
9645  AdmsSensFadType modelPar_ncip=mod.ncip;
9646  bool modelPar_given_ncip=mod.given("ncip");
9647  AdmsSensFadType modelPar_ibcnp=mod.ibcnp;
9648  bool modelPar_given_ibcnp=mod.given("ibcnp");
9649  AdmsSensFadType modelPar_ncnp=mod.ncnp;
9650  bool modelPar_given_ncnp=mod.given("ncnp");
9651  AdmsSensFadType modelPar_vef=mod.vef;
9652  bool modelPar_given_vef=mod.given("vef");
9653  AdmsSensFadType modelPar_ver=mod.ver;
9654  bool modelPar_given_ver=mod.given("ver");
9655  AdmsSensFadType modelPar_ikf=mod.ikf;
9656  bool modelPar_given_ikf=mod.given("ikf");
9657  AdmsSensFadType modelPar_nkf=mod.nkf;
9658  bool modelPar_given_nkf=mod.given("nkf");
9659  AdmsSensFadType modelPar_ikr=mod.ikr;
9660  bool modelPar_given_ikr=mod.given("ikr");
9661  AdmsSensFadType modelPar_ikp=mod.ikp;
9662  bool modelPar_given_ikp=mod.given("ikp");
9663  AdmsSensFadType modelPar_tf=mod.tf;
9664  bool modelPar_given_tf=mod.given("tf");
9665  AdmsSensFadType modelPar_qtf=mod.qtf;
9666  bool modelPar_given_qtf=mod.given("qtf");
9667  AdmsSensFadType modelPar_xtf=mod.xtf;
9668  bool modelPar_given_xtf=mod.given("xtf");
9669  AdmsSensFadType modelPar_vtf=mod.vtf;
9670  bool modelPar_given_vtf=mod.given("vtf");
9671  AdmsSensFadType modelPar_itf=mod.itf;
9672  bool modelPar_given_itf=mod.given("itf");
9673  AdmsSensFadType modelPar_tr=mod.tr;
9674  bool modelPar_given_tr=mod.given("tr");
9675  AdmsSensFadType modelPar_td=mod.td;
9676  bool modelPar_given_td=mod.given("td");
9677  AdmsSensFadType modelPar_avc1=mod.avc1;
9678  bool modelPar_given_avc1=mod.given("avc1");
9679  AdmsSensFadType modelPar_avc2=mod.avc2;
9680  bool modelPar_given_avc2=mod.given("avc2");
9681  AdmsSensFadType modelPar_avcx1=mod.avcx1;
9682  bool modelPar_given_avcx1=mod.given("avcx1");
9683  AdmsSensFadType modelPar_avcx2=mod.avcx2;
9684  bool modelPar_given_avcx2=mod.given("avcx2");
9685  AdmsSensFadType modelPar_mcx=mod.mcx;
9686  bool modelPar_given_mcx=mod.given("mcx");
9687  AdmsSensFadType modelPar_vbbe=mod.vbbe;
9688  bool modelPar_given_vbbe=mod.given("vbbe");
9689  AdmsSensFadType modelPar_nbbe=mod.nbbe;
9690  bool modelPar_given_nbbe=mod.given("nbbe");
9691  AdmsSensFadType modelPar_ibbe=mod.ibbe;
9692  bool modelPar_given_ibbe=mod.given("ibbe");
9693  AdmsSensFadType modelPar_tvbbe1=mod.tvbbe1;
9694  bool modelPar_given_tvbbe1=mod.given("tvbbe1");
9695  AdmsSensFadType modelPar_tvbbe2=mod.tvbbe2;
9696  bool modelPar_given_tvbbe2=mod.given("tvbbe2");
9697  AdmsSensFadType modelPar_tnbbe=mod.tnbbe;
9698  bool modelPar_given_tnbbe=mod.given("tnbbe");
9699  AdmsSensFadType modelPar_vpte=mod.vpte;
9700  bool modelPar_given_vpte=mod.given("vpte");
9701  AdmsSensFadType modelPar_ibk0=mod.ibk0;
9702  bool modelPar_given_ibk0=mod.given("ibk0");
9703  AdmsSensFadType modelPar_abk=mod.abk;
9704  bool modelPar_given_abk=mod.given("abk");
9705  AdmsSensFadType modelPar_bbk=mod.bbk;
9706  bool modelPar_given_bbk=mod.given("bbk");
9707  AdmsSensFadType modelPar_kfn=mod.kfn;
9708  bool modelPar_given_kfn=mod.given("kfn");
9709  AdmsSensFadType modelPar_afn=mod.afn;
9710  bool modelPar_given_afn=mod.given("afn");
9711  AdmsSensFadType modelPar_bfn=mod.bfn;
9712  bool modelPar_given_bfn=mod.given("bfn");
9713  AdmsSensFadType modelPar_rth=mod.rth;
9714  bool modelPar_given_rth=mod.given("rth");
9715  AdmsSensFadType modelPar_cth=mod.cth;
9716  bool modelPar_given_cth=mod.given("cth");
9717  AdmsSensFadType modelPar_xre=mod.xre;
9718  bool modelPar_given_xre=mod.given("xre");
9719  AdmsSensFadType modelPar_xrb=mod.xrb;
9720  bool modelPar_given_xrb=mod.given("xrb");
9721  AdmsSensFadType modelPar_xrbi=mod.xrbi;
9722  bool modelPar_given_xrbi=mod.given("xrbi");
9723  AdmsSensFadType modelPar_xrbx=mod.xrbx;
9724  bool modelPar_given_xrbx=mod.given("xrbx");
9725  AdmsSensFadType modelPar_xrc=mod.xrc;
9726  bool modelPar_given_xrc=mod.given("xrc");
9727  AdmsSensFadType modelPar_xrci=mod.xrci;
9728  bool modelPar_given_xrci=mod.given("xrci");
9729  AdmsSensFadType modelPar_xrcx=mod.xrcx;
9730  bool modelPar_given_xrcx=mod.given("xrcx");
9731  AdmsSensFadType modelPar_xrbp=mod.xrbp;
9732  bool modelPar_given_xrbp=mod.given("xrbp");
9733  AdmsSensFadType modelPar_xrs=mod.xrs;
9734  bool modelPar_given_xrs=mod.given("xrs");
9735  AdmsSensFadType modelPar_xvo=mod.xvo;
9736  bool modelPar_given_xvo=mod.given("xvo");
9737  AdmsSensFadType modelPar_ea=mod.ea;
9738  bool modelPar_given_ea=mod.given("ea");
9739  AdmsSensFadType modelPar_eaie=mod.eaie;
9740  bool modelPar_given_eaie=mod.given("eaie");
9741  AdmsSensFadType modelPar_eaic=mod.eaic;
9742  bool modelPar_given_eaic=mod.given("eaic");
9743  AdmsSensFadType modelPar_eais=mod.eais;
9744  bool modelPar_given_eais=mod.given("eais");
9745  AdmsSensFadType modelPar_eane=mod.eane;
9746  bool modelPar_given_eane=mod.given("eane");
9747  AdmsSensFadType modelPar_eanc=mod.eanc;
9748  bool modelPar_given_eanc=mod.given("eanc");
9749  AdmsSensFadType modelPar_eans=mod.eans;
9750  bool modelPar_given_eans=mod.given("eans");
9751  AdmsSensFadType modelPar_eap=mod.eap;
9752  bool modelPar_given_eap=mod.given("eap");
9753  AdmsSensFadType modelPar_dear=mod.dear;
9754  bool modelPar_given_dear=mod.given("dear");
9755  AdmsSensFadType modelPar_xis=mod.xis;
9756  bool modelPar_given_xis=mod.given("xis");
9757  AdmsSensFadType modelPar_xii=mod.xii;
9758  bool modelPar_given_xii=mod.given("xii");
9759  AdmsSensFadType modelPar_xin=mod.xin;
9760  bool modelPar_given_xin=mod.given("xin");
9761  AdmsSensFadType modelPar_xisr=mod.xisr;
9762  bool modelPar_given_xisr=mod.given("xisr");
9763  AdmsSensFadType modelPar_xikf=mod.xikf;
9764  bool modelPar_given_xikf=mod.given("xikf");
9765  AdmsSensFadType modelPar_tavc=mod.tavc;
9766  bool modelPar_given_tavc=mod.given("tavc");
9767  AdmsSensFadType modelPar_tavcx=mod.tavcx;
9768  bool modelPar_given_tavcx=mod.given("tavcx");
9769  AdmsSensFadType modelPar_tnf=mod.tnf;
9770  bool modelPar_given_tnf=mod.given("tnf");
9771  AdmsSensFadType modelPar_tcvef=mod.tcvef;
9772  bool modelPar_given_tcvef=mod.given("tcvef");
9773  AdmsSensFadType modelPar_tcver=mod.tcver;
9774  bool modelPar_given_tcver=mod.given("tcver");
9775  AdmsSensFadType modelPar_tcrth=mod.tcrth;
9776  bool modelPar_given_tcrth=mod.given("tcrth");
9777 
9778 
9779  // hidden reals
9780 
9781 
9782  // non-reals (including hiddens)
9783  int modelPar_type=mod.type;
9784  bool modelPar_given_type=mod.given("type");
9785  int modelPar_VBICtype=mod.VBICtype;
9786  int modelPar_qbm=mod.qbm;
9787  bool modelPar_given_qbm=mod.given("qbm");
9788 
9789 
9790 
9791  // Copy out all the instance parameters (doubles) into FAD types
9792  // Keep a map so we can set the right one to the independent variable
9793  // We do this solely to avoid a big ugly "if/else" block just to find the
9794  // one parameter we're doing sensitivities on.
9795  unordered_map <std::string,AdmsSensFadType*,HashNoCase,EqualNoCase> inParamMap;
9796 
9797  // reals
9798  AdmsSensFadType instancePar_m=in.m;
9799  bool instancePar_given_m=in.given("m");
9800  inParamMap["m"] = &instancePar_m;
9801  AdmsSensFadType instancePar_trise=in.trise;
9802  bool instancePar_given_trise=in.given("trise");
9803  inParamMap["trise"] = &instancePar_trise;
9804 
9805 
9806  // Copy all the real hidden instance params into fad types
9807 
9808 
9809 
9810  // Copy all the non-real instance params into vars of their appropriate type:
9811  int instancePar_sw_noise=in.sw_noise;
9812  bool instancePar_given_sw_noise=in.given("sw_noise");
9813  int instancePar_sw_et=in.sw_et;
9814  bool instancePar_given_sw_et=in.given("sw_et");
9815 
9816 
9817  // Set the one parameter whose name was passed in to be the independent
9818  // variable for Sacado purposes. Since we stored variable pointers, this
9819  // makes sure that that ONE variable gets set right.
9820  // FIXME: make this check the name first, otherwise segfault on invalid name!
9821  inParamMap[name]->diff(0,1);
9822 
9823  //make local copies of all instance vars
9824  //reals
9825 
9826 
9827  //non-reals
9828 
9829 
9830  //make local copies of all model vars
9831  //reals
9832 
9833 
9834  // non-reals
9835 
9836 
9837 
9838  Linear::Vector * solVectorPtr = in.extData.nextSolVectorPtr;
9839 
9840  // extract solution variables and set as Fad independent variables.
9841 
9842  probeVars[in.admsProbeID_V_xf2_GND] = (*solVectorPtr)[in.li_xf2];
9843  probeVars[in.admsProbeID_V_xf1_GND] = (*solVectorPtr)[in.li_xf1];
9844  probeVars[in.admsProbeID_V_s_si] = (*solVectorPtr)[in.li_s] - (*solVectorPtr)[in.li_si];
9845  probeVars[in.admsProbeID_V_bx_si] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_si];
9846  probeVars[in.admsProbeID_V_si_bp] = (*solVectorPtr)[in.li_si] - (*solVectorPtr)[in.li_bp];
9847  probeVars[in.admsProbeID_V_bp_cx] = (*solVectorPtr)[in.li_bp] - (*solVectorPtr)[in.li_cx];
9848  probeVars[in.admsProbeID_V_e_ei] = (*solVectorPtr)[in.li_e] - (*solVectorPtr)[in.li_ei];
9849  probeVars[in.admsProbeID_V_bx_bi] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_bi];
9850  probeVars[in.admsProbeID_V_b_bx] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_bx];
9851  probeVars[in.admsProbeID_V_cx_ci] = (*solVectorPtr)[in.li_cx] - (*solVectorPtr)[in.li_ci];
9852  probeVars[in.admsProbeID_V_c_cx] = (*solVectorPtr)[in.li_c] - (*solVectorPtr)[in.li_cx];
9853  probeVars[in.admsProbeID_V_b_c] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_c];
9854  probeVars[in.admsProbeID_V_b_e] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_e];
9855  probeVars[in.admsProbeID_V_bx_bp] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_bp];
9856  probeVars[in.admsProbeID_V_ci_ei] = (*solVectorPtr)[in.li_ci] - (*solVectorPtr)[in.li_ei];
9857  probeVars[in.admsProbeID_V_bx_cx] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_cx];
9858  probeVars[in.admsProbeID_V_bi_cx] = (*solVectorPtr)[in.li_bi] - (*solVectorPtr)[in.li_cx];
9859  probeVars[in.admsProbeID_V_bi_ci] = (*solVectorPtr)[in.li_bi] - (*solVectorPtr)[in.li_ci];
9860  probeVars[in.admsProbeID_V_bx_ei] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_ei];
9861  probeVars[in.admsProbeID_V_bi_ei] = (*solVectorPtr)[in.li_bi] - (*solVectorPtr)[in.li_ei];
9862  probeVars[in.admsProbeID_Temp_dt_GND] = (*solVectorPtr)[in.li_dt];
9863 
9864  // pre-multiply any "typed" probes (i.e. those limited with "typedpnjlim")
9865  probeVars[in.admsProbeID_V_bx_bp] *= modelPar_VBICtype;
9866  probeVars[in.admsProbeID_V_bx_cx] *= modelPar_VBICtype;
9867  probeVars[in.admsProbeID_V_bi_cx] *= modelPar_VBICtype;
9868  probeVars[in.admsProbeID_V_bi_ci] *= modelPar_VBICtype;
9869  probeVars[in.admsProbeID_V_bx_ei] *= modelPar_VBICtype;
9870  probeVars[in.admsProbeID_V_bi_ei] *= modelPar_VBICtype;
9871 
9872 
9873 
9874  // Now call the function that does the heavy lifting.
9875  evaluateModelEquations(
9876  probeVars,
9877  // probe constants
9878  in.admsProbeID_V_xf2_GND,
9879  in.admsProbeID_V_xf1_GND,
9880  in.admsProbeID_V_s_si,
9881  in.admsProbeID_V_bx_si,
9882  in.admsProbeID_V_si_bp,
9883  in.admsProbeID_V_bp_cx,
9884  in.admsProbeID_V_e_ei,
9885  in.admsProbeID_V_bx_bi,
9886  in.admsProbeID_V_b_bx,
9887  in.admsProbeID_V_cx_ci,
9888  in.admsProbeID_V_c_cx,
9889  in.admsProbeID_V_b_c,
9890  in.admsProbeID_V_b_e,
9891  in.admsProbeID_V_bx_bp,
9892  in.admsProbeID_V_ci_ei,
9893  in.admsProbeID_V_bx_cx,
9894  in.admsProbeID_V_bi_cx,
9895  in.admsProbeID_V_bi_ci,
9896  in.admsProbeID_V_bx_ei,
9897  in.admsProbeID_V_bi_ei,
9898  in.admsProbeID_Temp_dt_GND,
9899 
9900  // node constants
9901  in.admsNodeID_c,
9902  in.admsNodeID_b,
9903  in.admsNodeID_e,
9904  in.admsNodeID_s,
9905  in.admsNodeID_dt,
9906  in.admsNodeID_cx,
9907  in.admsNodeID_ci,
9908  in.admsNodeID_bx,
9909  in.admsNodeID_bi,
9910  in.admsNodeID_ei,
9911  in.admsNodeID_bp,
9912  in.admsNodeID_si,
9913  in.admsNodeID_xf1,
9914  in.admsNodeID_xf2,
9915  // instance parameters
9916  // reals
9917  instancePar_m,
9918  instancePar_given_m,
9919  instancePar_trise,
9920  instancePar_given_trise,
9921  // non-reals(including hidden)
9922  instancePar_sw_noise,
9923  instancePar_given_sw_noise,
9924  instancePar_sw_et,
9925  instancePar_given_sw_et,
9926  // model parameters
9927  // reals
9928  modelPar_npn,
9929  modelPar_given_npn,
9930  modelPar_pnp,
9931  modelPar_given_pnp,
9932  modelPar_scale,
9933  modelPar_given_scale,
9934  modelPar_shrink,
9935  modelPar_given_shrink,
9936  modelPar_tmin,
9937  modelPar_given_tmin,
9938  modelPar_tmax,
9939  modelPar_given_tmax,
9940  modelPar_gmin,
9941  modelPar_given_gmin,
9942  modelPar_pnjmaxi,
9943  modelPar_given_pnjmaxi,
9944  modelPar_maxexp,
9945  modelPar_given_maxexp,
9946  modelPar_tnom,
9947  modelPar_given_tnom,
9948  modelPar_tminclip,
9949  modelPar_given_tminclip,
9950  modelPar_tmaxclip,
9951  modelPar_given_tmaxclip,
9952  modelPar_rcx,
9953  modelPar_given_rcx,
9954  modelPar_rci,
9955  modelPar_given_rci,
9956  modelPar_vo,
9957  modelPar_given_vo,
9958  modelPar_gamm,
9959  modelPar_given_gamm,
9960  modelPar_hrcf,
9961  modelPar_given_hrcf,
9962  modelPar_rbx,
9963  modelPar_given_rbx,
9964  modelPar_rbi,
9965  modelPar_given_rbi,
9966  modelPar_re,
9967  modelPar_given_re,
9968  modelPar_rs,
9969  modelPar_given_rs,
9970  modelPar_rbp,
9971  modelPar_given_rbp,
9972  modelPar_is,
9973  modelPar_given_is,
9974  modelPar_isrr,
9975  modelPar_given_isrr,
9976  modelPar_nf,
9977  modelPar_given_nf,
9978  modelPar_nr,
9979  modelPar_given_nr,
9980  modelPar_isp,
9981  modelPar_given_isp,
9982  modelPar_wsp,
9983  modelPar_given_wsp,
9984  modelPar_nfp,
9985  modelPar_given_nfp,
9986  modelPar_fc,
9987  modelPar_given_fc,
9988  modelPar_cbeo,
9989  modelPar_given_cbeo,
9990  modelPar_cje,
9991  modelPar_given_cje,
9992  modelPar_pe,
9993  modelPar_given_pe,
9994  modelPar_me,
9995  modelPar_given_me,
9996  modelPar_aje,
9997  modelPar_given_aje,
9998  modelPar_cbco,
9999  modelPar_given_cbco,
10000  modelPar_cjc,
10001  modelPar_given_cjc,
10002  modelPar_pc,
10003  modelPar_given_pc,
10004  modelPar_mc,
10005  modelPar_given_mc,
10006  modelPar_ajc,
10007  modelPar_given_ajc,
10008  modelPar_vrt,
10009  modelPar_given_vrt,
10010  modelPar_art,
10011  modelPar_given_art,
10012  modelPar_qco,
10013  modelPar_given_qco,
10014  modelPar_cjep,
10015  modelPar_given_cjep,
10016  modelPar_cjcp,
10017  modelPar_given_cjcp,
10018  modelPar_ps,
10019  modelPar_given_ps,
10020  modelPar_ms,
10021  modelPar_given_ms,
10022  modelPar_ajs,
10023  modelPar_given_ajs,
10024  modelPar_ccso,
10025  modelPar_given_ccso,
10026  modelPar_ibei,
10027  modelPar_given_ibei,
10028  modelPar_wbe,
10029  modelPar_given_wbe,
10030  modelPar_nei,
10031  modelPar_given_nei,
10032  modelPar_qnibeir,
10033  modelPar_given_qnibeir,
10034  modelPar_iben,
10035  modelPar_given_iben,
10036  modelPar_nen,
10037  modelPar_given_nen,
10038  modelPar_ibci,
10039  modelPar_given_ibci,
10040  modelPar_nci,
10041  modelPar_given_nci,
10042  modelPar_ibcn,
10043  modelPar_given_ibcn,
10044  modelPar_ncn,
10045  modelPar_given_ncn,
10046  modelPar_ibeip,
10047  modelPar_given_ibeip,
10048  modelPar_ibenp,
10049  modelPar_given_ibenp,
10050  modelPar_ibcip,
10051  modelPar_given_ibcip,
10052  modelPar_ncip,
10053  modelPar_given_ncip,
10054  modelPar_ibcnp,
10055  modelPar_given_ibcnp,
10056  modelPar_ncnp,
10057  modelPar_given_ncnp,
10058  modelPar_vef,
10059  modelPar_given_vef,
10060  modelPar_ver,
10061  modelPar_given_ver,
10062  modelPar_ikf,
10063  modelPar_given_ikf,
10064  modelPar_nkf,
10065  modelPar_given_nkf,
10066  modelPar_ikr,
10067  modelPar_given_ikr,
10068  modelPar_ikp,
10069  modelPar_given_ikp,
10070  modelPar_tf,
10071  modelPar_given_tf,
10072  modelPar_qtf,
10073  modelPar_given_qtf,
10074  modelPar_xtf,
10075  modelPar_given_xtf,
10076  modelPar_vtf,
10077  modelPar_given_vtf,
10078  modelPar_itf,
10079  modelPar_given_itf,
10080  modelPar_tr,
10081  modelPar_given_tr,
10082  modelPar_td,
10083  modelPar_given_td,
10084  modelPar_avc1,
10085  modelPar_given_avc1,
10086  modelPar_avc2,
10087  modelPar_given_avc2,
10088  modelPar_avcx1,
10089  modelPar_given_avcx1,
10090  modelPar_avcx2,
10091  modelPar_given_avcx2,
10092  modelPar_mcx,
10093  modelPar_given_mcx,
10094  modelPar_vbbe,
10095  modelPar_given_vbbe,
10096  modelPar_nbbe,
10097  modelPar_given_nbbe,
10098  modelPar_ibbe,
10099  modelPar_given_ibbe,
10100  modelPar_tvbbe1,
10101  modelPar_given_tvbbe1,
10102  modelPar_tvbbe2,
10103  modelPar_given_tvbbe2,
10104  modelPar_tnbbe,
10105  modelPar_given_tnbbe,
10106  modelPar_vpte,
10107  modelPar_given_vpte,
10108  modelPar_ibk0,
10109  modelPar_given_ibk0,
10110  modelPar_abk,
10111  modelPar_given_abk,
10112  modelPar_bbk,
10113  modelPar_given_bbk,
10114  modelPar_kfn,
10115  modelPar_given_kfn,
10116  modelPar_afn,
10117  modelPar_given_afn,
10118  modelPar_bfn,
10119  modelPar_given_bfn,
10120  modelPar_rth,
10121  modelPar_given_rth,
10122  modelPar_cth,
10123  modelPar_given_cth,
10124  modelPar_xre,
10125  modelPar_given_xre,
10126  modelPar_xrb,
10127  modelPar_given_xrb,
10128  modelPar_xrbi,
10129  modelPar_given_xrbi,
10130  modelPar_xrbx,
10131  modelPar_given_xrbx,
10132  modelPar_xrc,
10133  modelPar_given_xrc,
10134  modelPar_xrci,
10135  modelPar_given_xrci,
10136  modelPar_xrcx,
10137  modelPar_given_xrcx,
10138  modelPar_xrbp,
10139  modelPar_given_xrbp,
10140  modelPar_xrs,
10141  modelPar_given_xrs,
10142  modelPar_xvo,
10143  modelPar_given_xvo,
10144  modelPar_ea,
10145  modelPar_given_ea,
10146  modelPar_eaie,
10147  modelPar_given_eaie,
10148  modelPar_eaic,
10149  modelPar_given_eaic,
10150  modelPar_eais,
10151  modelPar_given_eais,
10152  modelPar_eane,
10153  modelPar_given_eane,
10154  modelPar_eanc,
10155  modelPar_given_eanc,
10156  modelPar_eans,
10157  modelPar_given_eans,
10158  modelPar_eap,
10159  modelPar_given_eap,
10160  modelPar_dear,
10161  modelPar_given_dear,
10162  modelPar_xis,
10163  modelPar_given_xis,
10164  modelPar_xii,
10165  modelPar_given_xii,
10166  modelPar_xin,
10167  modelPar_given_xin,
10168  modelPar_xisr,
10169  modelPar_given_xisr,
10170  modelPar_xikf,
10171  modelPar_given_xikf,
10172  modelPar_tavc,
10173  modelPar_given_tavc,
10174  modelPar_tavcx,
10175  modelPar_given_tavcx,
10176  modelPar_tnf,
10177  modelPar_given_tnf,
10178  modelPar_tcvef,
10179  modelPar_given_tcvef,
10180  modelPar_tcver,
10181  modelPar_given_tcver,
10182  modelPar_tcrth,
10183  modelPar_given_tcrth,
10184  // non-reals (including hidden)
10185  modelPar_type,
10186  modelPar_given_type,
10187  modelPar_VBICtype,
10188  modelPar_qbm,
10189  modelPar_given_qbm,
10190  in.admsTemperature,
10191  in.adms_vt_nom,
10192  in.getDeviceOptions().gmin,
10193  staticContributions,
10194  dynamicContributions,
10195  in);
10196 
10197 
10198  // We now have the F and Q vector stuff, populate the dependencies:
10199 
10200  dfdp[in.admsNodeID_c] += staticContributions[in.admsNodeID_c].dx(0);
10201  dqdp[in.admsNodeID_c] += dynamicContributions[in.admsNodeID_c].dx(0);
10202  Findices[in.admsNodeID_c] = in.li_c;
10203  Qindices[in.admsNodeID_c] = in.li_c;
10204  dfdp[in.admsNodeID_b] += staticContributions[in.admsNodeID_b].dx(0);
10205  dqdp[in.admsNodeID_b] += dynamicContributions[in.admsNodeID_b].dx(0);
10206  Findices[in.admsNodeID_b] = in.li_b;
10207  Qindices[in.admsNodeID_b] = in.li_b;
10208  dfdp[in.admsNodeID_e] += staticContributions[in.admsNodeID_e].dx(0);
10209  dqdp[in.admsNodeID_e] += dynamicContributions[in.admsNodeID_e].dx(0);
10210  Findices[in.admsNodeID_e] = in.li_e;
10211  Qindices[in.admsNodeID_e] = in.li_e;
10212  dfdp[in.admsNodeID_s] += staticContributions[in.admsNodeID_s].dx(0);
10213  dqdp[in.admsNodeID_s] += dynamicContributions[in.admsNodeID_s].dx(0);
10214  Findices[in.admsNodeID_s] = in.li_s;
10215  Qindices[in.admsNodeID_s] = in.li_s;
10216  dfdp[in.admsNodeID_dt] += staticContributions[in.admsNodeID_dt].dx(0);
10217  dqdp[in.admsNodeID_dt] += dynamicContributions[in.admsNodeID_dt].dx(0);
10218  Findices[in.admsNodeID_dt] = in.li_dt;
10219  Qindices[in.admsNodeID_dt] = in.li_dt;
10220  dfdp[in.admsNodeID_cx] += staticContributions[in.admsNodeID_cx].dx(0);
10221  dqdp[in.admsNodeID_cx] += dynamicContributions[in.admsNodeID_cx].dx(0);
10222  Findices[in.admsNodeID_cx] = in.li_cx;
10223  Qindices[in.admsNodeID_cx] = in.li_cx;
10224  dfdp[in.admsNodeID_ci] += staticContributions[in.admsNodeID_ci].dx(0);
10225  dqdp[in.admsNodeID_ci] += dynamicContributions[in.admsNodeID_ci].dx(0);
10226  Findices[in.admsNodeID_ci] = in.li_ci;
10227  Qindices[in.admsNodeID_ci] = in.li_ci;
10228  dfdp[in.admsNodeID_bx] += staticContributions[in.admsNodeID_bx].dx(0);
10229  dqdp[in.admsNodeID_bx] += dynamicContributions[in.admsNodeID_bx].dx(0);
10230  Findices[in.admsNodeID_bx] = in.li_bx;
10231  Qindices[in.admsNodeID_bx] = in.li_bx;
10232  dfdp[in.admsNodeID_bi] += staticContributions[in.admsNodeID_bi].dx(0);
10233  dqdp[in.admsNodeID_bi] += dynamicContributions[in.admsNodeID_bi].dx(0);
10234  Findices[in.admsNodeID_bi] = in.li_bi;
10235  Qindices[in.admsNodeID_bi] = in.li_bi;
10236  dfdp[in.admsNodeID_ei] += staticContributions[in.admsNodeID_ei].dx(0);
10237  dqdp[in.admsNodeID_ei] += dynamicContributions[in.admsNodeID_ei].dx(0);
10238  Findices[in.admsNodeID_ei] = in.li_ei;
10239  Qindices[in.admsNodeID_ei] = in.li_ei;
10240  dfdp[in.admsNodeID_bp] += staticContributions[in.admsNodeID_bp].dx(0);
10241  dqdp[in.admsNodeID_bp] += dynamicContributions[in.admsNodeID_bp].dx(0);
10242  Findices[in.admsNodeID_bp] = in.li_bp;
10243  Qindices[in.admsNodeID_bp] = in.li_bp;
10244  dfdp[in.admsNodeID_si] += staticContributions[in.admsNodeID_si].dx(0);
10245  dqdp[in.admsNodeID_si] += dynamicContributions[in.admsNodeID_si].dx(0);
10246  Findices[in.admsNodeID_si] = in.li_si;
10247  Qindices[in.admsNodeID_si] = in.li_si;
10248  dfdp[in.admsNodeID_xf1] += staticContributions[in.admsNodeID_xf1].dx(0);
10249  dqdp[in.admsNodeID_xf1] += dynamicContributions[in.admsNodeID_xf1].dx(0);
10250  Findices[in.admsNodeID_xf1] = in.li_xf1;
10251  Qindices[in.admsNodeID_xf1] = in.li_xf1;
10252  dfdp[in.admsNodeID_xf2] += staticContributions[in.admsNodeID_xf2].dx(0);
10253  dqdp[in.admsNodeID_xf2] += dynamicContributions[in.admsNodeID_xf2].dx(0);
10254  Findices[in.admsNodeID_xf2] = in.li_xf2;
10255  Qindices[in.admsNodeID_xf2] = in.li_xf2;
10256 
10257 
10258 }
10259 
10260 //-----------------------------------------------------------------------------
10261 // Function : ModelSensitivity::operator()
10262 // Purpose : return sensitivity for a single model parameter
10263 // Special Notes :
10264 // Scope : public
10265 // Creator : admsXml
10266 // Creation Date :
10267 //-----------------------------------------------------------------------------
10268 /// Compute sensitivity to a specified model
10269 /// parameter of all device instances of that model's outputs
10270 ///
10271 ///
10272 /// @param[in] entity The device entity that owns the parameter
10273 /// @param[in] name The unadorned parameter name specific to the entity
10274 /// @param[out] dfdp The derivative of the F vector with respect to the parameter
10275 /// @param[out] dqdp The derivative of the Q vector with respect to the parameter
10276 /// @param[out] dbdp The derivative of the B vector with respect to the parameter
10277 /// @param[out] Findices The indices into the F vector corresponding to the elements of dfdp
10278 /// @param[out] Qindices The indices into the Q vector corresponding to the elements of dfdp
10279 /// @param[out] Bindices The indices into the B vector corresponding to the elements of dfdp
10280 ///
10281 ///
10282 void ModelSensitivity::operator()
10283  (
10284  const ParameterBase &entity,
10285  const std::string &name,
10286  std::vector<double> & dfdp,
10287  std::vector<double> & dqdp,
10288  std::vector<double> & dbdp,
10289  std::vector<int> & Findices,
10290  std::vector<int> & Qindices,
10291  std::vector<int> & Bindices
10292  ) const
10293 {
10294  const ParameterBase * e1 = &entity;
10295  const Model & mod = *(dynamic_cast<const Model *> (e1));
10296  int sizeInstance = mod.instanceContainer.size();
10297 
10298  dfdp.resize((14+0)*sizeInstance);
10299  dqdp.resize((14+0)*sizeInstance);
10300  Findices.resize((14+0)*sizeInstance);
10301  Qindices.resize((14+0)*sizeInstance);
10302 
10303  std::vector <double> probeVars(21);
10304  std::vector <AdmsSensFadType> staticContributions(14+0);
10305  std::vector <AdmsSensFadType> dynamicContributions(14+0);
10306 
10307 
10308  // Copy out all the model parameters (doubles) into FAD types
10309  // Keep a map so we can set the right one to the independent variable
10310  // We do this solely to avoid a big ugly "if/else" block just to find the
10311  // one parameter we're doing sensitivities on.
10312  unordered_map <std::string,AdmsSensFadType*,HashNoCase,EqualNoCase> modParamMap;
10313 
10314  // reals
10315  AdmsSensFadType modelPar_npn=mod.npn;
10316  bool modelPar_given_npn=mod.given("npn");
10317  modParamMap["npn"] = &modelPar_npn;
10318  AdmsSensFadType modelPar_pnp=mod.pnp;
10319  bool modelPar_given_pnp=mod.given("pnp");
10320  modParamMap["pnp"] = &modelPar_pnp;
10321  AdmsSensFadType modelPar_scale=mod.scale;
10322  bool modelPar_given_scale=mod.given("scale");
10323  modParamMap["scale"] = &modelPar_scale;
10324  AdmsSensFadType modelPar_shrink=mod.shrink;
10325  bool modelPar_given_shrink=mod.given("shrink");
10326  modParamMap["shrink"] = &modelPar_shrink;
10327  AdmsSensFadType modelPar_tmin=mod.tmin;
10328  bool modelPar_given_tmin=mod.given("tmin");
10329  modParamMap["tmin"] = &modelPar_tmin;
10330  AdmsSensFadType modelPar_tmax=mod.tmax;
10331  bool modelPar_given_tmax=mod.given("tmax");
10332  modParamMap["tmax"] = &modelPar_tmax;
10333  AdmsSensFadType modelPar_gmin=mod.gmin;
10334  bool modelPar_given_gmin=mod.given("gmin");
10335  modParamMap["gmin"] = &modelPar_gmin;
10336  AdmsSensFadType modelPar_pnjmaxi=mod.pnjmaxi;
10337  bool modelPar_given_pnjmaxi=mod.given("pnjmaxi");
10338  modParamMap["pnjmaxi"] = &modelPar_pnjmaxi;
10339  AdmsSensFadType modelPar_maxexp=mod.maxexp;
10340  bool modelPar_given_maxexp=mod.given("maxexp");
10341  modParamMap["maxexp"] = &modelPar_maxexp;
10342  AdmsSensFadType modelPar_tnom=mod.tnom;
10343  bool modelPar_given_tnom=mod.given("tnom");
10344  modParamMap["tnom"] = &modelPar_tnom;
10345  AdmsSensFadType modelPar_tminclip=mod.tminclip;
10346  bool modelPar_given_tminclip=mod.given("tminclip");
10347  modParamMap["tminclip"] = &modelPar_tminclip;
10348  AdmsSensFadType modelPar_tmaxclip=mod.tmaxclip;
10349  bool modelPar_given_tmaxclip=mod.given("tmaxclip");
10350  modParamMap["tmaxclip"] = &modelPar_tmaxclip;
10351  AdmsSensFadType modelPar_rcx=mod.rcx;
10352  bool modelPar_given_rcx=mod.given("rcx");
10353  modParamMap["rcx"] = &modelPar_rcx;
10354  AdmsSensFadType modelPar_rci=mod.rci;
10355  bool modelPar_given_rci=mod.given("rci");
10356  modParamMap["rci"] = &modelPar_rci;
10357  AdmsSensFadType modelPar_vo=mod.vo;
10358  bool modelPar_given_vo=mod.given("vo");
10359  modParamMap["vo"] = &modelPar_vo;
10360  AdmsSensFadType modelPar_gamm=mod.gamm;
10361  bool modelPar_given_gamm=mod.given("gamm");
10362  modParamMap["gamm"] = &modelPar_gamm;
10363  AdmsSensFadType modelPar_hrcf=mod.hrcf;
10364  bool modelPar_given_hrcf=mod.given("hrcf");
10365  modParamMap["hrcf"] = &modelPar_hrcf;
10366  AdmsSensFadType modelPar_rbx=mod.rbx;
10367  bool modelPar_given_rbx=mod.given("rbx");
10368  modParamMap["rbx"] = &modelPar_rbx;
10369  AdmsSensFadType modelPar_rbi=mod.rbi;
10370  bool modelPar_given_rbi=mod.given("rbi");
10371  modParamMap["rbi"] = &modelPar_rbi;
10372  AdmsSensFadType modelPar_re=mod.re;
10373  bool modelPar_given_re=mod.given("re");
10374  modParamMap["re"] = &modelPar_re;
10375  AdmsSensFadType modelPar_rs=mod.rs;
10376  bool modelPar_given_rs=mod.given("rs");
10377  modParamMap["rs"] = &modelPar_rs;
10378  AdmsSensFadType modelPar_rbp=mod.rbp;
10379  bool modelPar_given_rbp=mod.given("rbp");
10380  modParamMap["rbp"] = &modelPar_rbp;
10381  AdmsSensFadType modelPar_is=mod.is;
10382  bool modelPar_given_is=mod.given("is");
10383  modParamMap["is"] = &modelPar_is;
10384  AdmsSensFadType modelPar_isrr=mod.isrr;
10385  bool modelPar_given_isrr=mod.given("isrr");
10386  modParamMap["isrr"] = &modelPar_isrr;
10387  AdmsSensFadType modelPar_nf=mod.nf;
10388  bool modelPar_given_nf=mod.given("nf");
10389  modParamMap["nf"] = &modelPar_nf;
10390  AdmsSensFadType modelPar_nr=mod.nr;
10391  bool modelPar_given_nr=mod.given("nr");
10392  modParamMap["nr"] = &modelPar_nr;
10393  AdmsSensFadType modelPar_isp=mod.isp;
10394  bool modelPar_given_isp=mod.given("isp");
10395  modParamMap["isp"] = &modelPar_isp;
10396  AdmsSensFadType modelPar_wsp=mod.wsp;
10397  bool modelPar_given_wsp=mod.given("wsp");
10398  modParamMap["wsp"] = &modelPar_wsp;
10399  AdmsSensFadType modelPar_nfp=mod.nfp;
10400  bool modelPar_given_nfp=mod.given("nfp");
10401  modParamMap["nfp"] = &modelPar_nfp;
10402  AdmsSensFadType modelPar_fc=mod.fc;
10403  bool modelPar_given_fc=mod.given("fc");
10404  modParamMap["fc"] = &modelPar_fc;
10405  AdmsSensFadType modelPar_cbeo=mod.cbeo;
10406  bool modelPar_given_cbeo=mod.given("cbeo");
10407  modParamMap["cbeo"] = &modelPar_cbeo;
10408  AdmsSensFadType modelPar_cje=mod.cje;
10409  bool modelPar_given_cje=mod.given("cje");
10410  modParamMap["cje"] = &modelPar_cje;
10411  AdmsSensFadType modelPar_pe=mod.pe;
10412  bool modelPar_given_pe=mod.given("pe");
10413  modParamMap["pe"] = &modelPar_pe;
10414  AdmsSensFadType modelPar_me=mod.me;
10415  bool modelPar_given_me=mod.given("me");
10416  modParamMap["me"] = &modelPar_me;
10417  AdmsSensFadType modelPar_aje=mod.aje;
10418  bool modelPar_given_aje=mod.given("aje");
10419  modParamMap["aje"] = &modelPar_aje;
10420  AdmsSensFadType modelPar_cbco=mod.cbco;
10421  bool modelPar_given_cbco=mod.given("cbco");
10422  modParamMap["cbco"] = &modelPar_cbco;
10423  AdmsSensFadType modelPar_cjc=mod.cjc;
10424  bool modelPar_given_cjc=mod.given("cjc");
10425  modParamMap["cjc"] = &modelPar_cjc;
10426  AdmsSensFadType modelPar_pc=mod.pc;
10427  bool modelPar_given_pc=mod.given("pc");
10428  modParamMap["pc"] = &modelPar_pc;
10429  AdmsSensFadType modelPar_mc=mod.mc;
10430  bool modelPar_given_mc=mod.given("mc");
10431  modParamMap["mc"] = &modelPar_mc;
10432  AdmsSensFadType modelPar_ajc=mod.ajc;
10433  bool modelPar_given_ajc=mod.given("ajc");
10434  modParamMap["ajc"] = &modelPar_ajc;
10435  AdmsSensFadType modelPar_vrt=mod.vrt;
10436  bool modelPar_given_vrt=mod.given("vrt");
10437  modParamMap["vrt"] = &modelPar_vrt;
10438  AdmsSensFadType modelPar_art=mod.art;
10439  bool modelPar_given_art=mod.given("art");
10440  modParamMap["art"] = &modelPar_art;
10441  AdmsSensFadType modelPar_qco=mod.qco;
10442  bool modelPar_given_qco=mod.given("qco");
10443  modParamMap["qco"] = &modelPar_qco;
10444  AdmsSensFadType modelPar_cjep=mod.cjep;
10445  bool modelPar_given_cjep=mod.given("cjep");
10446  modParamMap["cjep"] = &modelPar_cjep;
10447  AdmsSensFadType modelPar_cjcp=mod.cjcp;
10448  bool modelPar_given_cjcp=mod.given("cjcp");
10449  modParamMap["cjcp"] = &modelPar_cjcp;
10450  AdmsSensFadType modelPar_ps=mod.ps;
10451  bool modelPar_given_ps=mod.given("ps");
10452  modParamMap["ps"] = &modelPar_ps;
10453  AdmsSensFadType modelPar_ms=mod.ms;
10454  bool modelPar_given_ms=mod.given("ms");
10455  modParamMap["ms"] = &modelPar_ms;
10456  AdmsSensFadType modelPar_ajs=mod.ajs;
10457  bool modelPar_given_ajs=mod.given("ajs");
10458  modParamMap["ajs"] = &modelPar_ajs;
10459  AdmsSensFadType modelPar_ccso=mod.ccso;
10460  bool modelPar_given_ccso=mod.given("ccso");
10461  modParamMap["ccso"] = &modelPar_ccso;
10462  AdmsSensFadType modelPar_ibei=mod.ibei;
10463  bool modelPar_given_ibei=mod.given("ibei");
10464  modParamMap["ibei"] = &modelPar_ibei;
10465  AdmsSensFadType modelPar_wbe=mod.wbe;
10466  bool modelPar_given_wbe=mod.given("wbe");
10467  modParamMap["wbe"] = &modelPar_wbe;
10468  AdmsSensFadType modelPar_nei=mod.nei;
10469  bool modelPar_given_nei=mod.given("nei");
10470  modParamMap["nei"] = &modelPar_nei;
10471  AdmsSensFadType modelPar_qnibeir=mod.qnibeir;
10472  bool modelPar_given_qnibeir=mod.given("qnibeir");
10473  modParamMap["qnibeir"] = &modelPar_qnibeir;
10474  AdmsSensFadType modelPar_iben=mod.iben;
10475  bool modelPar_given_iben=mod.given("iben");
10476  modParamMap["iben"] = &modelPar_iben;
10477  AdmsSensFadType modelPar_nen=mod.nen;
10478  bool modelPar_given_nen=mod.given("nen");
10479  modParamMap["nen"] = &modelPar_nen;
10480  AdmsSensFadType modelPar_ibci=mod.ibci;
10481  bool modelPar_given_ibci=mod.given("ibci");
10482  modParamMap["ibci"] = &modelPar_ibci;
10483  AdmsSensFadType modelPar_nci=mod.nci;
10484  bool modelPar_given_nci=mod.given("nci");
10485  modParamMap["nci"] = &modelPar_nci;
10486  AdmsSensFadType modelPar_ibcn=mod.ibcn;
10487  bool modelPar_given_ibcn=mod.given("ibcn");
10488  modParamMap["ibcn"] = &modelPar_ibcn;
10489  AdmsSensFadType modelPar_ncn=mod.ncn;
10490  bool modelPar_given_ncn=mod.given("ncn");
10491  modParamMap["ncn"] = &modelPar_ncn;
10492  AdmsSensFadType modelPar_ibeip=mod.ibeip;
10493  bool modelPar_given_ibeip=mod.given("ibeip");
10494  modParamMap["ibeip"] = &modelPar_ibeip;
10495  AdmsSensFadType modelPar_ibenp=mod.ibenp;
10496  bool modelPar_given_ibenp=mod.given("ibenp");
10497  modParamMap["ibenp"] = &modelPar_ibenp;
10498  AdmsSensFadType modelPar_ibcip=mod.ibcip;
10499  bool modelPar_given_ibcip=mod.given("ibcip");
10500  modParamMap["ibcip"] = &modelPar_ibcip;
10501  AdmsSensFadType modelPar_ncip=mod.ncip;
10502  bool modelPar_given_ncip=mod.given("ncip");
10503  modParamMap["ncip"] = &modelPar_ncip;
10504  AdmsSensFadType modelPar_ibcnp=mod.ibcnp;
10505  bool modelPar_given_ibcnp=mod.given("ibcnp");
10506  modParamMap["ibcnp"] = &modelPar_ibcnp;
10507  AdmsSensFadType modelPar_ncnp=mod.ncnp;
10508  bool modelPar_given_ncnp=mod.given("ncnp");
10509  modParamMap["ncnp"] = &modelPar_ncnp;
10510  AdmsSensFadType modelPar_vef=mod.vef;
10511  bool modelPar_given_vef=mod.given("vef");
10512  modParamMap["vef"] = &modelPar_vef;
10513  AdmsSensFadType modelPar_ver=mod.ver;
10514  bool modelPar_given_ver=mod.given("ver");
10515  modParamMap["ver"] = &modelPar_ver;
10516  AdmsSensFadType modelPar_ikf=mod.ikf;
10517  bool modelPar_given_ikf=mod.given("ikf");
10518  modParamMap["ikf"] = &modelPar_ikf;
10519  AdmsSensFadType modelPar_nkf=mod.nkf;
10520  bool modelPar_given_nkf=mod.given("nkf");
10521  modParamMap["nkf"] = &modelPar_nkf;
10522  AdmsSensFadType modelPar_ikr=mod.ikr;
10523  bool modelPar_given_ikr=mod.given("ikr");
10524  modParamMap["ikr"] = &modelPar_ikr;
10525  AdmsSensFadType modelPar_ikp=mod.ikp;
10526  bool modelPar_given_ikp=mod.given("ikp");
10527  modParamMap["ikp"] = &modelPar_ikp;
10528  AdmsSensFadType modelPar_tf=mod.tf;
10529  bool modelPar_given_tf=mod.given("tf");
10530  modParamMap["tf"] = &modelPar_tf;
10531  AdmsSensFadType modelPar_qtf=mod.qtf;
10532  bool modelPar_given_qtf=mod.given("qtf");
10533  modParamMap["qtf"] = &modelPar_qtf;
10534  AdmsSensFadType modelPar_xtf=mod.xtf;
10535  bool modelPar_given_xtf=mod.given("xtf");
10536  modParamMap["xtf"] = &modelPar_xtf;
10537  AdmsSensFadType modelPar_vtf=mod.vtf;
10538  bool modelPar_given_vtf=mod.given("vtf");
10539  modParamMap["vtf"] = &modelPar_vtf;
10540  AdmsSensFadType modelPar_itf=mod.itf;
10541  bool modelPar_given_itf=mod.given("itf");
10542  modParamMap["itf"] = &modelPar_itf;
10543  AdmsSensFadType modelPar_tr=mod.tr;
10544  bool modelPar_given_tr=mod.given("tr");
10545  modParamMap["tr"] = &modelPar_tr;
10546  AdmsSensFadType modelPar_td=mod.td;
10547  bool modelPar_given_td=mod.given("td");
10548  modParamMap["td"] = &modelPar_td;
10549  AdmsSensFadType modelPar_avc1=mod.avc1;
10550  bool modelPar_given_avc1=mod.given("avc1");
10551  modParamMap["avc1"] = &modelPar_avc1;
10552  AdmsSensFadType modelPar_avc2=mod.avc2;
10553  bool modelPar_given_avc2=mod.given("avc2");
10554  modParamMap["avc2"] = &modelPar_avc2;
10555  AdmsSensFadType modelPar_avcx1=mod.avcx1;
10556  bool modelPar_given_avcx1=mod.given("avcx1");
10557  modParamMap["avcx1"] = &modelPar_avcx1;
10558  AdmsSensFadType modelPar_avcx2=mod.avcx2;
10559  bool modelPar_given_avcx2=mod.given("avcx2");
10560  modParamMap["avcx2"] = &modelPar_avcx2;
10561  AdmsSensFadType modelPar_mcx=mod.mcx;
10562  bool modelPar_given_mcx=mod.given("mcx");
10563  modParamMap["mcx"] = &modelPar_mcx;
10564  AdmsSensFadType modelPar_vbbe=mod.vbbe;
10565  bool modelPar_given_vbbe=mod.given("vbbe");
10566  modParamMap["vbbe"] = &modelPar_vbbe;
10567  AdmsSensFadType modelPar_nbbe=mod.nbbe;
10568  bool modelPar_given_nbbe=mod.given("nbbe");
10569  modParamMap["nbbe"] = &modelPar_nbbe;
10570  AdmsSensFadType modelPar_ibbe=mod.ibbe;
10571  bool modelPar_given_ibbe=mod.given("ibbe");
10572  modParamMap["ibbe"] = &modelPar_ibbe;
10573  AdmsSensFadType modelPar_tvbbe1=mod.tvbbe1;
10574  bool modelPar_given_tvbbe1=mod.given("tvbbe1");
10575  modParamMap["tvbbe1"] = &modelPar_tvbbe1;
10576  AdmsSensFadType modelPar_tvbbe2=mod.tvbbe2;
10577  bool modelPar_given_tvbbe2=mod.given("tvbbe2");
10578  modParamMap["tvbbe2"] = &modelPar_tvbbe2;
10579  AdmsSensFadType modelPar_tnbbe=mod.tnbbe;
10580  bool modelPar_given_tnbbe=mod.given("tnbbe");
10581  modParamMap["tnbbe"] = &modelPar_tnbbe;
10582  AdmsSensFadType modelPar_vpte=mod.vpte;
10583  bool modelPar_given_vpte=mod.given("vpte");
10584  modParamMap["vpte"] = &modelPar_vpte;
10585  AdmsSensFadType modelPar_ibk0=mod.ibk0;
10586  bool modelPar_given_ibk0=mod.given("ibk0");
10587  modParamMap["ibk0"] = &modelPar_ibk0;
10588  AdmsSensFadType modelPar_abk=mod.abk;
10589  bool modelPar_given_abk=mod.given("abk");
10590  modParamMap["abk"] = &modelPar_abk;
10591  AdmsSensFadType modelPar_bbk=mod.bbk;
10592  bool modelPar_given_bbk=mod.given("bbk");
10593  modParamMap["bbk"] = &modelPar_bbk;
10594  AdmsSensFadType modelPar_kfn=mod.kfn;
10595  bool modelPar_given_kfn=mod.given("kfn");
10596  modParamMap["kfn"] = &modelPar_kfn;
10597  AdmsSensFadType modelPar_afn=mod.afn;
10598  bool modelPar_given_afn=mod.given("afn");
10599  modParamMap["afn"] = &modelPar_afn;
10600  AdmsSensFadType modelPar_bfn=mod.bfn;
10601  bool modelPar_given_bfn=mod.given("bfn");
10602  modParamMap["bfn"] = &modelPar_bfn;
10603  AdmsSensFadType modelPar_rth=mod.rth;
10604  bool modelPar_given_rth=mod.given("rth");
10605  modParamMap["rth"] = &modelPar_rth;
10606  AdmsSensFadType modelPar_cth=mod.cth;
10607  bool modelPar_given_cth=mod.given("cth");
10608  modParamMap["cth"] = &modelPar_cth;
10609  AdmsSensFadType modelPar_xre=mod.xre;
10610  bool modelPar_given_xre=mod.given("xre");
10611  modParamMap["xre"] = &modelPar_xre;
10612  AdmsSensFadType modelPar_xrb=mod.xrb;
10613  bool modelPar_given_xrb=mod.given("xrb");
10614  modParamMap["xrb"] = &modelPar_xrb;
10615  AdmsSensFadType modelPar_xrbi=mod.xrbi;
10616  bool modelPar_given_xrbi=mod.given("xrbi");
10617  modParamMap["xrbi"] = &modelPar_xrbi;
10618  AdmsSensFadType modelPar_xrbx=mod.xrbx;
10619  bool modelPar_given_xrbx=mod.given("xrbx");
10620  modParamMap["xrbx"] = &modelPar_xrbx;
10621  AdmsSensFadType modelPar_xrc=mod.xrc;
10622  bool modelPar_given_xrc=mod.given("xrc");
10623  modParamMap["xrc"] = &modelPar_xrc;
10624  AdmsSensFadType modelPar_xrci=mod.xrci;
10625  bool modelPar_given_xrci=mod.given("xrci");
10626  modParamMap["xrci"] = &modelPar_xrci;
10627  AdmsSensFadType modelPar_xrcx=mod.xrcx;
10628  bool modelPar_given_xrcx=mod.given("xrcx");
10629  modParamMap["xrcx"] = &modelPar_xrcx;
10630  AdmsSensFadType modelPar_xrbp=mod.xrbp;
10631  bool modelPar_given_xrbp=mod.given("xrbp");
10632  modParamMap["xrbp"] = &modelPar_xrbp;
10633  AdmsSensFadType modelPar_xrs=mod.xrs;
10634  bool modelPar_given_xrs=mod.given("xrs");
10635  modParamMap["xrs"] = &modelPar_xrs;
10636  AdmsSensFadType modelPar_xvo=mod.xvo;
10637  bool modelPar_given_xvo=mod.given("xvo");
10638  modParamMap["xvo"] = &modelPar_xvo;
10639  AdmsSensFadType modelPar_ea=mod.ea;
10640  bool modelPar_given_ea=mod.given("ea");
10641  modParamMap["ea"] = &modelPar_ea;
10642  AdmsSensFadType modelPar_eaie=mod.eaie;
10643  bool modelPar_given_eaie=mod.given("eaie");
10644  modParamMap["eaie"] = &modelPar_eaie;
10645  AdmsSensFadType modelPar_eaic=mod.eaic;
10646  bool modelPar_given_eaic=mod.given("eaic");
10647  modParamMap["eaic"] = &modelPar_eaic;
10648  AdmsSensFadType modelPar_eais=mod.eais;
10649  bool modelPar_given_eais=mod.given("eais");
10650  modParamMap["eais"] = &modelPar_eais;
10651  AdmsSensFadType modelPar_eane=mod.eane;
10652  bool modelPar_given_eane=mod.given("eane");
10653  modParamMap["eane"] = &modelPar_eane;
10654  AdmsSensFadType modelPar_eanc=mod.eanc;
10655  bool modelPar_given_eanc=mod.given("eanc");
10656  modParamMap["eanc"] = &modelPar_eanc;
10657  AdmsSensFadType modelPar_eans=mod.eans;
10658  bool modelPar_given_eans=mod.given("eans");
10659  modParamMap["eans"] = &modelPar_eans;
10660  AdmsSensFadType modelPar_eap=mod.eap;
10661  bool modelPar_given_eap=mod.given("eap");
10662  modParamMap["eap"] = &modelPar_eap;
10663  AdmsSensFadType modelPar_dear=mod.dear;
10664  bool modelPar_given_dear=mod.given("dear");
10665  modParamMap["dear"] = &modelPar_dear;
10666  AdmsSensFadType modelPar_xis=mod.xis;
10667  bool modelPar_given_xis=mod.given("xis");
10668  modParamMap["xis"] = &modelPar_xis;
10669  AdmsSensFadType modelPar_xii=mod.xii;
10670  bool modelPar_given_xii=mod.given("xii");
10671  modParamMap["xii"] = &modelPar_xii;
10672  AdmsSensFadType modelPar_xin=mod.xin;
10673  bool modelPar_given_xin=mod.given("xin");
10674  modParamMap["xin"] = &modelPar_xin;
10675  AdmsSensFadType modelPar_xisr=mod.xisr;
10676  bool modelPar_given_xisr=mod.given("xisr");
10677  modParamMap["xisr"] = &modelPar_xisr;
10678  AdmsSensFadType modelPar_xikf=mod.xikf;
10679  bool modelPar_given_xikf=mod.given("xikf");
10680  modParamMap["xikf"] = &modelPar_xikf;
10681  AdmsSensFadType modelPar_tavc=mod.tavc;
10682  bool modelPar_given_tavc=mod.given("tavc");
10683  modParamMap["tavc"] = &modelPar_tavc;
10684  AdmsSensFadType modelPar_tavcx=mod.tavcx;
10685  bool modelPar_given_tavcx=mod.given("tavcx");
10686  modParamMap["tavcx"] = &modelPar_tavcx;
10687  AdmsSensFadType modelPar_tnf=mod.tnf;
10688  bool modelPar_given_tnf=mod.given("tnf");
10689  modParamMap["tnf"] = &modelPar_tnf;
10690  AdmsSensFadType modelPar_tcvef=mod.tcvef;
10691  bool modelPar_given_tcvef=mod.given("tcvef");
10692  modParamMap["tcvef"] = &modelPar_tcvef;
10693  AdmsSensFadType modelPar_tcver=mod.tcver;
10694  bool modelPar_given_tcver=mod.given("tcver");
10695  modParamMap["tcver"] = &modelPar_tcver;
10696  AdmsSensFadType modelPar_tcrth=mod.tcrth;
10697  bool modelPar_given_tcrth=mod.given("tcrth");
10698  modParamMap["tcrth"] = &modelPar_tcrth;
10699 
10700 
10701  // hidden reals
10702 
10703 
10704  // non-reals (including hiddens)
10705  int modelPar_type=mod.type;
10706  bool modelPar_given_type=mod.given("type");
10707  int modelPar_VBICtype=mod.VBICtype;
10708  int modelPar_qbm=mod.qbm;
10709  bool modelPar_given_qbm=mod.given("qbm");
10710 
10711 
10712  // Set the one parameter whose name was passed in to be the independent
10713  // variable for Sacado purposes. Since we stored variable pointers, this
10714  // makes sure that that ONE variable gets set right.
10715  // FIXME: make this check name for presence first! Segfault on invalid.
10716  modParamMap[name]->diff(0,1);
10717 
10718  //make local copies of all model vars
10719  //reals
10720 
10721 
10722  // non-reals
10723 
10724 
10725 
10726  // Now loop over all instances and do the deed
10727  int inst=0;
10728  for (std::vector<Instance*>::const_iterator in_it=mod.instanceContainer.begin(); in_it != mod.instanceContainer.end(); ++in_it,++inst)
10729  {
10730 
10731  Instance & in=*(*in_it);
10732  // initialize contributions to zero (automatically sets derivatives to zero)
10733  for (int i=0; i < 14+0 ; ++i)
10734  {
10735  staticContributions[i]=0;
10736  dynamicContributions[i]=0;
10737  }
10738 
10739 
10740 
10741  // Copy out all the instance parameters (doubles) into FAD types
10742  // reals
10743  AdmsSensFadType instancePar_m=in.m;
10744  bool instancePar_given_m=in.given("m");
10745  AdmsSensFadType instancePar_trise=in.trise;
10746  bool instancePar_given_trise=in.given("trise");
10747 
10748 
10749  // real hidden instance
10750 
10751 
10752  // Copy all the non-real instance params into vars of their appropriate type:
10753  int instancePar_sw_noise=in.sw_noise;
10754  bool instancePar_given_sw_noise=in.given("sw_noise");
10755  int instancePar_sw_et=in.sw_et;
10756  bool instancePar_given_sw_et=in.given("sw_et");
10757 
10758 
10759 
10760 
10761  // If there are any instance parameters that were not given, and have
10762  // corresponding model params, copy the model param into the instance.
10763  // This was already done by the instance constructor, but we do it again
10764  // because now we're propagating derivatives, and the user could be trying
10765  // to get sensitivity to the model parameter.
10766 
10767 
10768  //make local copies of all instance vars
10769  //reals
10770 
10771 
10772  //non-reals
10773 
10774 
10775 
10776  Linear::Vector * solVectorPtr = in.extData.nextSolVectorPtr;
10777 
10778  // extract solution variables and set as Fad independent variables.
10779  probeVars[in.admsProbeID_V_xf2_GND] = (*solVectorPtr)[in.li_xf2];
10780  probeVars[in.admsProbeID_V_xf1_GND] = (*solVectorPtr)[in.li_xf1];
10781  probeVars[in.admsProbeID_V_s_si] = (*solVectorPtr)[in.li_s] - (*solVectorPtr)[in.li_si];
10782  probeVars[in.admsProbeID_V_bx_si] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_si];
10783  probeVars[in.admsProbeID_V_si_bp] = (*solVectorPtr)[in.li_si] - (*solVectorPtr)[in.li_bp];
10784  probeVars[in.admsProbeID_V_bp_cx] = (*solVectorPtr)[in.li_bp] - (*solVectorPtr)[in.li_cx];
10785  probeVars[in.admsProbeID_V_e_ei] = (*solVectorPtr)[in.li_e] - (*solVectorPtr)[in.li_ei];
10786  probeVars[in.admsProbeID_V_bx_bi] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_bi];
10787  probeVars[in.admsProbeID_V_b_bx] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_bx];
10788  probeVars[in.admsProbeID_V_cx_ci] = (*solVectorPtr)[in.li_cx] - (*solVectorPtr)[in.li_ci];
10789  probeVars[in.admsProbeID_V_c_cx] = (*solVectorPtr)[in.li_c] - (*solVectorPtr)[in.li_cx];
10790  probeVars[in.admsProbeID_V_b_c] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_c];
10791  probeVars[in.admsProbeID_V_b_e] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_e];
10792  probeVars[in.admsProbeID_V_bx_bp] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_bp];
10793  probeVars[in.admsProbeID_V_ci_ei] = (*solVectorPtr)[in.li_ci] - (*solVectorPtr)[in.li_ei];
10794  probeVars[in.admsProbeID_V_bx_cx] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_cx];
10795  probeVars[in.admsProbeID_V_bi_cx] = (*solVectorPtr)[in.li_bi] - (*solVectorPtr)[in.li_cx];
10796  probeVars[in.admsProbeID_V_bi_ci] = (*solVectorPtr)[in.li_bi] - (*solVectorPtr)[in.li_ci];
10797  probeVars[in.admsProbeID_V_bx_ei] = (*solVectorPtr)[in.li_bx] - (*solVectorPtr)[in.li_ei];
10798  probeVars[in.admsProbeID_V_bi_ei] = (*solVectorPtr)[in.li_bi] - (*solVectorPtr)[in.li_ei];
10799  probeVars[in.admsProbeID_Temp_dt_GND] = (*solVectorPtr)[in.li_dt];
10800 
10801  // pre-multiply any "typed" probes (i.e. those limited with "typedpnjlim")
10802  probeVars[in.admsProbeID_V_bx_bp] *= modelPar_VBICtype;
10803  probeVars[in.admsProbeID_V_bx_cx] *= modelPar_VBICtype;
10804  probeVars[in.admsProbeID_V_bi_cx] *= modelPar_VBICtype;
10805  probeVars[in.admsProbeID_V_bi_ci] *= modelPar_VBICtype;
10806  probeVars[in.admsProbeID_V_bx_ei] *= modelPar_VBICtype;
10807  probeVars[in.admsProbeID_V_bi_ei] *= modelPar_VBICtype;
10808 
10809 
10810 
10811  // Now call the function that does the heavy lifting.
10812 
10813  evaluateModelEquations(
10814  probeVars,
10815  // probe constants
10816  in.admsProbeID_V_xf2_GND,
10817  in.admsProbeID_V_xf1_GND,
10818  in.admsProbeID_V_s_si,
10819  in.admsProbeID_V_bx_si,
10820  in.admsProbeID_V_si_bp,
10821  in.admsProbeID_V_bp_cx,
10822  in.admsProbeID_V_e_ei,
10823  in.admsProbeID_V_bx_bi,
10824  in.admsProbeID_V_b_bx,
10825  in.admsProbeID_V_cx_ci,
10826  in.admsProbeID_V_c_cx,
10827  in.admsProbeID_V_b_c,
10828  in.admsProbeID_V_b_e,
10829  in.admsProbeID_V_bx_bp,
10830  in.admsProbeID_V_ci_ei,
10831  in.admsProbeID_V_bx_cx,
10832  in.admsProbeID_V_bi_cx,
10833  in.admsProbeID_V_bi_ci,
10834  in.admsProbeID_V_bx_ei,
10835  in.admsProbeID_V_bi_ei,
10836  in.admsProbeID_Temp_dt_GND,
10837 
10838  // node constants
10839  in.admsNodeID_c,
10840  in.admsNodeID_b,
10841  in.admsNodeID_e,
10842  in.admsNodeID_s,
10843  in.admsNodeID_dt,
10844  in.admsNodeID_cx,
10845  in.admsNodeID_ci,
10846  in.admsNodeID_bx,
10847  in.admsNodeID_bi,
10848  in.admsNodeID_ei,
10849  in.admsNodeID_bp,
10850  in.admsNodeID_si,
10851  in.admsNodeID_xf1,
10852  in.admsNodeID_xf2,
10853  // instance parameters
10854  // reals
10855  instancePar_m,
10856  instancePar_given_m,
10857  instancePar_trise,
10858  instancePar_given_trise,
10859  // non-reals(including hidden)
10860  instancePar_sw_noise,
10861  instancePar_given_sw_noise,
10862  instancePar_sw_et,
10863  instancePar_given_sw_et,
10864  // model parameters
10865  // reals
10866  modelPar_npn,
10867  modelPar_given_npn,
10868  modelPar_pnp,
10869  modelPar_given_pnp,
10870  modelPar_scale,
10871  modelPar_given_scale,
10872  modelPar_shrink,
10873  modelPar_given_shrink,
10874  modelPar_tmin,
10875  modelPar_given_tmin,
10876  modelPar_tmax,
10877  modelPar_given_tmax,
10878  modelPar_gmin,
10879  modelPar_given_gmin,
10880  modelPar_pnjmaxi,
10881  modelPar_given_pnjmaxi,
10882  modelPar_maxexp,
10883  modelPar_given_maxexp,
10884  modelPar_tnom,
10885  modelPar_given_tnom,
10886  modelPar_tminclip,
10887  modelPar_given_tminclip,
10888  modelPar_tmaxclip,
10889  modelPar_given_tmaxclip,
10890  modelPar_rcx,
10891  modelPar_given_rcx,
10892  modelPar_rci,
10893  modelPar_given_rci,
10894  modelPar_vo,
10895  modelPar_given_vo,
10896  modelPar_gamm,
10897  modelPar_given_gamm,
10898  modelPar_hrcf,
10899  modelPar_given_hrcf,
10900  modelPar_rbx,
10901  modelPar_given_rbx,
10902  modelPar_rbi,
10903  modelPar_given_rbi,
10904  modelPar_re,
10905  modelPar_given_re,
10906  modelPar_rs,
10907  modelPar_given_rs,
10908  modelPar_rbp,
10909  modelPar_given_rbp,
10910  modelPar_is,
10911  modelPar_given_is,
10912  modelPar_isrr,
10913  modelPar_given_isrr,
10914  modelPar_nf,
10915  modelPar_given_nf,
10916  modelPar_nr,
10917  modelPar_given_nr,
10918  modelPar_isp,
10919  modelPar_given_isp,
10920  modelPar_wsp,
10921  modelPar_given_wsp,
10922  modelPar_nfp,
10923  modelPar_given_nfp,
10924  modelPar_fc,
10925  modelPar_given_fc,
10926  modelPar_cbeo,
10927  modelPar_given_cbeo,
10928  modelPar_cje,
10929  modelPar_given_cje,
10930  modelPar_pe,
10931  modelPar_given_pe,
10932  modelPar_me,
10933  modelPar_given_me,
10934  modelPar_aje,
10935  modelPar_given_aje,
10936  modelPar_cbco,
10937  modelPar_given_cbco,
10938  modelPar_cjc,
10939  modelPar_given_cjc,
10940  modelPar_pc,
10941  modelPar_given_pc,
10942  modelPar_mc,
10943  modelPar_given_mc,
10944  modelPar_ajc,
10945  modelPar_given_ajc,
10946  modelPar_vrt,
10947  modelPar_given_vrt,
10948  modelPar_art,
10949  modelPar_given_art,
10950  modelPar_qco,
10951  modelPar_given_qco,
10952  modelPar_cjep,
10953  modelPar_given_cjep,
10954  modelPar_cjcp,
10955  modelPar_given_cjcp,
10956  modelPar_ps,
10957  modelPar_given_ps,
10958  modelPar_ms,
10959  modelPar_given_ms,
10960  modelPar_ajs,
10961  modelPar_given_ajs,
10962  modelPar_ccso,
10963  modelPar_given_ccso,
10964  modelPar_ibei,
10965  modelPar_given_ibei,
10966  modelPar_wbe,
10967  modelPar_given_wbe,
10968  modelPar_nei,
10969  modelPar_given_nei,
10970  modelPar_qnibeir,
10971  modelPar_given_qnibeir,
10972  modelPar_iben,
10973  modelPar_given_iben,
10974  modelPar_nen,
10975  modelPar_given_nen,
10976  modelPar_ibci,
10977  modelPar_given_ibci,
10978  modelPar_nci,
10979  modelPar_given_nci,
10980  modelPar_ibcn,
10981  modelPar_given_ibcn,
10982  modelPar_ncn,
10983  modelPar_given_ncn,
10984  modelPar_ibeip,
10985  modelPar_given_ibeip,
10986  modelPar_ibenp,
10987  modelPar_given_ibenp,
10988  modelPar_ibcip,
10989  modelPar_given_ibcip,
10990  modelPar_ncip,
10991  modelPar_given_ncip,
10992  modelPar_ibcnp,
10993  modelPar_given_ibcnp,
10994  modelPar_ncnp,
10995  modelPar_given_ncnp,
10996  modelPar_vef,
10997  modelPar_given_vef,
10998  modelPar_ver,
10999  modelPar_given_ver,
11000  modelPar_ikf,
11001  modelPar_given_ikf,
11002  modelPar_nkf,
11003  modelPar_given_nkf,
11004  modelPar_ikr,
11005  modelPar_given_ikr,
11006  modelPar_ikp,
11007  modelPar_given_ikp,
11008  modelPar_tf,
11009  modelPar_given_tf,
11010  modelPar_qtf,
11011  modelPar_given_qtf,
11012  modelPar_xtf,
11013  modelPar_given_xtf,
11014  modelPar_vtf,
11015  modelPar_given_vtf,
11016  modelPar_itf,
11017  modelPar_given_itf,
11018  modelPar_tr,
11019  modelPar_given_tr,
11020  modelPar_td,
11021  modelPar_given_td,
11022  modelPar_avc1,
11023  modelPar_given_avc1,
11024  modelPar_avc2,
11025  modelPar_given_avc2,
11026  modelPar_avcx1,
11027  modelPar_given_avcx1,
11028  modelPar_avcx2,
11029  modelPar_given_avcx2,
11030  modelPar_mcx,
11031  modelPar_given_mcx,
11032  modelPar_vbbe,
11033  modelPar_given_vbbe,
11034  modelPar_nbbe,
11035  modelPar_given_nbbe,
11036  modelPar_ibbe,
11037  modelPar_given_ibbe,
11038  modelPar_tvbbe1,
11039  modelPar_given_tvbbe1,
11040  modelPar_tvbbe2,
11041  modelPar_given_tvbbe2,
11042  modelPar_tnbbe,
11043  modelPar_given_tnbbe,
11044  modelPar_vpte,
11045  modelPar_given_vpte,
11046  modelPar_ibk0,
11047  modelPar_given_ibk0,
11048  modelPar_abk,
11049  modelPar_given_abk,
11050  modelPar_bbk,
11051  modelPar_given_bbk,
11052  modelPar_kfn,
11053  modelPar_given_kfn,
11054  modelPar_afn,
11055  modelPar_given_afn,
11056  modelPar_bfn,
11057  modelPar_given_bfn,
11058  modelPar_rth,
11059  modelPar_given_rth,
11060  modelPar_cth,
11061  modelPar_given_cth,
11062  modelPar_xre,
11063  modelPar_given_xre,
11064  modelPar_xrb,
11065  modelPar_given_xrb,
11066  modelPar_xrbi,
11067  modelPar_given_xrbi,
11068  modelPar_xrbx,
11069  modelPar_given_xrbx,
11070  modelPar_xrc,
11071  modelPar_given_xrc,
11072  modelPar_xrci,
11073  modelPar_given_xrci,
11074  modelPar_xrcx,
11075  modelPar_given_xrcx,
11076  modelPar_xrbp,
11077  modelPar_given_xrbp,
11078  modelPar_xrs,
11079  modelPar_given_xrs,
11080  modelPar_xvo,
11081  modelPar_given_xvo,
11082  modelPar_ea,
11083  modelPar_given_ea,
11084  modelPar_eaie,
11085  modelPar_given_eaie,
11086  modelPar_eaic,
11087  modelPar_given_eaic,
11088  modelPar_eais,
11089  modelPar_given_eais,
11090  modelPar_eane,
11091  modelPar_given_eane,
11092  modelPar_eanc,
11093  modelPar_given_eanc,
11094  modelPar_eans,
11095  modelPar_given_eans,
11096  modelPar_eap,
11097  modelPar_given_eap,
11098  modelPar_dear,
11099  modelPar_given_dear,
11100  modelPar_xis,
11101  modelPar_given_xis,
11102  modelPar_xii,
11103  modelPar_given_xii,
11104  modelPar_xin,
11105  modelPar_given_xin,
11106  modelPar_xisr,
11107  modelPar_given_xisr,
11108  modelPar_xikf,
11109  modelPar_given_xikf,
11110  modelPar_tavc,
11111  modelPar_given_tavc,
11112  modelPar_tavcx,
11113  modelPar_given_tavcx,
11114  modelPar_tnf,
11115  modelPar_given_tnf,
11116  modelPar_tcvef,
11117  modelPar_given_tcvef,
11118  modelPar_tcver,
11119  modelPar_given_tcver,
11120  modelPar_tcrth,
11121  modelPar_given_tcrth,
11122  // non-reals (including hidden)
11123  modelPar_type,
11124  modelPar_given_type,
11125  modelPar_VBICtype,
11126  modelPar_qbm,
11127  modelPar_given_qbm,
11128  in.admsTemperature,
11129  in.adms_vt_nom,
11130  in.getDeviceOptions().gmin,
11131  staticContributions,
11132  dynamicContributions,
11133  in);
11134 
11135 
11136  // We now have the F and Q vector stuff, populate the dependencies:
11137 
11138  dfdp[in.admsNodeID_c+inst*(14+0)] += staticContributions[in.admsNodeID_c].dx(0);
11139  dqdp[in.admsNodeID_c+inst*(14+0)] += dynamicContributions[in.admsNodeID_c].dx(0);
11140  Findices[in.admsNodeID_c+inst*(14+0)] = in.li_c;
11141  Qindices[in.admsNodeID_c+inst*(14+0)] = in.li_c;
11142  dfdp[in.admsNodeID_b+inst*(14+0)] += staticContributions[in.admsNodeID_b].dx(0);
11143  dqdp[in.admsNodeID_b+inst*(14+0)] += dynamicContributions[in.admsNodeID_b].dx(0);
11144  Findices[in.admsNodeID_b+inst*(14+0)] = in.li_b;
11145  Qindices[in.admsNodeID_b+inst*(14+0)] = in.li_b;
11146  dfdp[in.admsNodeID_e+inst*(14+0)] += staticContributions[in.admsNodeID_e].dx(0);
11147  dqdp[in.admsNodeID_e+inst*(14+0)] += dynamicContributions[in.admsNodeID_e].dx(0);
11148  Findices[in.admsNodeID_e+inst*(14+0)] = in.li_e;
11149  Qindices[in.admsNodeID_e+inst*(14+0)] = in.li_e;
11150  dfdp[in.admsNodeID_s+inst*(14+0)] += staticContributions[in.admsNodeID_s].dx(0);
11151  dqdp[in.admsNodeID_s+inst*(14+0)] += dynamicContributions[in.admsNodeID_s].dx(0);
11152  Findices[in.admsNodeID_s+inst*(14+0)] = in.li_s;
11153  Qindices[in.admsNodeID_s+inst*(14+0)] = in.li_s;
11154  dfdp[in.admsNodeID_dt+inst*(14+0)] += staticContributions[in.admsNodeID_dt].dx(0);
11155  dqdp[in.admsNodeID_dt+inst*(14+0)] += dynamicContributions[in.admsNodeID_dt].dx(0);
11156  Findices[in.admsNodeID_dt+inst*(14+0)] = in.li_dt;
11157  Qindices[in.admsNodeID_dt+inst*(14+0)] = in.li_dt;
11158  dfdp[in.admsNodeID_cx+inst*(14+0)] += staticContributions[in.admsNodeID_cx].dx(0);
11159  dqdp[in.admsNodeID_cx+inst*(14+0)] += dynamicContributions[in.admsNodeID_cx].dx(0);
11160  Findices[in.admsNodeID_cx+inst*(14+0)] = in.li_cx;
11161  Qindices[in.admsNodeID_cx+inst*(14+0)] = in.li_cx;
11162  dfdp[in.admsNodeID_ci+inst*(14+0)] += staticContributions[in.admsNodeID_ci].dx(0);
11163  dqdp[in.admsNodeID_ci+inst*(14+0)] += dynamicContributions[in.admsNodeID_ci].dx(0);
11164  Findices[in.admsNodeID_ci+inst*(14+0)] = in.li_ci;
11165  Qindices[in.admsNodeID_ci+inst*(14+0)] = in.li_ci;
11166  dfdp[in.admsNodeID_bx+inst*(14+0)] += staticContributions[in.admsNodeID_bx].dx(0);
11167  dqdp[in.admsNodeID_bx+inst*(14+0)] += dynamicContributions[in.admsNodeID_bx].dx(0);
11168  Findices[in.admsNodeID_bx+inst*(14+0)] = in.li_bx;
11169  Qindices[in.admsNodeID_bx+inst*(14+0)] = in.li_bx;
11170  dfdp[in.admsNodeID_bi+inst*(14+0)] += staticContributions[in.admsNodeID_bi].dx(0);
11171  dqdp[in.admsNodeID_bi+inst*(14+0)] += dynamicContributions[in.admsNodeID_bi].dx(0);
11172  Findices[in.admsNodeID_bi+inst*(14+0)] = in.li_bi;
11173  Qindices[in.admsNodeID_bi+inst*(14+0)] = in.li_bi;
11174  dfdp[in.admsNodeID_ei+inst*(14+0)] += staticContributions[in.admsNodeID_ei].dx(0);
11175  dqdp[in.admsNodeID_ei+inst*(14+0)] += dynamicContributions[in.admsNodeID_ei].dx(0);
11176  Findices[in.admsNodeID_ei+inst*(14+0)] = in.li_ei;
11177  Qindices[in.admsNodeID_ei+inst*(14+0)] = in.li_ei;
11178  dfdp[in.admsNodeID_bp+inst*(14+0)] += staticContributions[in.admsNodeID_bp].dx(0);
11179  dqdp[in.admsNodeID_bp+inst*(14+0)] += dynamicContributions[in.admsNodeID_bp].dx(0);
11180  Findices[in.admsNodeID_bp+inst*(14+0)] = in.li_bp;
11181  Qindices[in.admsNodeID_bp+inst*(14+0)] = in.li_bp;
11182  dfdp[in.admsNodeID_si+inst*(14+0)] += staticContributions[in.admsNodeID_si].dx(0);
11183  dqdp[in.admsNodeID_si+inst*(14+0)] += dynamicContributions[in.admsNodeID_si].dx(0);
11184  Findices[in.admsNodeID_si+inst*(14+0)] = in.li_si;
11185  Qindices[in.admsNodeID_si+inst*(14+0)] = in.li_si;
11186  dfdp[in.admsNodeID_xf1+inst*(14+0)] += staticContributions[in.admsNodeID_xf1].dx(0);
11187  dqdp[in.admsNodeID_xf1+inst*(14+0)] += dynamicContributions[in.admsNodeID_xf1].dx(0);
11188  Findices[in.admsNodeID_xf1+inst*(14+0)] = in.li_xf1;
11189  Qindices[in.admsNodeID_xf1+inst*(14+0)] = in.li_xf1;
11190  dfdp[in.admsNodeID_xf2+inst*(14+0)] += staticContributions[in.admsNodeID_xf2].dx(0);
11191  dqdp[in.admsNodeID_xf2+inst*(14+0)] += dynamicContributions[in.admsNodeID_xf2].dx(0);
11192  Findices[in.admsNodeID_xf2+inst*(14+0)] = in.li_xf2;
11193  Qindices[in.admsNodeID_xf2+inst*(14+0)] = in.li_xf2;
11194  }
11195 
11196 }
11197 
11198 #endif // Xyce_ADMS_SENSITIVITIES
11199 
11200 } // namespace ADMSvbic13_4t
11201 } // namespace Device
11202 } // namespace Xyce
const InstanceName & getName() const
bool updateTemperature(const double &temp=-999.0)
void registerLIDs(const LocalIdVector &intLIDVecRef, const LocalIdVector &extLIDVecRef)
bool processInstanceParams()
processInstanceParams
virtual std::ostream & printOutInstances(std::ostream &os) const
const SolverState & solverState_
void registerJacLIDs(const JacobianStamp &jacLIDVec)
Descriptor & addPar(const char *parName, T default_value, T U::*varPtr)
Adds the parameter description to the parameter map.
Definition: N_DEV_Pars.h:1429
#define CONSTCtoK
Definition: N_DEV_Const.h:52
std::vector< AdmsFadType > staticContributions
double pnjlim_new(double vnew, double vold, double vt, double vcrit, int *icheck)
Linear::Vector * nextSolVectorPtr
bool given(const std::string &parameter_name) const
Linear::Vector * daeQVectorPtr
Pure virtual class to augment a linear system.
void addInternalNode(Util::SymbolTable &symbol_table, int index, const InstanceName &instance_name, const std::string &lead_name)
Sacado::Fad::SFad< double, 1 > AdmsSensFadType
const JacobianStamp & jacobianStamp() const
#define AssertLIDs(cmp)
void loadNodeSymbols(Util::SymbolTable &symbol_table) const
Populates and returns the store name map.
virtual void registerJacLIDs(const JacobianStamp &jacLIDVec)
std::vector< Param > params
Parameters from the line.
void setParams(const std::vector< Param > &params)
const std::string & getName() const
static std::vector< std::vector< int > > jacStamp
The FactoryBlock contains parameters needed by the device, instance and model creation functions...
const DeviceOptions & getDeviceOptions() const
Parameter is not to be documented.
Definition: N_DEV_Pars.h:72
const DeviceOptions & deviceOptions_
std::vector< std::vector< int > > JacobianStamp
Definition: N_DEV_fwd.h:196
Linear::Vector * nextStaVectorPtr
static Config< T > & addConfiguration()
Adds the device to the Xyce device configuration.
Linear::Matrix * dFdxMatrixPtr
The Device class is an interface for device implementations.
Definition: N_DEV_Device.h:101
Instance(const Configuration &configuration, const InstanceBlock &instance_block, Model &model, const FactoryBlock &factory_block)
IdVector LocalIdVector
Definition: N_DEV_fwd.h:198
ScalarT limRTH(ScalarT orig, ScalarT old)
Sacado::Fad::SFad< double, 21 > AdmsFadType
static std::vector< std::vector< int > > jacMap2
Class Configuration contains device configuration data.
std::vector< Instance * > instanceContainer
virtual void forEachInstance(DeviceInstanceOp &op) const
Apply a device instance "op" to all instances associated with this model.
const SolverState & getSolverState() const
static void loadInstanceParameters(ParametricData< Instance > &instance_parameters)
std::vector< AdmsFadType > dynamicContributions
static T adms_vt(const T temp)
Linear::Vector * currStaVectorPtr
Linear::Vector * daeFVectorPtr
static void loadModelParameters(ParametricData< Model > &model_parameters)
const std::string & getType() const
double gmin
minimum allowed conductance.
void registerStateLIDs(const LocalIdVector &staLIDVecRef)
ModelBlock represents a .MODEL line from the netlist.
Manages parameter binding for class C.
Definition: N_DEV_Pars.h:214
InstanceBlock represent a device instance line from the netlist.
static Device * factory(const Configuration &configuration, const FactoryBlock &factory_block)
bool initJctFlag_
true if on the first newton step of the first dcop solve of the first .STEP iteration. BJT, JFET, Diode, MOSFET, SW, Extern
Util::Param temp
operating temperature of ckt.
std::vector< Param > params
Linear::Matrix * dQdxMatrixPtr
Model(const Configuration &configuration, const ModelBlock &model_block, const FactoryBlock &factory_block)
void setModParams(const std::vector< Param > &params)