Xyce  6.1
N_DEV_ADMSbjt504tva.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_ADMSbjt504tva.C,v $
28 //
29 // Purpose :
30 //
31 // Special Notes : Generated from verilog file bjt504t.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 14:11:21
38 //
39 // Revision Information:
40 // ---------------------
41 //
42 // Revision Number: $Revision: 1.4 $
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_ADMSbjt504tva.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 ADMSbjt504tva {
78 
79 
80 void
82 {
83  // Set up each parameter directly, using the up-cased variable name
84  // as the tag.
85 
86  // This kludge is to force us always to have an instance parameter
87  // that the device manager can set to the temperature, even if we have
88  // no "TEMP".
89  p.addPar("XYCEADMSINSTTEMP", 0.0, &ADMSbjt504tva::Instance::admsInstTemp)
90  .setExpressionAccess(NO_DOC)
91  .setUnit(U_DEGK)
92  .setCategory(CAT_TEMP)
93  .setDescription("Internal-use parameter for setting device instance temperature");
94  p.addPar("MULT", static_cast<double>(1.0), &ADMSbjt504tva::Instance::MULT)
95  .setDescription("Multiplication factor")
96 #ifdef Xyce_ADMS_SENSITIVITIES
97  .setAnalyticSensitivityAvailable(true)
98  .setSensitivityFunctor(&instSens)
99 #endif // Xyce_ADMS_SENSITIVITIES
100  ;
101 
102 
103 }
104 
106 {
107  // Set up each parameter directly, using the up-cased variable name
108  // as the tag.
109 
110  // This kludge is to force us always to have a model parameter
111  // that the device manager can set to the temperature, even if we have
112  // no "TEMP".
113  p.addPar("XYCEADMSMODTEMP", 0.0, &ADMSbjt504tva::Model::admsModTemp)
114  .setExpressionAccess(NO_DOC)
115  .setUnit(U_DEGK)
116  .setCategory(CAT_TEMP)
117  .setDescription("Internal-use parameter for setting device model temperature");
118  p.addPar("LEVEL", static_cast<int>(504), &ADMSbjt504tva::Model::LEVEL)
119  .setDescription("Model level");
120  p.addPar("TREF", static_cast<double>(25.0), &ADMSbjt504tva::Model::TREF)
121  .setUnit(U_DEGC)
122  .setDescription("Reference temperature")
123 #ifdef Xyce_ADMS_SENSITIVITIES
124  .setAnalyticSensitivityAvailable(true)
125  .setSensitivityFunctor(&modSens)
126 #endif // Xyce_ADMS_SENSITIVITIES
127  ;
128  p.addPar("DTA", static_cast<double>(0.0), &ADMSbjt504tva::Model::DTA)
129  .setUnit(U_DEGC)
130  .setDescription("Difference between the local and global ambient temperatures")
131 #ifdef Xyce_ADMS_SENSITIVITIES
132  .setAnalyticSensitivityAvailable(true)
133  .setSensitivityFunctor(&modSens)
134 #endif // Xyce_ADMS_SENSITIVITIES
135  ;
136  p.addPar("EXMOD", static_cast<int>(1), &ADMSbjt504tva::Model::EXMOD)
137  .setDescription("Flag for extended modeling of the reverse current gain");
138  p.addPar("EXPHI", static_cast<int>(1), &ADMSbjt504tva::Model::EXPHI)
139  .setDescription("Flag for the distributed high-frequency effects in transient");
140  p.addPar("EXAVL", static_cast<int>(0), &ADMSbjt504tva::Model::EXAVL)
141  .setDescription("Flag for extended modeling of avalanche currents");
142  p.addPar("EXSUB", static_cast<int>(0), &ADMSbjt504tva::Model::EXSUB)
143  .setDescription("Flag for extended modelling of substrate currents");
144  p.addPar("IS", static_cast<double>(22.0*1.0e-18), &ADMSbjt504tva::Model::IS)
145  .setUnit(U_AMP)
146  .setDescription("Collector-emitter saturation current")
147 #ifdef Xyce_ADMS_SENSITIVITIES
148  .setAnalyticSensitivityAvailable(true)
149  .setSensitivityFunctor(&modSens)
150 #endif // Xyce_ADMS_SENSITIVITIES
151  ;
152  p.addPar("IK", static_cast<double>(0.1), &ADMSbjt504tva::Model::IK)
153  .setUnit(U_AMP)
154  .setDescription("Collector-emitter high injection knee current")
155 #ifdef Xyce_ADMS_SENSITIVITIES
156  .setAnalyticSensitivityAvailable(true)
157  .setSensitivityFunctor(&modSens)
158 #endif // Xyce_ADMS_SENSITIVITIES
159  ;
160  p.addPar("VER", static_cast<double>(2.5), &ADMSbjt504tva::Model::VER)
161  .setUnit(U_VOLT)
162  .setDescription("Reverse Early voltage")
163 #ifdef Xyce_ADMS_SENSITIVITIES
164  .setAnalyticSensitivityAvailable(true)
165  .setSensitivityFunctor(&modSens)
166 #endif // Xyce_ADMS_SENSITIVITIES
167  ;
168  p.addPar("VEF", static_cast<double>(44.0), &ADMSbjt504tva::Model::VEF)
169  .setUnit(U_VOLT)
170  .setDescription("Forward Early voltage")
171 #ifdef Xyce_ADMS_SENSITIVITIES
172  .setAnalyticSensitivityAvailable(true)
173  .setSensitivityFunctor(&modSens)
174 #endif // Xyce_ADMS_SENSITIVITIES
175  ;
176  p.addPar("BF", static_cast<double>(215.0), &ADMSbjt504tva::Model::BF)
177  .setDescription("Ideal forward current gain")
178 #ifdef Xyce_ADMS_SENSITIVITIES
179  .setAnalyticSensitivityAvailable(true)
180  .setSensitivityFunctor(&modSens)
181 #endif // Xyce_ADMS_SENSITIVITIES
182  ;
183  p.addPar("IBF", static_cast<double>(2.7*1.0e-15), &ADMSbjt504tva::Model::IBF)
184  .setUnit(U_AMP)
185  .setDescription("Saturation current of the non-ideal forward base current")
186 #ifdef Xyce_ADMS_SENSITIVITIES
187  .setAnalyticSensitivityAvailable(true)
188  .setSensitivityFunctor(&modSens)
189 #endif // Xyce_ADMS_SENSITIVITIES
190  ;
191  p.addPar("MLF", static_cast<double>(2.0), &ADMSbjt504tva::Model::MLF)
192  .setDescription("Non-ideality factor of the non-ideal forward base current")
193 #ifdef Xyce_ADMS_SENSITIVITIES
194  .setAnalyticSensitivityAvailable(true)
195  .setSensitivityFunctor(&modSens)
196 #endif // Xyce_ADMS_SENSITIVITIES
197  ;
198  p.addPar("XIBI", static_cast<double>(0.0), &ADMSbjt504tva::Model::XIBI)
199  .setDescription("Part of ideal base current that belongs to the sidewall")
200 #ifdef Xyce_ADMS_SENSITIVITIES
201  .setAnalyticSensitivityAvailable(true)
202  .setSensitivityFunctor(&modSens)
203 #endif // Xyce_ADMS_SENSITIVITIES
204  ;
205  p.addPar("IZEB", static_cast<double>(0.0), &ADMSbjt504tva::Model::IZEB)
206  .setUnit(U_AMP)
207  .setDescription("Pre-factor of emitter-base Zener tunneling current")
208 #ifdef Xyce_ADMS_SENSITIVITIES
209  .setAnalyticSensitivityAvailable(true)
210  .setSensitivityFunctor(&modSens)
211 #endif // Xyce_ADMS_SENSITIVITIES
212  ;
213  p.addPar("NZEB", static_cast<double>(22.0), &ADMSbjt504tva::Model::NZEB)
214  .setDescription("Coefficient of emitter-base Zener tunneling current")
215 #ifdef Xyce_ADMS_SENSITIVITIES
216  .setAnalyticSensitivityAvailable(true)
217  .setSensitivityFunctor(&modSens)
218 #endif // Xyce_ADMS_SENSITIVITIES
219  ;
220  p.addPar("BRI", static_cast<double>(7.0), &ADMSbjt504tva::Model::BRI)
221  .setDescription("Ideal reverse current gain")
222 #ifdef Xyce_ADMS_SENSITIVITIES
223  .setAnalyticSensitivityAvailable(true)
224  .setSensitivityFunctor(&modSens)
225 #endif // Xyce_ADMS_SENSITIVITIES
226  ;
227  p.addPar("IBR", static_cast<double>(1.0*1.0e-15), &ADMSbjt504tva::Model::IBR)
228  .setUnit(U_AMP)
229  .setDescription("Saturation current of the non-ideal reverse base current")
230 #ifdef Xyce_ADMS_SENSITIVITIES
231  .setAnalyticSensitivityAvailable(true)
232  .setSensitivityFunctor(&modSens)
233 #endif // Xyce_ADMS_SENSITIVITIES
234  ;
235  p.addPar("VLR", static_cast<double>(0.2), &ADMSbjt504tva::Model::VLR)
236  .setUnit(U_VOLT)
237  .setDescription("Cross-over voltage of the non-ideal reverse base current")
238 #ifdef Xyce_ADMS_SENSITIVITIES
239  .setAnalyticSensitivityAvailable(true)
240  .setSensitivityFunctor(&modSens)
241 #endif // Xyce_ADMS_SENSITIVITIES
242  ;
243  p.addPar("XEXT", static_cast<double>(0.63), &ADMSbjt504tva::Model::XEXT)
244  .setDescription("Part of currents and charges that belong to extrinsic region")
245 #ifdef Xyce_ADMS_SENSITIVITIES
246  .setAnalyticSensitivityAvailable(true)
247  .setSensitivityFunctor(&modSens)
248 #endif // Xyce_ADMS_SENSITIVITIES
249  ;
250  p.addPar("WAVL", static_cast<double>(1.1*1.0e-6), &ADMSbjt504tva::Model::WAVL)
251  .setUnit(U_METER)
252  .setDescription("Epilayer thickness used in weak-avalanche model")
253 #ifdef Xyce_ADMS_SENSITIVITIES
254  .setAnalyticSensitivityAvailable(true)
255  .setSensitivityFunctor(&modSens)
256 #endif // Xyce_ADMS_SENSITIVITIES
257  ;
258  p.addPar("VAVL", static_cast<double>(3.0), &ADMSbjt504tva::Model::VAVL)
259  .setUnit(U_VOLT)
260  .setDescription("Voltage determining curvature of avalanche current")
261 #ifdef Xyce_ADMS_SENSITIVITIES
262  .setAnalyticSensitivityAvailable(true)
263  .setSensitivityFunctor(&modSens)
264 #endif // Xyce_ADMS_SENSITIVITIES
265  ;
266  p.addPar("SFH", static_cast<double>(0.3), &ADMSbjt504tva::Model::SFH)
267  .setDescription("Current spreading factor of avalanche model when EXAVL=1")
268 #ifdef Xyce_ADMS_SENSITIVITIES
269  .setAnalyticSensitivityAvailable(true)
270  .setSensitivityFunctor(&modSens)
271 #endif // Xyce_ADMS_SENSITIVITIES
272  ;
273  p.addPar("RE", static_cast<double>(5.0), &ADMSbjt504tva::Model::RE)
274  .setUnit(U_OHM)
275  .setDescription("Emitter resistance")
276 #ifdef Xyce_ADMS_SENSITIVITIES
277  .setAnalyticSensitivityAvailable(true)
278  .setSensitivityFunctor(&modSens)
279 #endif // Xyce_ADMS_SENSITIVITIES
280  ;
281  p.addPar("RBC", static_cast<double>(23.0), &ADMSbjt504tva::Model::RBC)
282  .setUnit(U_OHM)
283  .setDescription("Constant part of the base resistance")
284 #ifdef Xyce_ADMS_SENSITIVITIES
285  .setAnalyticSensitivityAvailable(true)
286  .setSensitivityFunctor(&modSens)
287 #endif // Xyce_ADMS_SENSITIVITIES
288  ;
289  p.addPar("RBV", static_cast<double>(18.0), &ADMSbjt504tva::Model::RBV)
290  .setUnit(U_OHM)
291  .setDescription("Zero-bias value of the variable part of the base resistance")
292 #ifdef Xyce_ADMS_SENSITIVITIES
293  .setAnalyticSensitivityAvailable(true)
294  .setSensitivityFunctor(&modSens)
295 #endif // Xyce_ADMS_SENSITIVITIES
296  ;
297  p.addPar("RCC", static_cast<double>(12.0), &ADMSbjt504tva::Model::RCC)
298  .setUnit(U_OHM)
299  .setDescription("Constant part of the collector resistance")
300 #ifdef Xyce_ADMS_SENSITIVITIES
301  .setAnalyticSensitivityAvailable(true)
302  .setSensitivityFunctor(&modSens)
303 #endif // Xyce_ADMS_SENSITIVITIES
304  ;
305  p.addPar("RCV", static_cast<double>(150.0), &ADMSbjt504tva::Model::RCV)
306  .setUnit(U_OHM)
307  .setDescription("Resistance of the un-modulated epilayer")
308 #ifdef Xyce_ADMS_SENSITIVITIES
309  .setAnalyticSensitivityAvailable(true)
310  .setSensitivityFunctor(&modSens)
311 #endif // Xyce_ADMS_SENSITIVITIES
312  ;
313  p.addPar("SCRCV", static_cast<double>(1250.0), &ADMSbjt504tva::Model::SCRCV)
314  .setUnit(U_OHM)
315  .setDescription("Space charge resistance of the epilayer")
316 #ifdef Xyce_ADMS_SENSITIVITIES
317  .setAnalyticSensitivityAvailable(true)
318  .setSensitivityFunctor(&modSens)
319 #endif // Xyce_ADMS_SENSITIVITIES
320  ;
321  p.addPar("IHC", static_cast<double>(4.0*1.0e-3), &ADMSbjt504tva::Model::IHC)
322  .setUnit(U_AMP)
323  .setDescription("Critical current for velocity saturation in the epilayer")
324 #ifdef Xyce_ADMS_SENSITIVITIES
325  .setAnalyticSensitivityAvailable(true)
326  .setSensitivityFunctor(&modSens)
327 #endif // Xyce_ADMS_SENSITIVITIES
328  ;
329  p.addPar("AXI", static_cast<double>(0.3), &ADMSbjt504tva::Model::AXI)
330  .setDescription("Smoothness parameter for the onset of quasi-saturation")
331 #ifdef Xyce_ADMS_SENSITIVITIES
332  .setAnalyticSensitivityAvailable(true)
333  .setSensitivityFunctor(&modSens)
334 #endif // Xyce_ADMS_SENSITIVITIES
335  ;
336  p.addPar("CJE", static_cast<double>(73.0*1.0e-15), &ADMSbjt504tva::Model::CJE)
337  .setUnit(U_FARAD)
338  .setDescription("Zero-bias emitter-base depletion capacitance")
339 #ifdef Xyce_ADMS_SENSITIVITIES
340  .setAnalyticSensitivityAvailable(true)
341  .setSensitivityFunctor(&modSens)
342 #endif // Xyce_ADMS_SENSITIVITIES
343  ;
344  p.addPar("VDE", static_cast<double>(0.95), &ADMSbjt504tva::Model::VDE)
345  .setUnit(U_OHM)
346  .setDescription("Emitter-base diffusion voltage")
347 #ifdef Xyce_ADMS_SENSITIVITIES
348  .setAnalyticSensitivityAvailable(true)
349  .setSensitivityFunctor(&modSens)
350 #endif // Xyce_ADMS_SENSITIVITIES
351  ;
352  p.addPar("PE", static_cast<double>(0.4), &ADMSbjt504tva::Model::PE)
353  .setDescription("Emitter-base grading coefficient")
354 #ifdef Xyce_ADMS_SENSITIVITIES
355  .setAnalyticSensitivityAvailable(true)
356  .setSensitivityFunctor(&modSens)
357 #endif // Xyce_ADMS_SENSITIVITIES
358  ;
359  p.addPar("XCJE", static_cast<double>(0.4), &ADMSbjt504tva::Model::XCJE)
360  .setDescription("Sidewall fraction of the emitter-base depletion capacitance")
361 #ifdef Xyce_ADMS_SENSITIVITIES
362  .setAnalyticSensitivityAvailable(true)
363  .setSensitivityFunctor(&modSens)
364 #endif // Xyce_ADMS_SENSITIVITIES
365  ;
366  p.addPar("CBEO", static_cast<double>(0.0), &ADMSbjt504tva::Model::CBEO)
367  .setDescription("Emitter-base overlap capacitance")
368 #ifdef Xyce_ADMS_SENSITIVITIES
369  .setAnalyticSensitivityAvailable(true)
370  .setSensitivityFunctor(&modSens)
371 #endif // Xyce_ADMS_SENSITIVITIES
372  ;
373  p.addPar("CJC", static_cast<double>(78.0*1.0e-15), &ADMSbjt504tva::Model::CJC)
374  .setUnit(U_FARAD)
375  .setDescription("Zero-bias collector-base depletion capacitance")
376 #ifdef Xyce_ADMS_SENSITIVITIES
377  .setAnalyticSensitivityAvailable(true)
378  .setSensitivityFunctor(&modSens)
379 #endif // Xyce_ADMS_SENSITIVITIES
380  ;
381  p.addPar("VDC", static_cast<double>(0.68), &ADMSbjt504tva::Model::VDC)
382  .setUnit(U_VOLT)
383  .setDescription("Collector-base diffusion voltage")
384 #ifdef Xyce_ADMS_SENSITIVITIES
385  .setAnalyticSensitivityAvailable(true)
386  .setSensitivityFunctor(&modSens)
387 #endif // Xyce_ADMS_SENSITIVITIES
388  ;
389  p.addPar("PC", static_cast<double>(0.5), &ADMSbjt504tva::Model::PC)
390  .setDescription("Collector-base grading coefficient")
391 #ifdef Xyce_ADMS_SENSITIVITIES
392  .setAnalyticSensitivityAvailable(true)
393  .setSensitivityFunctor(&modSens)
394 #endif // Xyce_ADMS_SENSITIVITIES
395  ;
396  p.addPar("XP", static_cast<double>(0.35), &ADMSbjt504tva::Model::XP)
397  .setDescription("Constant part of Cjc")
398 #ifdef Xyce_ADMS_SENSITIVITIES
399  .setAnalyticSensitivityAvailable(true)
400  .setSensitivityFunctor(&modSens)
401 #endif // Xyce_ADMS_SENSITIVITIES
402  ;
403  p.addPar("MC", static_cast<double>(0.5), &ADMSbjt504tva::Model::MC)
404  .setDescription("Coefficient for current modulation of CB depletion capacitance")
405 #ifdef Xyce_ADMS_SENSITIVITIES
406  .setAnalyticSensitivityAvailable(true)
407  .setSensitivityFunctor(&modSens)
408 #endif // Xyce_ADMS_SENSITIVITIES
409  ;
410  p.addPar("XCJC", static_cast<double>(32.0*1.0e-3), &ADMSbjt504tva::Model::XCJC)
411  .setDescription("Fraction of CB depletion capacitance under the emitter")
412 #ifdef Xyce_ADMS_SENSITIVITIES
413  .setAnalyticSensitivityAvailable(true)
414  .setSensitivityFunctor(&modSens)
415 #endif // Xyce_ADMS_SENSITIVITIES
416  ;
417  p.addPar("RCBLX", static_cast<double>(0.0), &ADMSbjt504tva::Model::RCBLX)
418  .setUnit(U_OHM)
419  .setDescription("Resistance Collector Buried Layer eXtrinsic")
420 #ifdef Xyce_ADMS_SENSITIVITIES
421  .setAnalyticSensitivityAvailable(true)
422  .setSensitivityFunctor(&modSens)
423 #endif // Xyce_ADMS_SENSITIVITIES
424  ;
425  p.addPar("RCBLI", static_cast<double>(0.0), &ADMSbjt504tva::Model::RCBLI)
426  .setUnit(U_OHM)
427  .setDescription("Resistance Collector Buried Layer Intrinsic")
428 #ifdef Xyce_ADMS_SENSITIVITIES
429  .setAnalyticSensitivityAvailable(true)
430  .setSensitivityFunctor(&modSens)
431 #endif // Xyce_ADMS_SENSITIVITIES
432  ;
433  p.addPar("CBCO", static_cast<double>(0.0), &ADMSbjt504tva::Model::CBCO)
434  .setDescription("Collector-base overlap capacitance")
435 #ifdef Xyce_ADMS_SENSITIVITIES
436  .setAnalyticSensitivityAvailable(true)
437  .setSensitivityFunctor(&modSens)
438 #endif // Xyce_ADMS_SENSITIVITIES
439  ;
440  p.addPar("MTAU", static_cast<double>(1.0), &ADMSbjt504tva::Model::MTAU)
441  .setDescription("Non-ideality factor of the emitter stored charge")
442 #ifdef Xyce_ADMS_SENSITIVITIES
443  .setAnalyticSensitivityAvailable(true)
444  .setSensitivityFunctor(&modSens)
445 #endif // Xyce_ADMS_SENSITIVITIES
446  ;
447  p.addPar("TAUE", static_cast<double>(2.0*1.0e-12), &ADMSbjt504tva::Model::TAUE)
448  .setUnit(U_SECOND)
449  .setDescription("Minimum transit time of stored emitter charge")
450 #ifdef Xyce_ADMS_SENSITIVITIES
451  .setAnalyticSensitivityAvailable(true)
452  .setSensitivityFunctor(&modSens)
453 #endif // Xyce_ADMS_SENSITIVITIES
454  ;
455  p.addPar("TAUB", static_cast<double>(4.2*1.0e-12), &ADMSbjt504tva::Model::TAUB)
456  .setUnit(U_SECOND)
457  .setDescription("Transit time of stored base sharge")
458 #ifdef Xyce_ADMS_SENSITIVITIES
459  .setAnalyticSensitivityAvailable(true)
460  .setSensitivityFunctor(&modSens)
461 #endif // Xyce_ADMS_SENSITIVITIES
462  ;
463  p.addPar("TEPI", static_cast<double>(41.0*1.0e-12), &ADMSbjt504tva::Model::TEPI)
464  .setUnit(U_SECOND)
465  .setDescription("Transit time of stored epilayer charge")
466 #ifdef Xyce_ADMS_SENSITIVITIES
467  .setAnalyticSensitivityAvailable(true)
468  .setSensitivityFunctor(&modSens)
469 #endif // Xyce_ADMS_SENSITIVITIES
470  ;
471  p.addPar("TAUR", static_cast<double>(520.0*1.0e-12), &ADMSbjt504tva::Model::TAUR)
472  .setUnit(U_SECOND)
473  .setDescription("Transit time of reverse extrinsic stored base charge")
474 #ifdef Xyce_ADMS_SENSITIVITIES
475  .setAnalyticSensitivityAvailable(true)
476  .setSensitivityFunctor(&modSens)
477 #endif // Xyce_ADMS_SENSITIVITIES
478  ;
479  p.addPar("DEG", static_cast<double>(0.0), &ADMSbjt504tva::Model::DEG)
480  .setUnit(U_EV)
481  .setDescription("Bandgap difference over the base")
482 #ifdef Xyce_ADMS_SENSITIVITIES
483  .setAnalyticSensitivityAvailable(true)
484  .setSensitivityFunctor(&modSens)
485 #endif // Xyce_ADMS_SENSITIVITIES
486  ;
487  p.addPar("XREC", static_cast<double>(0.0), &ADMSbjt504tva::Model::XREC)
488  .setDescription("Pre-factor of the recombination part of Ib1")
489 #ifdef Xyce_ADMS_SENSITIVITIES
490  .setAnalyticSensitivityAvailable(true)
491  .setSensitivityFunctor(&modSens)
492 #endif // Xyce_ADMS_SENSITIVITIES
493  ;
494  p.addPar("AQBO", static_cast<double>(0.3), &ADMSbjt504tva::Model::AQBO)
495  .setDescription("Temperature coefficient of the zero-bias base charge")
496 #ifdef Xyce_ADMS_SENSITIVITIES
497  .setAnalyticSensitivityAvailable(true)
498  .setSensitivityFunctor(&modSens)
499 #endif // Xyce_ADMS_SENSITIVITIES
500  ;
501  p.addPar("AE", static_cast<double>(0.0), &ADMSbjt504tva::Model::AE)
502  .setDescription("Temperature coefficient of the resistivity of the emitter")
503 #ifdef Xyce_ADMS_SENSITIVITIES
504  .setAnalyticSensitivityAvailable(true)
505  .setSensitivityFunctor(&modSens)
506 #endif // Xyce_ADMS_SENSITIVITIES
507  ;
508  p.addPar("AB", static_cast<double>(1.0), &ADMSbjt504tva::Model::AB)
509  .setDescription("Temperature coefficient of the resistivity of the base")
510 #ifdef Xyce_ADMS_SENSITIVITIES
511  .setAnalyticSensitivityAvailable(true)
512  .setSensitivityFunctor(&modSens)
513 #endif // Xyce_ADMS_SENSITIVITIES
514  ;
515  p.addPar("AEPI", static_cast<double>(2.5), &ADMSbjt504tva::Model::AEPI)
516  .setDescription("Temperature coefficient of the resistivity of the epilayer")
517 #ifdef Xyce_ADMS_SENSITIVITIES
518  .setAnalyticSensitivityAvailable(true)
519  .setSensitivityFunctor(&modSens)
520 #endif // Xyce_ADMS_SENSITIVITIES
521  ;
522  p.addPar("AEX", static_cast<double>(0.62), &ADMSbjt504tva::Model::AEX)
523  .setDescription("Temperature coefficient of the resistivity of the extrinsic base")
524 #ifdef Xyce_ADMS_SENSITIVITIES
525  .setAnalyticSensitivityAvailable(true)
526  .setSensitivityFunctor(&modSens)
527 #endif // Xyce_ADMS_SENSITIVITIES
528  ;
529  p.addPar("AC", static_cast<double>(2.0), &ADMSbjt504tva::Model::AC)
530  .setDescription("Temperature coefficient of the resistivity of the collector contact")
531 #ifdef Xyce_ADMS_SENSITIVITIES
532  .setAnalyticSensitivityAvailable(true)
533  .setSensitivityFunctor(&modSens)
534 #endif // Xyce_ADMS_SENSITIVITIES
535  ;
536  p.addPar("ACBL", static_cast<double>(2.0), &ADMSbjt504tva::Model::ACBL)
537  .setDescription("Temperature coefficient of the resistivity of the collector buried layer")
538 #ifdef Xyce_ADMS_SENSITIVITIES
539  .setAnalyticSensitivityAvailable(true)
540  .setSensitivityFunctor(&modSens)
541 #endif // Xyce_ADMS_SENSITIVITIES
542  ;
543  p.addPar("DVGBF", static_cast<double>(50.0*1.0e-3), &ADMSbjt504tva::Model::DVGBF)
544  .setUnit(U_VOLT)
545  .setDescription("Band-gap voltage difference of the forward current gain")
546 #ifdef Xyce_ADMS_SENSITIVITIES
547  .setAnalyticSensitivityAvailable(true)
548  .setSensitivityFunctor(&modSens)
549 #endif // Xyce_ADMS_SENSITIVITIES
550  ;
551  p.addPar("DVGBR", static_cast<double>(45.0*1.0e-3), &ADMSbjt504tva::Model::DVGBR)
552  .setUnit(U_VOLT)
553  .setDescription("Band-gap voltage difference of the reverse current gain")
554 #ifdef Xyce_ADMS_SENSITIVITIES
555  .setAnalyticSensitivityAvailable(true)
556  .setSensitivityFunctor(&modSens)
557 #endif // Xyce_ADMS_SENSITIVITIES
558  ;
559  p.addPar("VGB", static_cast<double>(1.17), &ADMSbjt504tva::Model::VGB)
560  .setUnit(U_VOLT)
561  .setDescription("Band-gap voltage of the base")
562 #ifdef Xyce_ADMS_SENSITIVITIES
563  .setAnalyticSensitivityAvailable(true)
564  .setSensitivityFunctor(&modSens)
565 #endif // Xyce_ADMS_SENSITIVITIES
566  ;
567  p.addPar("VGC", static_cast<double>(1.18), &ADMSbjt504tva::Model::VGC)
568  .setUnit(U_VOLT)
569  .setDescription("Band-gap voltage of the collector")
570 #ifdef Xyce_ADMS_SENSITIVITIES
571  .setAnalyticSensitivityAvailable(true)
572  .setSensitivityFunctor(&modSens)
573 #endif // Xyce_ADMS_SENSITIVITIES
574  ;
575  p.addPar("VGJ", static_cast<double>(1.15), &ADMSbjt504tva::Model::VGJ)
576  .setUnit(U_VOLT)
577  .setDescription("Band-gap voltage recombination emitter-base junction")
578 #ifdef Xyce_ADMS_SENSITIVITIES
579  .setAnalyticSensitivityAvailable(true)
580  .setSensitivityFunctor(&modSens)
581 #endif // Xyce_ADMS_SENSITIVITIES
582  ;
583  p.addPar("VGZEB", static_cast<double>(1.15), &ADMSbjt504tva::Model::VGZEB)
584  .setUnit(U_VOLT)
585  .setDescription("Band-gap voltage at Tref of Zener effect emitter-base junction")
586 #ifdef Xyce_ADMS_SENSITIVITIES
587  .setAnalyticSensitivityAvailable(true)
588  .setSensitivityFunctor(&modSens)
589 #endif // Xyce_ADMS_SENSITIVITIES
590  ;
591  p.addPar("AVGEB", static_cast<double>(4.73e-4), &ADMSbjt504tva::Model::AVGEB)
592  .setUnit(U_VKM1)
593  .setDescription("Temperature coefficient band-gap voltage for Zener effect emitter-base junction")
594 #ifdef Xyce_ADMS_SENSITIVITIES
595  .setAnalyticSensitivityAvailable(true)
596  .setSensitivityFunctor(&modSens)
597 #endif // Xyce_ADMS_SENSITIVITIES
598  ;
599  p.addPar("TVGEB", static_cast<double>(636.0), &ADMSbjt504tva::Model::TVGEB)
600  .setUnit(U_DEGK)
601  .setDescription("Temperature coefficient band-gap voltage for Zener effect emitter-base junction")
602 #ifdef Xyce_ADMS_SENSITIVITIES
603  .setAnalyticSensitivityAvailable(true)
604  .setSensitivityFunctor(&modSens)
605 #endif // Xyce_ADMS_SENSITIVITIES
606  ;
607  p.addPar("DVGTE", static_cast<double>(0.05), &ADMSbjt504tva::Model::DVGTE)
608  .setUnit(U_VOLT)
609  .setDescription("Band-gap voltage difference of emitter stored charge")
610 #ifdef Xyce_ADMS_SENSITIVITIES
611  .setAnalyticSensitivityAvailable(true)
612  .setSensitivityFunctor(&modSens)
613 #endif // Xyce_ADMS_SENSITIVITIES
614  ;
615  p.addPar("DAIS", static_cast<double>(0.0), &ADMSbjt504tva::Model::DAIS)
616  .setDescription("Fine tuning of temperature dependence of C-E saturation current")
617 #ifdef Xyce_ADMS_SENSITIVITIES
618  .setAnalyticSensitivityAvailable(true)
619  .setSensitivityFunctor(&modSens)
620 #endif // Xyce_ADMS_SENSITIVITIES
621  ;
622  p.addPar("AF", static_cast<double>(2.0), &ADMSbjt504tva::Model::AF)
623  .setDescription("Exponent of the Flicker-noise")
624 #ifdef Xyce_ADMS_SENSITIVITIES
625  .setAnalyticSensitivityAvailable(true)
626  .setSensitivityFunctor(&modSens)
627 #endif // Xyce_ADMS_SENSITIVITIES
628  ;
629  p.addPar("KF", static_cast<double>(20.0*1.0e-12), &ADMSbjt504tva::Model::KF)
630  .setDescription("Flicker-noise coefficient of the ideal base current")
631 #ifdef Xyce_ADMS_SENSITIVITIES
632  .setAnalyticSensitivityAvailable(true)
633  .setSensitivityFunctor(&modSens)
634 #endif // Xyce_ADMS_SENSITIVITIES
635  ;
636  p.addPar("KFN", static_cast<double>(20.0*1.0e-12), &ADMSbjt504tva::Model::KFN)
637  .setDescription("Flicker-noise coefficient of the non-ideal base current")
638 #ifdef Xyce_ADMS_SENSITIVITIES
639  .setAnalyticSensitivityAvailable(true)
640  .setSensitivityFunctor(&modSens)
641 #endif // Xyce_ADMS_SENSITIVITIES
642  ;
643  p.addPar("KAVL", static_cast<int>(0), &ADMSbjt504tva::Model::KAVL)
644  .setDescription("Switch for white noise contribution due to avalanche");
645  p.addPar("ISS", static_cast<double>(48.0*1.0e-18), &ADMSbjt504tva::Model::ISS)
646  .setUnit(U_AMP)
647  .setDescription("Base-substrate saturation current")
648 #ifdef Xyce_ADMS_SENSITIVITIES
649  .setAnalyticSensitivityAvailable(true)
650  .setSensitivityFunctor(&modSens)
651 #endif // Xyce_ADMS_SENSITIVITIES
652  ;
653  p.addPar("ICSS", static_cast<double>((-1.0)), &ADMSbjt504tva::Model::ICSS)
654  .setUnit(U_AMP)
655  .setDescription("Collector-substrate ideal saturation current")
656 #ifdef Xyce_ADMS_SENSITIVITIES
657  .setAnalyticSensitivityAvailable(true)
658  .setSensitivityFunctor(&modSens)
659 #endif // Xyce_ADMS_SENSITIVITIES
660  ;
661  p.addPar("IKS", static_cast<double>(250.0*1.0e-6), &ADMSbjt504tva::Model::IKS)
662  .setUnit(U_AMP)
663  .setDescription("Base-substrate high injection knee current")
664 #ifdef Xyce_ADMS_SENSITIVITIES
665  .setAnalyticSensitivityAvailable(true)
666  .setSensitivityFunctor(&modSens)
667 #endif // Xyce_ADMS_SENSITIVITIES
668  ;
669  p.addPar("CJS", static_cast<double>(315.0*1.0e-15), &ADMSbjt504tva::Model::CJS)
670  .setUnit(U_FARAD)
671  .setDescription("Zero-bias collector-substrate depletion capacitance")
672 #ifdef Xyce_ADMS_SENSITIVITIES
673  .setAnalyticSensitivityAvailable(true)
674  .setSensitivityFunctor(&modSens)
675 #endif // Xyce_ADMS_SENSITIVITIES
676  ;
677  p.addPar("VDS", static_cast<double>(0.62), &ADMSbjt504tva::Model::VDS)
678  .setUnit(U_VOLT)
679  .setDescription("Collector-substrate diffusion voltage")
680 #ifdef Xyce_ADMS_SENSITIVITIES
681  .setAnalyticSensitivityAvailable(true)
682  .setSensitivityFunctor(&modSens)
683 #endif // Xyce_ADMS_SENSITIVITIES
684  ;
685  p.addPar("PS", static_cast<double>(0.34), &ADMSbjt504tva::Model::PS)
686  .setDescription("Collector-substrate grading coefficient")
687 #ifdef Xyce_ADMS_SENSITIVITIES
688  .setAnalyticSensitivityAvailable(true)
689  .setSensitivityFunctor(&modSens)
690 #endif // Xyce_ADMS_SENSITIVITIES
691  ;
692  p.addPar("VGS", static_cast<double>(1.20), &ADMSbjt504tva::Model::VGS)
693  .setUnit(U_VOLT)
694  .setDescription("band-gap voltage of the substrate")
695 #ifdef Xyce_ADMS_SENSITIVITIES
696  .setAnalyticSensitivityAvailable(true)
697  .setSensitivityFunctor(&modSens)
698 #endif // Xyce_ADMS_SENSITIVITIES
699  ;
700  p.addPar("AS", static_cast<double>(1.58), &ADMSbjt504tva::Model::AS)
701  .setDescription("Substrate temperature coefficient")
702 #ifdef Xyce_ADMS_SENSITIVITIES
703  .setAnalyticSensitivityAvailable(true)
704  .setSensitivityFunctor(&modSens)
705 #endif // Xyce_ADMS_SENSITIVITIES
706  ;
707  p.addPar("ASUB", static_cast<double>(2.0), &ADMSbjt504tva::Model::ASUB)
708  .setDescription("Temperature coefficient for mobility of minorities in the substrate")
709 #ifdef Xyce_ADMS_SENSITIVITIES
710  .setAnalyticSensitivityAvailable(true)
711  .setSensitivityFunctor(&modSens)
712 #endif // Xyce_ADMS_SENSITIVITIES
713  ;
714  p.addPar("RTH", static_cast<double>(300.0), &ADMSbjt504tva::Model::RTH)
715  .setDescription("Thermal resistance")
716 #ifdef Xyce_ADMS_SENSITIVITIES
717  .setAnalyticSensitivityAvailable(true)
718  .setSensitivityFunctor(&modSens)
719 #endif // Xyce_ADMS_SENSITIVITIES
720  ;
721  p.addPar("CTH", static_cast<double>(3.0*1.0e-9), &ADMSbjt504tva::Model::CTH)
722  .setDescription("Thermal capacitance")
723 #ifdef Xyce_ADMS_SENSITIVITIES
724  .setAnalyticSensitivityAvailable(true)
725  .setSensitivityFunctor(&modSens)
726 #endif // Xyce_ADMS_SENSITIVITIES
727  ;
728  p.addPar("ATH", static_cast<double>(0.0), &ADMSbjt504tva::Model::ATH)
729  .setDescription("Temperature coefficient of the thermal resistance")
730 #ifdef Xyce_ADMS_SENSITIVITIES
731  .setAnalyticSensitivityAvailable(true)
732  .setSensitivityFunctor(&modSens)
733 #endif // Xyce_ADMS_SENSITIVITIES
734  ;
735  p.addPar("MULT", static_cast<double>(1.0), &ADMSbjt504tva::Model::MULT)
736  .setDescription("Multiplication factor")
737 #ifdef Xyce_ADMS_SENSITIVITIES
738  .setAnalyticSensitivityAvailable(true)
739  .setSensitivityFunctor(&modSens)
740 #endif // Xyce_ADMS_SENSITIVITIES
741  ;
742  p.addPar("TYPE", static_cast<int>(1), &ADMSbjt504tva::Model::TYPE)
743  .setDescription("Flag for NPN (1) or PNP (-1) transistor type");
744  p.addPar("GMIN", static_cast<double>(1.0e-13), &ADMSbjt504tva::Model::GMIN)
745  .setDescription("Minimum conductance")
746 #ifdef Xyce_ADMS_SENSITIVITIES
747  .setAnalyticSensitivityAvailable(true)
748  .setSensitivityFunctor(&modSens)
749 #endif // Xyce_ADMS_SENSITIVITIES
750  ;
751 
752 }
753 
754 //-----------------------------------------------------------------------------
755 // Function : Instance::processParams
756 // Purpose :
757 // Special Notes :
758 // Scope : public
759 // Creator : admsXml
760 // Creation Date :
761 //-----------------------------------------------------------------------------
763 {
764  // set any non-constant parameter defaults
765 
766  // copy any model variables that have associated instance variables, but
767  // are only given in the model card:
768  if (!(given("MULT")))
769  {
770  MULT = model_.MULT;
771  }
772 
773 
774 
775  // Set any parameters that were not given and whose defaults depend on other
776  // parameters:
777 
778 
779  // Now we need to check that any parameters are within their ranges as
780  // specified in the verilog:
781 
782  // Parameter MULT : ] 0.0, (+inf) [
783  if ( (!((MULT >0.0))) )
784  {
785  UserError0(*this) << "ADMSbjt504tva: Parameter MULT value " << MULT << " out of range ] 0.0, (+inf) [";
786  }
787 
788 
789  // this seems a little stupid, but verilog models that use $temperature
790  // don't also use a defined parameter "Temp", and count on $temperature
791  // to be the one the simulator wants:
792 
794 
795  // and of course, this routine is where we should put the initial_instance
796  // stuff
797 
798 
799  return true;
800 }
801 
802 //-----------------------------------------------------------------------------
803 // Function : Instance::Instance
804 // Purpose : "instance block" constructor
805 // Special Notes :
806 // Scope : public
807 // Creator : admsXml
808 // Creation Date :
809 //-----------------------------------------------------------------------------
810 
812  const Configuration & configuration,
813  const InstanceBlock & instance_block,
814  Model & model,
815  const FactoryBlock & factory_block)
816  : DeviceInstance(instance_block, configuration.getInstanceParameters(), factory_block),
817  model_(model),
818  MULT(1.0),
819  Tk(0.0),
820  Izteb(0.0),
821  RE_TM(0.0),
822  RBC_TM(0.0),
823  GCCxx_TM(0.0),
824  GCCex_TM(0.0),
825  GCCin_TM(0.0),
826  KF_M(0.0),
827  KFN_M(0.0),
828  qBI(0.0),
829  Ir(0.0),
830  If(0.0),
831  Ib1(0.0),
832  Ib1_s(0.0),
833  Ib2(0.0),
834  Ib3(0.0),
835  Iex(0.0),
836  XIex(0.0),
837  Isub(0.0),
838  XIsub(0.0),
839  Rb2(0.0),
840  Gem(0.0),
841  eVb1b2(0.0),
842  li_c(-1),
843  li_b(-1),
844  li_e(-1),
845  li_s(-1),
846  li_dt(-1),
847  li_e1(-1),
848  li_b1(-1),
849  li_b2(-1),
850  li_c3(-1),
851  li_c4(-1),
852  li_c2(-1),
853  li_c1(-1),
854  li_noi(-1),
855  f_c1_Equ_c1_Node_Ptr(0),
856  f_c1_Equ_c2_Node_Ptr(0),
857  f_c2_Equ_c1_Node_Ptr(0),
858  f_c2_Equ_c2_Node_Ptr(0),
859  f_c1_Equ_b2_Node_Ptr(0),
860  f_c2_Equ_b2_Node_Ptr(0),
861  f_c1_Equ_dt_Node_Ptr(0),
862  f_c2_Equ_dt_Node_Ptr(0),
863  f_e1_Equ_c1_Node_Ptr(0),
864  f_e1_Equ_c2_Node_Ptr(0),
865  f_e1_Equ_b2_Node_Ptr(0),
866  f_c2_Equ_e1_Node_Ptr(0),
867  f_e1_Equ_e1_Node_Ptr(0),
868  f_e1_Equ_dt_Node_Ptr(0),
869  f_b1_Equ_b1_Node_Ptr(0),
870  f_b1_Equ_e1_Node_Ptr(0),
871  f_e1_Equ_b1_Node_Ptr(0),
872  f_b1_Equ_dt_Node_Ptr(0),
873  f_b2_Equ_b2_Node_Ptr(0),
874  f_b2_Equ_e1_Node_Ptr(0),
875  f_b2_Equ_dt_Node_Ptr(0),
876  f_b2_Equ_c1_Node_Ptr(0),
877  f_b2_Equ_c2_Node_Ptr(0),
878  f_b1_Equ_s_Node_Ptr(0),
879  f_b1_Equ_c1_Node_Ptr(0),
880  f_s_Equ_s_Node_Ptr(0),
881  f_s_Equ_c1_Node_Ptr(0),
882  f_b1_Equ_c4_Node_Ptr(0),
883  f_s_Equ_c4_Node_Ptr(0),
884  f_b1_Equ_c2_Node_Ptr(0),
885  f_s_Equ_c2_Node_Ptr(0),
886  f_b1_Equ_b2_Node_Ptr(0),
887  f_s_Equ_b2_Node_Ptr(0),
888  f_s_Equ_b1_Node_Ptr(0),
889  f_s_Equ_dt_Node_Ptr(0),
890  f_b_Equ_s_Node_Ptr(0),
891  f_b_Equ_c1_Node_Ptr(0),
892  f_b_Equ_c2_Node_Ptr(0),
893  f_b_Equ_b2_Node_Ptr(0),
894  f_b_Equ_e1_Node_Ptr(0),
895  f_s_Equ_e1_Node_Ptr(0),
896  f_b_Equ_c3_Node_Ptr(0),
897  f_b_Equ_c4_Node_Ptr(0),
898  f_s_Equ_c3_Node_Ptr(0),
899  f_b_Equ_b1_Node_Ptr(0),
900  f_b_Equ_b_Node_Ptr(0),
901  f_s_Equ_b_Node_Ptr(0),
902  f_b_Equ_c_Node_Ptr(0),
903  f_s_Equ_c_Node_Ptr(0),
904  f_b_Equ_dt_Node_Ptr(0),
905  f_c1_Equ_s_Node_Ptr(0),
906  f_b1_Equ_c3_Node_Ptr(0),
907  f_b2_Equ_c3_Node_Ptr(0),
908  f_b2_Equ_c4_Node_Ptr(0),
909  f_b1_Equ_b_Node_Ptr(0),
910  f_b2_Equ_b_Node_Ptr(0),
911  f_b2_Equ_b1_Node_Ptr(0),
912  f_b1_Equ_c_Node_Ptr(0),
913  f_b2_Equ_c_Node_Ptr(0),
914  f_c2_Equ_c3_Node_Ptr(0),
915  f_c2_Equ_c4_Node_Ptr(0),
916  f_c2_Equ_b1_Node_Ptr(0),
917  f_c2_Equ_b_Node_Ptr(0),
918  f_c2_Equ_c_Node_Ptr(0),
919  f_e_Equ_dt_Node_Ptr(0),
920  f_e_Equ_e_Node_Ptr(0),
921  f_e_Equ_e1_Node_Ptr(0),
922  f_e1_Equ_e_Node_Ptr(0),
923  f_dt_Equ_dt_Node_Ptr(0),
924  f_dt_Equ_s_Node_Ptr(0),
925  f_dt_Equ_c1_Node_Ptr(0),
926  f_dt_Equ_b1_Node_Ptr(0),
927  f_dt_Equ_e1_Node_Ptr(0),
928  f_dt_Equ_e_Node_Ptr(0),
929  f_dt_Equ_c3_Node_Ptr(0),
930  f_dt_Equ_c4_Node_Ptr(0),
931  f_dt_Equ_b2_Node_Ptr(0),
932  f_dt_Equ_b_Node_Ptr(0),
933  f_dt_Equ_c_Node_Ptr(0),
934  f_dt_Equ_c2_Node_Ptr(0),
935  f_noi_Equ_noi_Node_Ptr(0),
936  f_noi_Equ_e1_Node_Ptr(0),
937  f_e1_Equ_noi_Node_Ptr(0),
938  f_b2_Equ_noi_Node_Ptr(0),
939  f_c2_Equ_noi_Node_Ptr(0),
940  f_e1_Equ_c3_Node_Ptr(0),
941  f_e1_Equ_c4_Node_Ptr(0),
942  f_e1_Equ_b_Node_Ptr(0),
943  f_e1_Equ_c_Node_Ptr(0),
944  f_b_Equ_e_Node_Ptr(0),
945  f_e_Equ_b_Node_Ptr(0),
946  f_c_Equ_b_Node_Ptr(0),
947  f_c_Equ_c_Node_Ptr(0),
948  f_c3_Equ_s_Node_Ptr(0),
949  f_c3_Equ_c1_Node_Ptr(0),
950  f_c3_Equ_c2_Node_Ptr(0),
951  f_c3_Equ_b2_Node_Ptr(0),
952  f_c3_Equ_e1_Node_Ptr(0),
953  f_c3_Equ_c3_Node_Ptr(0),
954  f_c3_Equ_c4_Node_Ptr(0),
955  f_c3_Equ_b1_Node_Ptr(0),
956  f_c3_Equ_b_Node_Ptr(0),
957  f_c3_Equ_c_Node_Ptr(0),
958  f_c3_Equ_dt_Node_Ptr(0),
959  f_c_Equ_dt_Node_Ptr(0),
960  f_c_Equ_c3_Node_Ptr(0),
961  f_c_Equ_c4_Node_Ptr(0),
962  f_c_Equ_c1_Node_Ptr(0),
963  f_c_Equ_c2_Node_Ptr(0),
964  f_c_Equ_b2_Node_Ptr(0),
965  f_c_Equ_b1_Node_Ptr(0),
966  f_c4_Equ_dt_Node_Ptr(0),
967  f_c4_Equ_c4_Node_Ptr(0),
968  f_c4_Equ_c1_Node_Ptr(0),
969  f_c1_Equ_c4_Node_Ptr(0),
970  f_c4_Equ_b2_Node_Ptr(0),
971  f_c4_Equ_e1_Node_Ptr(0),
972  f_c4_Equ_c2_Node_Ptr(0),
973  f_c4_Equ_b1_Node_Ptr(0),
974  f_c4_Equ_c3_Node_Ptr(0),
975  f_c1_Equ_e1_Node_Ptr(0),
976  f_c1_Equ_b1_Node_Ptr(0),
977  f_c1_Equ_c3_Node_Ptr(0),
978  f_c4_Equ_s_Node_Ptr(0),
979  f_c4_Equ_b_Node_Ptr(0),
980  f_c4_Equ_c_Node_Ptr(0),
981  f_c1_Equ_b_Node_Ptr(0),
982  f_c1_Equ_c_Node_Ptr(0),
983  f_noi_Equ_b2_Node_Ptr(0),
984  f_noi_Equ_c1_Node_Ptr(0),
985  f_noi_Equ_c2_Node_Ptr(0),
986  f_noi_Equ_dt_Node_Ptr(0),
987  q_c1_Equ_c1_Node_Ptr(0),
988  q_c1_Equ_c2_Node_Ptr(0),
989  q_c2_Equ_c1_Node_Ptr(0),
990  q_c2_Equ_c2_Node_Ptr(0),
991  q_c1_Equ_b2_Node_Ptr(0),
992  q_c2_Equ_b2_Node_Ptr(0),
993  q_c1_Equ_dt_Node_Ptr(0),
994  q_c2_Equ_dt_Node_Ptr(0),
995  q_e1_Equ_c1_Node_Ptr(0),
996  q_e1_Equ_c2_Node_Ptr(0),
997  q_e1_Equ_b2_Node_Ptr(0),
998  q_c2_Equ_e1_Node_Ptr(0),
999  q_e1_Equ_e1_Node_Ptr(0),
1000  q_e1_Equ_dt_Node_Ptr(0),
1001  q_b1_Equ_b1_Node_Ptr(0),
1002  q_b1_Equ_e1_Node_Ptr(0),
1003  q_e1_Equ_b1_Node_Ptr(0),
1004  q_b1_Equ_dt_Node_Ptr(0),
1005  q_b2_Equ_b2_Node_Ptr(0),
1006  q_b2_Equ_e1_Node_Ptr(0),
1007  q_b2_Equ_dt_Node_Ptr(0),
1008  q_b2_Equ_c1_Node_Ptr(0),
1009  q_b2_Equ_c2_Node_Ptr(0),
1010  q_b1_Equ_s_Node_Ptr(0),
1011  q_b1_Equ_c1_Node_Ptr(0),
1012  q_s_Equ_s_Node_Ptr(0),
1013  q_s_Equ_c1_Node_Ptr(0),
1014  q_b1_Equ_c4_Node_Ptr(0),
1015  q_s_Equ_c4_Node_Ptr(0),
1016  q_b1_Equ_c2_Node_Ptr(0),
1017  q_s_Equ_c2_Node_Ptr(0),
1018  q_b1_Equ_b2_Node_Ptr(0),
1019  q_s_Equ_b2_Node_Ptr(0),
1020  q_s_Equ_b1_Node_Ptr(0),
1021  q_s_Equ_dt_Node_Ptr(0),
1022  q_b_Equ_s_Node_Ptr(0),
1023  q_b_Equ_c1_Node_Ptr(0),
1024  q_b_Equ_c2_Node_Ptr(0),
1025  q_b_Equ_b2_Node_Ptr(0),
1026  q_b_Equ_e1_Node_Ptr(0),
1027  q_s_Equ_e1_Node_Ptr(0),
1028  q_b_Equ_c3_Node_Ptr(0),
1029  q_b_Equ_c4_Node_Ptr(0),
1030  q_s_Equ_c3_Node_Ptr(0),
1031  q_b_Equ_b1_Node_Ptr(0),
1032  q_b_Equ_b_Node_Ptr(0),
1033  q_s_Equ_b_Node_Ptr(0),
1034  q_b_Equ_c_Node_Ptr(0),
1035  q_s_Equ_c_Node_Ptr(0),
1036  q_b_Equ_dt_Node_Ptr(0),
1037  q_c1_Equ_s_Node_Ptr(0),
1038  q_b1_Equ_c3_Node_Ptr(0),
1039  q_b2_Equ_c3_Node_Ptr(0),
1040  q_b2_Equ_c4_Node_Ptr(0),
1041  q_b1_Equ_b_Node_Ptr(0),
1042  q_b2_Equ_b_Node_Ptr(0),
1043  q_b2_Equ_b1_Node_Ptr(0),
1044  q_b1_Equ_c_Node_Ptr(0),
1045  q_b2_Equ_c_Node_Ptr(0),
1046  q_c2_Equ_c3_Node_Ptr(0),
1047  q_c2_Equ_c4_Node_Ptr(0),
1048  q_c2_Equ_b1_Node_Ptr(0),
1049  q_c2_Equ_b_Node_Ptr(0),
1050  q_c2_Equ_c_Node_Ptr(0),
1051  q_e_Equ_dt_Node_Ptr(0),
1052  q_e_Equ_e_Node_Ptr(0),
1053  q_e_Equ_e1_Node_Ptr(0),
1054  q_e1_Equ_e_Node_Ptr(0),
1055  q_dt_Equ_dt_Node_Ptr(0),
1056  q_dt_Equ_s_Node_Ptr(0),
1057  q_dt_Equ_c1_Node_Ptr(0),
1058  q_dt_Equ_b1_Node_Ptr(0),
1059  q_dt_Equ_e1_Node_Ptr(0),
1060  q_dt_Equ_e_Node_Ptr(0),
1061  q_dt_Equ_c3_Node_Ptr(0),
1062  q_dt_Equ_c4_Node_Ptr(0),
1063  q_dt_Equ_b2_Node_Ptr(0),
1064  q_dt_Equ_b_Node_Ptr(0),
1065  q_dt_Equ_c_Node_Ptr(0),
1066  q_dt_Equ_c2_Node_Ptr(0),
1067  q_noi_Equ_noi_Node_Ptr(0),
1068  q_noi_Equ_e1_Node_Ptr(0),
1069  q_e1_Equ_noi_Node_Ptr(0),
1070  q_b2_Equ_noi_Node_Ptr(0),
1071  q_c2_Equ_noi_Node_Ptr(0),
1072  q_e1_Equ_c3_Node_Ptr(0),
1073  q_e1_Equ_c4_Node_Ptr(0),
1074  q_e1_Equ_b_Node_Ptr(0),
1075  q_e1_Equ_c_Node_Ptr(0),
1076  q_b_Equ_e_Node_Ptr(0),
1077  q_e_Equ_b_Node_Ptr(0),
1078  q_c_Equ_b_Node_Ptr(0),
1079  q_c_Equ_c_Node_Ptr(0),
1080  q_c3_Equ_s_Node_Ptr(0),
1081  q_c3_Equ_c1_Node_Ptr(0),
1082  q_c3_Equ_c2_Node_Ptr(0),
1083  q_c3_Equ_b2_Node_Ptr(0),
1084  q_c3_Equ_e1_Node_Ptr(0),
1085  q_c3_Equ_c3_Node_Ptr(0),
1086  q_c3_Equ_c4_Node_Ptr(0),
1087  q_c3_Equ_b1_Node_Ptr(0),
1088  q_c3_Equ_b_Node_Ptr(0),
1089  q_c3_Equ_c_Node_Ptr(0),
1090  q_c3_Equ_dt_Node_Ptr(0),
1091  q_c_Equ_dt_Node_Ptr(0),
1092  q_c_Equ_c3_Node_Ptr(0),
1093  q_c_Equ_c4_Node_Ptr(0),
1094  q_c_Equ_c1_Node_Ptr(0),
1095  q_c_Equ_c2_Node_Ptr(0),
1096  q_c_Equ_b2_Node_Ptr(0),
1097  q_c_Equ_b1_Node_Ptr(0),
1098  q_c4_Equ_dt_Node_Ptr(0),
1099  q_c4_Equ_c4_Node_Ptr(0),
1100  q_c4_Equ_c1_Node_Ptr(0),
1101  q_c1_Equ_c4_Node_Ptr(0),
1102  q_c4_Equ_b2_Node_Ptr(0),
1103  q_c4_Equ_e1_Node_Ptr(0),
1104  q_c4_Equ_c2_Node_Ptr(0),
1105  q_c4_Equ_b1_Node_Ptr(0),
1106  q_c4_Equ_c3_Node_Ptr(0),
1107  q_c1_Equ_e1_Node_Ptr(0),
1108  q_c1_Equ_b1_Node_Ptr(0),
1109  q_c1_Equ_c3_Node_Ptr(0),
1110  q_c4_Equ_s_Node_Ptr(0),
1111  q_c4_Equ_b_Node_Ptr(0),
1112  q_c4_Equ_c_Node_Ptr(0),
1113  q_c1_Equ_b_Node_Ptr(0),
1114  q_c1_Equ_c_Node_Ptr(0),
1115  q_noi_Equ_b2_Node_Ptr(0),
1116  q_noi_Equ_c1_Node_Ptr(0),
1117  q_noi_Equ_c2_Node_Ptr(0),
1118  q_noi_Equ_dt_Node_Ptr(0),
1119  admsTemperature(getDeviceOptions().temp.getImmutableValue<double>())
1120 
1121 {
1122  numIntVars = 8 + 0;
1123  numExtVars = 5;
1124 
1125 
1126  // Right now, we only have state for limited probes...
1127  numStateVars = 4;
1128 
1129 
1130  // Set up jacobian stamp:
1131 
1132  if (jacStamp.empty())
1133  {
1134  jacStamp.resize(13);
1135  jacStamp[admsNodeID_c].resize(9);
1145  jacStamp[admsNodeID_b].resize(12);
1158  jacStamp[admsNodeID_e].resize(4);
1163  jacStamp[admsNodeID_s].resize(11);
1175  jacStamp[admsNodeID_dt].resize(12);
1188  jacStamp[admsNodeID_e1].resize(12);
1201  jacStamp[admsNodeID_b1].resize(11);
1213  jacStamp[admsNodeID_b2].resize(11);
1225  jacStamp[admsNodeID_c3].resize(11);
1237  jacStamp[admsNodeID_c4].resize(11);
1249  jacStamp[admsNodeID_c2].resize(11);
1261  jacStamp[admsNodeID_c1].resize(11);
1273  jacStamp[admsNodeID_noi].resize(6);
1280 
1281 
1282  // This is really not strictly necessary when not mapping away nodes,
1283  // but makes life easier when we get to registerJacLIDs. This block
1284  // simply makes a map that leaves everything in place. Later, when we
1285  // start making nodes go away, we will need to modify this.
1286 
1287  int mapSize = jacStamp.size();
1288  jacMap.clear();
1289  jacMap2.clear();
1290  jacMap.resize(mapSize);
1291  jacMap2.resize(mapSize);
1292  for (int i=0;i<mapSize;++i)
1293  {
1294  int rowSize=jacStamp[i].size();
1295  jacMap[i]=i;
1296  jacMap2[i].resize(rowSize);
1297  for (int j=0;j<rowSize;++j)
1298  {
1299  jacMap2[i][j] = j;
1300  }
1301  }
1302 
1303  }
1304 
1305 
1306  setDefaultParams();
1307  setParams(instance_block.params);
1308 
1309  // Real bogosity here...
1310  if (!given("XYCEADMSINSTTEMP"))
1311  admsInstTemp=getDeviceOptions().temp.getImmutableValue<double>();
1312 
1313  //calculate any parameters specified as expressions
1315 
1316  // calculate dependent (i.e. computed params) and check for errors.
1317  processParams();
1318  collapseNodes();
1319 }
1320 
1321 //-----------------------------------------------------------------------------
1322 // Function : Instance::collapseNodes
1323 // Purpose : function to handle collapsing of nodes
1324 // Special Notes :
1325 // Scope : public
1326 // Creator : admsXml
1327 // Creation Date :
1328 //-----------------------------------------------------------------------------
1330 {
1331  collapseNode_c4 = false;
1332  collapseNode_c1 = false;
1333 
1334  if (((model_.RCBLX)>0.0))
1335  {
1336 
1337  if (!(((model_.RCBLI)>0.0)))
1338  {
1339 
1340  collapseNode_c1 = true;
1341 
1342  }
1343 
1344  }
1345 
1346  else
1347  {
1348 
1349  collapseNode_c4 = true;
1350 
1351  if (!(((model_.RCBLI)>0.0)))
1352  {
1353 
1354  collapseNode_c1 = true;
1355 
1356  }
1357 
1358  }
1359 
1360 
1361 
1362  // Map away any unneeded internal nodes:
1363  // temporary stamps and maps
1364  std::vector< std::vector<int> > tempStamp;
1365  std::vector<int> tempMap;
1366  std::vector< std::vector<int> > tempMap2;
1367 
1368  int OriginalSize = jacMap.size();
1369 
1370  // If the columns of the jacstamp are not in ascending order then
1371  // jacStampMap will do bogus things. Our ADMS back-end doesn't guarantee
1372  // in-order jacStamps. So we reorder (through the maps)
1373  jacStampMap_fixOrder(jacStamp,jacMap2,tempStamp,tempMap2);
1374  jacStamp=tempStamp; jacMap2=tempMap2;
1375 
1376  if (collapseNode_c4)
1377  {
1378  tempStamp.clear(); tempMap.clear(); tempMap2.clear();
1380  tempStamp, tempMap, tempMap2,
1382  OriginalSize);
1383  // now move the new stuff into the old place
1384  jacStamp = tempStamp; jacMap = tempMap; jacMap2 = tempMap2;
1385  numIntVars--;
1386  }
1387  if (collapseNode_c1)
1388  {
1389  tempStamp.clear(); tempMap.clear(); tempMap2.clear();
1391  tempStamp, tempMap, tempMap2,
1393  OriginalSize);
1394  // now move the new stuff into the old place
1395  jacStamp = tempStamp; jacMap = tempMap; jacMap2 = tempMap2;
1396  numIntVars--;
1397  }
1398 }
1399 
1400 //-----------------------------------------------------------------------------
1401 // Function : Instance::~Instance
1402 // Purpose : destructor
1403 // Special Notes :
1404 // Scope : public
1405 // Creator : admsXml
1406 // Creation Date :
1407 //-----------------------------------------------------------------------------
1409 {
1410 }
1411 
1412 //-----------------------------------------------------------------------------
1413 // Function : Instance::registerLIDs
1414 // Purpose : function for registering, and setting up, local ID's.
1415 // Special Notes :
1416 // Scope : public
1417 // Creator : admsXml
1418 // Creation Date :
1419 //-----------------------------------------------------------------------------
1420 void Instance::registerLIDs( const LocalIdVector & intLIDVecRef,
1421  const LocalIdVector & extLIDVecRef)
1422 {
1423  AssertLIDs(intLIDVecRef.size() == numIntVars);
1424  AssertLIDs(extLIDVecRef.size() == numExtVars);
1425 
1426  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS))
1427  {
1428  Xyce::dout() << std::endl << section_divider << std::endl
1429  << "In ADMSbjt504tva::Instance::register LIDs\n\n"
1430  << "name = " << getName() << std::endl
1431  << "number of internal variables: " << numIntVars << std::endl
1432  << "number of external variables: " << numExtVars << std::endl;
1433  }
1434 
1435  // copy over the global ID lists.
1436  intLIDVec = intLIDVecRef;
1437  extLIDVec = extLIDVecRef;
1438 
1439  // Now use these lists to obtain the indices into the linear algebra
1440  // entities. This assumes an order.
1441  int i=0;
1442  li_c = extLIDVecRef[i++];
1443  li_b = extLIDVecRef[i++];
1444  li_e = extLIDVecRef[i++];
1445  li_s = extLIDVecRef[i++];
1446  li_dt = extLIDVecRef[i++];
1447 
1448 
1449  i=0;
1450  li_e1 = intLIDVecRef[i++];
1451  li_b1 = intLIDVecRef[i++];
1452  li_b2 = intLIDVecRef[i++];
1453  li_c3 = intLIDVecRef[i++];
1454  if (!collapseNode_c4)
1455  li_c4 = intLIDVecRef[i++];
1456  else
1457  li_c4 = li_c3;
1458  li_c2 = intLIDVecRef[i++];
1459  if (!collapseNode_c1)
1460  li_c1 = intLIDVecRef[i++];
1461  else
1462  li_c1 = li_c4;
1463  li_noi = intLIDVecRef[i++];
1464 
1465 
1466  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS))
1467  {
1468  Xyce::dout() << "\nSolution and RHS variables:\n";
1469  Xyce::dout() << "\nli_c = " << li_c << std::endl;
1470  Xyce::dout() << "\nli_b = " << li_b << std::endl;
1471  Xyce::dout() << "\nli_e = " << li_e << std::endl;
1472  Xyce::dout() << "\nli_s = " << li_s << std::endl;
1473  Xyce::dout() << "\nli_dt = " << li_dt << std::endl;
1474  Xyce::dout() << "\nli_e1 = " << li_e1 << std::endl;
1475  Xyce::dout() << "\nli_b1 = " << li_b1 << std::endl;
1476  Xyce::dout() << "\nli_b2 = " << li_b2 << std::endl;
1477  Xyce::dout() << "\nli_c3 = " << li_c3 << std::endl;
1478  Xyce::dout() << "\nli_c4 = " << li_c4 << std::endl;
1479  Xyce::dout() << "\nli_c2 = " << li_c2 << std::endl;
1480  Xyce::dout() << "\nli_c1 = " << li_c1 << std::endl;
1481  Xyce::dout() << "\nli_noi = " << li_noi << std::endl;
1482 
1483  Xyce::dout() << "\nEnd of ADMSbjt504tva::Instance::register LIDs\n";
1484  Xyce::dout() << section_divider << std::endl;
1485  }
1486 }
1487 
1488 //-----------------------------------------------------------------------------
1489 // Function : Instance::loadNodeSymbols
1490 // Purpose :
1491 // Special Notes :
1492 // Scope : public
1493 // Creator : admsXml
1494 // Creation Date :
1495 //-----------------------------------------------------------------------------
1496 void Instance::loadNodeSymbols(Util::SymbolTable &symbol_table) const
1497 {
1498  addInternalNode(symbol_table, li_e1, getName(), "e1");
1499  addInternalNode(symbol_table, li_b1, getName(), "b1");
1500  addInternalNode(symbol_table, li_b2, getName(), "b2");
1501  addInternalNode(symbol_table, li_c3, getName(), "c3");
1502  if (!collapseNode_c4)
1503  {
1504  addInternalNode(symbol_table, li_c4, getName(), "c4");
1505  }
1506  addInternalNode(symbol_table, li_c2, getName(), "c2");
1507  if (!collapseNode_c1)
1508  {
1509  addInternalNode(symbol_table, li_c1, getName(), "c1");
1510  }
1511  addInternalNode(symbol_table, li_noi, getName(), "noi");
1512 }
1513 
1514 //-----------------------------------------------------------------------------
1515 // Function : Instance::registerStateLIDs
1516 // Purpose :
1517 // Special Notes :
1518 // Scope : public
1519 // Creator : admsXml
1520 // Creation Date :
1521 //-----------------------------------------------------------------------------
1522 void Instance::registerStateLIDs( const LocalIdVector & staLIDVecRef)
1523 {
1524  AssertLIDs(staLIDVecRef.size() == numStateVars);
1525 
1526  int numSta = staLIDVecRef.size();
1527  if (numSta > 0)
1528  {
1529  int i=0;
1530  staLIDVec = staLIDVecRef;
1531 
1536  }
1537 }
1538 
1539 //-----------------------------------------------------------------------------
1540 // Function : Instance::jacobianStamp
1541 // Purpose :
1542 // Special Notes : In initial version, we won't support mapping away nodes
1543 // Scope : public
1544 // Creator : admsXml
1545 // Creation Date :
1546 //-----------------------------------------------------------------------------
1548 {
1549  return jacStamp;
1550 }
1551 
1552 //-----------------------------------------------------------------------------
1553 // Function : Instance::registerJacLIDs
1554 // Purpose : Create Offset variables used for referencing jacobian
1555 // elements
1556 // Special Notes :
1557 // Scope : public
1558 // Creator : admsXml
1559 // Creation Date :
1560 //-----------------------------------------------------------------------------
1562 {
1564  std::vector<int> & map=jacMap;
1565  std::vector< std::vector<int> > & map2=jacMap2;
1566 
1567 
1568  // do nothing, we won't use the jac lids anymore, we'll use pointers
1569 
1570 }
1571 
1572 //-----------------------------------------------------------------------------
1573 // Function : Instance::setupPointers
1574 // Purpose : Create pointer variables used for referencing jacobian
1575 // elements
1576 // Special Notes :
1577 // Scope : public
1578 // Creator : admsXml
1579 // Creation Date :
1580 //-----------------------------------------------------------------------------
1582 {
1583 
1584  Linear::Matrix * dFdxMatPtr = extData.dFdxMatrixPtr;
1585  Linear::Matrix * dQdxMatPtr = extData.dQdxMatrixPtr;
1586  f_c_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_b);
1587  q_c_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_b);
1588  f_c_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_c);
1589  q_c_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_c);
1590  f_c_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_dt);
1591  q_c_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_dt);
1592  f_c_Equ_c3_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_c3);
1593  q_c_Equ_c3_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_c3);
1594  f_c_Equ_c4_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_c4);
1595  q_c_Equ_c4_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_c4);
1596  f_c_Equ_c1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_c1);
1597  q_c_Equ_c1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_c1);
1598  f_c_Equ_c2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_c2);
1599  q_c_Equ_c2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_c2);
1600  f_c_Equ_b2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_b2);
1601  q_c_Equ_b2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_b2);
1602  f_c_Equ_b1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_b1);
1603  q_c_Equ_b1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_b1);
1604  f_b_Equ_s_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_s);
1605  q_b_Equ_s_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_s);
1606  f_b_Equ_c1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_c1);
1607  q_b_Equ_c1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_c1);
1608  f_b_Equ_c2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_c2);
1609  q_b_Equ_c2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_c2);
1610  f_b_Equ_b2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_b2);
1611  q_b_Equ_b2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_b2);
1612  f_b_Equ_e1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_e1);
1613  q_b_Equ_e1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_e1);
1614  f_b_Equ_c3_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_c3);
1615  q_b_Equ_c3_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_c3);
1616  f_b_Equ_c4_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_c4);
1617  q_b_Equ_c4_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_c4);
1618  f_b_Equ_b1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_b1);
1619  q_b_Equ_b1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_b1);
1620  f_b_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_b);
1621  q_b_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_b);
1622  f_b_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_c);
1623  q_b_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_c);
1624  f_b_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_dt);
1625  q_b_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_dt);
1626  f_b_Equ_e_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_e);
1627  q_b_Equ_e_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_e);
1628  f_e_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e,li_dt);
1629  q_e_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e,li_dt);
1630  f_e_Equ_e_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e,li_e);
1631  q_e_Equ_e_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e,li_e);
1632  f_e_Equ_e1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e,li_e1);
1633  q_e_Equ_e1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e,li_e1);
1634  f_e_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e,li_b);
1635  q_e_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e,li_b);
1636  f_s_Equ_s_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_s,li_s);
1637  q_s_Equ_s_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_s,li_s);
1638  f_s_Equ_c1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_s,li_c1);
1639  q_s_Equ_c1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_s,li_c1);
1640  f_s_Equ_c4_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_s,li_c4);
1641  q_s_Equ_c4_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_s,li_c4);
1642  f_s_Equ_c2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_s,li_c2);
1643  q_s_Equ_c2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_s,li_c2);
1644  f_s_Equ_b2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_s,li_b2);
1645  q_s_Equ_b2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_s,li_b2);
1646  f_s_Equ_b1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_s,li_b1);
1647  q_s_Equ_b1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_s,li_b1);
1648  f_s_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_s,li_dt);
1649  q_s_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_s,li_dt);
1650  f_s_Equ_e1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_s,li_e1);
1651  q_s_Equ_e1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_s,li_e1);
1652  f_s_Equ_c3_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_s,li_c3);
1653  q_s_Equ_c3_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_s,li_c3);
1654  f_s_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_s,li_b);
1655  q_s_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_s,li_b);
1656  f_s_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_s,li_c);
1657  q_s_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_s,li_c);
1658  f_dt_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_dt);
1659  q_dt_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_dt);
1660  f_dt_Equ_s_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_s);
1661  q_dt_Equ_s_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_s);
1662  f_dt_Equ_c1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_c1);
1663  q_dt_Equ_c1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_c1);
1664  f_dt_Equ_b1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_b1);
1665  q_dt_Equ_b1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_b1);
1666  f_dt_Equ_e1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_e1);
1667  q_dt_Equ_e1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_e1);
1668  f_dt_Equ_e_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_e);
1669  q_dt_Equ_e_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_e);
1670  f_dt_Equ_c3_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_c3);
1671  q_dt_Equ_c3_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_c3);
1672  f_dt_Equ_c4_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_c4);
1673  q_dt_Equ_c4_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_c4);
1674  f_dt_Equ_b2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_b2);
1675  q_dt_Equ_b2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_b2);
1676  f_dt_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_b);
1677  q_dt_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_b);
1678  f_dt_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_c);
1679  q_dt_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_c);
1680  f_dt_Equ_c2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_dt,li_c2);
1681  q_dt_Equ_c2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_dt,li_c2);
1682  f_e1_Equ_c1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e1,li_c1);
1683  q_e1_Equ_c1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e1,li_c1);
1684  f_e1_Equ_c2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e1,li_c2);
1685  q_e1_Equ_c2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e1,li_c2);
1686  f_e1_Equ_b2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e1,li_b2);
1687  q_e1_Equ_b2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e1,li_b2);
1688  f_e1_Equ_e1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e1,li_e1);
1689  q_e1_Equ_e1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e1,li_e1);
1690  f_e1_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e1,li_dt);
1691  q_e1_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e1,li_dt);
1692  f_e1_Equ_b1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e1,li_b1);
1693  q_e1_Equ_b1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e1,li_b1);
1694  f_e1_Equ_e_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e1,li_e);
1695  q_e1_Equ_e_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e1,li_e);
1696  f_e1_Equ_noi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e1,li_noi);
1697  q_e1_Equ_noi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e1,li_noi);
1698  f_e1_Equ_c3_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e1,li_c3);
1699  q_e1_Equ_c3_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e1,li_c3);
1700  f_e1_Equ_c4_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e1,li_c4);
1701  q_e1_Equ_c4_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e1,li_c4);
1702  f_e1_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e1,li_b);
1703  q_e1_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e1,li_b);
1704  f_e1_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e1,li_c);
1705  q_e1_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e1,li_c);
1706  f_b1_Equ_b1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b1,li_b1);
1707  q_b1_Equ_b1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b1,li_b1);
1708  f_b1_Equ_e1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b1,li_e1);
1709  q_b1_Equ_e1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b1,li_e1);
1710  f_b1_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b1,li_dt);
1711  q_b1_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b1,li_dt);
1712  f_b1_Equ_s_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b1,li_s);
1713  q_b1_Equ_s_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b1,li_s);
1714  f_b1_Equ_c1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b1,li_c1);
1715  q_b1_Equ_c1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b1,li_c1);
1716  f_b1_Equ_c4_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b1,li_c4);
1717  q_b1_Equ_c4_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b1,li_c4);
1718  f_b1_Equ_c2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b1,li_c2);
1719  q_b1_Equ_c2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b1,li_c2);
1720  f_b1_Equ_b2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b1,li_b2);
1721  q_b1_Equ_b2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b1,li_b2);
1722  f_b1_Equ_c3_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b1,li_c3);
1723  q_b1_Equ_c3_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b1,li_c3);
1724  f_b1_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b1,li_b);
1725  q_b1_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b1,li_b);
1726  f_b1_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b1,li_c);
1727  q_b1_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b1,li_c);
1728  f_b2_Equ_b2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b2,li_b2);
1729  q_b2_Equ_b2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b2,li_b2);
1730  f_b2_Equ_e1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b2,li_e1);
1731  q_b2_Equ_e1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b2,li_e1);
1732  f_b2_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b2,li_dt);
1733  q_b2_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b2,li_dt);
1734  f_b2_Equ_c1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b2,li_c1);
1735  q_b2_Equ_c1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b2,li_c1);
1736  f_b2_Equ_c2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b2,li_c2);
1737  q_b2_Equ_c2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b2,li_c2);
1738  f_b2_Equ_c3_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b2,li_c3);
1739  q_b2_Equ_c3_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b2,li_c3);
1740  f_b2_Equ_c4_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b2,li_c4);
1741  q_b2_Equ_c4_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b2,li_c4);
1742  f_b2_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b2,li_b);
1743  q_b2_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b2,li_b);
1744  f_b2_Equ_b1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b2,li_b1);
1745  q_b2_Equ_b1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b2,li_b1);
1746  f_b2_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b2,li_c);
1747  q_b2_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b2,li_c);
1748  f_b2_Equ_noi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b2,li_noi);
1749  q_b2_Equ_noi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b2,li_noi);
1750  f_c3_Equ_s_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c3,li_s);
1751  q_c3_Equ_s_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c3,li_s);
1752  f_c3_Equ_c1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c3,li_c1);
1753  q_c3_Equ_c1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c3,li_c1);
1754  f_c3_Equ_c2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c3,li_c2);
1755  q_c3_Equ_c2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c3,li_c2);
1756  f_c3_Equ_b2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c3,li_b2);
1757  q_c3_Equ_b2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c3,li_b2);
1758  f_c3_Equ_e1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c3,li_e1);
1759  q_c3_Equ_e1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c3,li_e1);
1760  f_c3_Equ_c3_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c3,li_c3);
1761  q_c3_Equ_c3_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c3,li_c3);
1762  f_c3_Equ_c4_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c3,li_c4);
1763  q_c3_Equ_c4_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c3,li_c4);
1764  f_c3_Equ_b1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c3,li_b1);
1765  q_c3_Equ_b1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c3,li_b1);
1766  f_c3_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c3,li_b);
1767  q_c3_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c3,li_b);
1768  f_c3_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c3,li_c);
1769  q_c3_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c3,li_c);
1770  f_c3_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c3,li_dt);
1771  q_c3_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c3,li_dt);
1772  f_c4_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c4,li_dt);
1773  q_c4_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c4,li_dt);
1774  f_c4_Equ_c4_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c4,li_c4);
1775  q_c4_Equ_c4_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c4,li_c4);
1776  f_c4_Equ_c1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c4,li_c1);
1777  q_c4_Equ_c1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c4,li_c1);
1778  f_c4_Equ_b2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c4,li_b2);
1779  q_c4_Equ_b2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c4,li_b2);
1780  f_c4_Equ_e1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c4,li_e1);
1781  q_c4_Equ_e1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c4,li_e1);
1782  f_c4_Equ_c2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c4,li_c2);
1783  q_c4_Equ_c2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c4,li_c2);
1784  f_c4_Equ_b1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c4,li_b1);
1785  q_c4_Equ_b1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c4,li_b1);
1786  f_c4_Equ_c3_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c4,li_c3);
1787  q_c4_Equ_c3_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c4,li_c3);
1788  f_c4_Equ_s_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c4,li_s);
1789  q_c4_Equ_s_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c4,li_s);
1790  f_c4_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c4,li_b);
1791  q_c4_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c4,li_b);
1792  f_c4_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c4,li_c);
1793  q_c4_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c4,li_c);
1794  f_c2_Equ_c1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c2,li_c1);
1795  q_c2_Equ_c1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c2,li_c1);
1796  f_c2_Equ_c2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c2,li_c2);
1797  q_c2_Equ_c2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c2,li_c2);
1798  f_c2_Equ_b2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c2,li_b2);
1799  q_c2_Equ_b2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c2,li_b2);
1800  f_c2_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c2,li_dt);
1801  q_c2_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c2,li_dt);
1802  f_c2_Equ_e1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c2,li_e1);
1803  q_c2_Equ_e1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c2,li_e1);
1804  f_c2_Equ_c3_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c2,li_c3);
1805  q_c2_Equ_c3_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c2,li_c3);
1806  f_c2_Equ_c4_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c2,li_c4);
1807  q_c2_Equ_c4_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c2,li_c4);
1808  f_c2_Equ_b1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c2,li_b1);
1809  q_c2_Equ_b1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c2,li_b1);
1810  f_c2_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c2,li_b);
1811  q_c2_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c2,li_b);
1812  f_c2_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c2,li_c);
1813  q_c2_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c2,li_c);
1814  f_c2_Equ_noi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c2,li_noi);
1815  q_c2_Equ_noi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c2,li_noi);
1816  f_c1_Equ_c1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c1,li_c1);
1817  q_c1_Equ_c1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c1,li_c1);
1818  f_c1_Equ_c2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c1,li_c2);
1819  q_c1_Equ_c2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c1,li_c2);
1820  f_c1_Equ_b2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c1,li_b2);
1821  q_c1_Equ_b2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c1,li_b2);
1822  f_c1_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c1,li_dt);
1823  q_c1_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c1,li_dt);
1824  f_c1_Equ_s_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c1,li_s);
1825  q_c1_Equ_s_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c1,li_s);
1826  f_c1_Equ_c4_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c1,li_c4);
1827  q_c1_Equ_c4_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c1,li_c4);
1828  f_c1_Equ_e1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c1,li_e1);
1829  q_c1_Equ_e1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c1,li_e1);
1830  f_c1_Equ_b1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c1,li_b1);
1831  q_c1_Equ_b1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c1,li_b1);
1832  f_c1_Equ_c3_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c1,li_c3);
1833  q_c1_Equ_c3_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c1,li_c3);
1834  f_c1_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c1,li_b);
1835  q_c1_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c1,li_b);
1836  f_c1_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c1,li_c);
1837  q_c1_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c1,li_c);
1838  f_noi_Equ_noi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_noi,li_noi);
1839  q_noi_Equ_noi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_noi,li_noi);
1840  f_noi_Equ_e1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_noi,li_e1);
1841  q_noi_Equ_e1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_noi,li_e1);
1842  f_noi_Equ_b2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_noi,li_b2);
1843  q_noi_Equ_b2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_noi,li_b2);
1844  f_noi_Equ_c1_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_noi,li_c1);
1845  q_noi_Equ_c1_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_noi,li_c1);
1846  f_noi_Equ_c2_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_noi,li_c2);
1847  q_noi_Equ_c2_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_noi,li_c2);
1848  f_noi_Equ_dt_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_noi,li_dt);
1849  q_noi_Equ_dt_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_noi,li_dt);
1850 
1851 
1852 }
1853 
1854 // RHS load functions
1855 
1856 //-----------------------------------------------------------------------------
1857 // Function : Instance::loadDAEFVector
1858 // Purpose : load F vector (static contributions) for one instance for
1859 // NEW DAE formulation
1860 // Special Notes :
1861 // Scope : public
1862 // Creator : admsXml
1863 // Creation Date :
1864 //-----------------------------------------------------------------------------
1866 {
1867 
1868  bool bsuccess=true;
1869 
1884  {
1885  double *dFdxdVp = extData.dFdxdVpVectorRawPtr;
1886  dFdxdVp[li_c] += Jdxp_static[admsNodeID_c];
1887  dFdxdVp[li_b] += Jdxp_static[admsNodeID_b];
1888  dFdxdVp[li_e] += Jdxp_static[admsNodeID_e];
1889  dFdxdVp[li_s] += Jdxp_static[admsNodeID_s];
1890  dFdxdVp[li_dt] += Jdxp_static[admsNodeID_dt];
1891  dFdxdVp[li_e1] += Jdxp_static[admsNodeID_e1];
1892  dFdxdVp[li_b1] += Jdxp_static[admsNodeID_b1];
1893  dFdxdVp[li_b2] += Jdxp_static[admsNodeID_b2];
1894  dFdxdVp[li_c3] += Jdxp_static[admsNodeID_c3];
1895  dFdxdVp[li_c4] += Jdxp_static[admsNodeID_c4];
1896  dFdxdVp[li_c2] += Jdxp_static[admsNodeID_c2];
1897  dFdxdVp[li_c1] += Jdxp_static[admsNodeID_c1];
1898  dFdxdVp[li_noi] += Jdxp_static[admsNodeID_noi];
1899 
1900  }
1901 
1902  return bsuccess;
1903 }
1904 
1905 //-----------------------------------------------------------------------------
1906 // Function : Instance::loadDAEQVector
1907 // Purpose : load Q vector (dynamic contributions) for one instance for
1908 // NEW DAE formulation
1909 // Special Notes :
1910 // Scope : public
1911 // Creator : admsXml
1912 // Creation Date :
1913 //-----------------------------------------------------------------------------
1915 {
1930  {
1931  double *dQdxdVp = extData.dQdxdVpVectorRawPtr;
1932  dQdxdVp[li_c] += Jdxp_dynamic[admsNodeID_c];
1933  dQdxdVp[li_b] += Jdxp_dynamic[admsNodeID_b];
1934  dQdxdVp[li_e] += Jdxp_dynamic[admsNodeID_e];
1935  dQdxdVp[li_s] += Jdxp_dynamic[admsNodeID_s];
1936  dQdxdVp[li_dt] += Jdxp_dynamic[admsNodeID_dt];
1937  dQdxdVp[li_e1] += Jdxp_dynamic[admsNodeID_e1];
1938  dQdxdVp[li_b1] += Jdxp_dynamic[admsNodeID_b1];
1939  dQdxdVp[li_b2] += Jdxp_dynamic[admsNodeID_b2];
1940  dQdxdVp[li_c3] += Jdxp_dynamic[admsNodeID_c3];
1941  dQdxdVp[li_c4] += Jdxp_dynamic[admsNodeID_c4];
1942  dQdxdVp[li_c2] += Jdxp_dynamic[admsNodeID_c2];
1943  dQdxdVp[li_c1] += Jdxp_dynamic[admsNodeID_c1];
1944  dQdxdVp[li_noi] += Jdxp_dynamic[admsNodeID_noi];
1945  }
1946 
1947  return true;
1948 }
1949 
1950 
1951 //-----------------------------------------------------------------------------
1952 // Function : Instance::updatePrimaryState
1953 // Purpose :
1954 // Special Notes : In this initial implementation, does little more than
1955 // call updateIntermediateVars()
1956 // Scope : public
1957 // Creator : admsXml
1958 // Creation Date :
1959 //-----------------------------------------------------------------------------
1961 {
1962  bool bsuccess = true;
1963 
1964  bsuccess = updateIntermediateVars();
1965 
1966  // if old DAE were implemented, we'd save dynamic contributions as state
1967  // here.
1968 
1969  double * staVec = extData.nextStaVectorRawPtr;
1970  // Also need to save limited voltage drops
1971  // This formulation assumes that we have *always* written the
1972  // limited voltages back into the probeVars[] array.
1973 
1978 
1979  return bsuccess;
1980 }
1981 
1982 //-----------------------------------------------------------------------------
1983 // Function : Instance::updateSecondaryState
1984 // Purpose :
1985 // Special Notes : In this initial implementation, does nothing
1986 // Scope : public
1987 // Creator : admsXml
1988 // Creation Date :
1989 //-----------------------------------------------------------------------------
1991 {
1992  bool bsuccess = true;
1993 
1994  // were old DAE implemented, we'd pull dynamic contribution derivatives
1995  // out of state.
1996 
1997  return bsuccess;
1998 }
1999 
2000 //-----------------------------------------------------------------------------
2001 // Function : Instance::updateIntermediateVars
2002 // Purpose : update intermediate variables for one bjt504tva instance
2003 // Special Notes :
2004 // Scope : public
2005 // Creator : admsXml
2006 // Creation Date :
2007 //-----------------------------------------------------------------------------
2009 {
2010 
2011  bool bsuccess=true;
2012  Linear::Vector * solVectorPtr = extData.nextSolVectorPtr;
2013 
2014  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
2015  {
2016  Xyce::dout() << std::endl << subsection_divider << std::endl;
2017  Xyce::dout() << " In ADMSbjt504tva::Instance::updateIntermediateVars\n\n";
2018  Xyce::dout() << " name = " << getName() << std::endl;
2019  }
2020 
2021  // Local variables
2022  AdmsFadType common;
2023  AdmsFadType powerREC;
2024  AdmsFadType powerRBC;
2025  AdmsFadType powerRCCxx;
2026  AdmsFadType powerRCCex;
2027  AdmsFadType powerRCCin;
2028  AdmsFadType powerRBV;
2029  AdmsFadType powerCCS;
2030  AdmsFadType powerFBCS;
2031  AdmsFadType powerFBC1fB1;
2032  double exponentFBC1fB2;
2033  AdmsFadType powerFBC1fB2;
2034  AdmsFadType powerEBSCS;
2035  AdmsFadType powerEBSC1f;
2036  AdmsFadType powerRBCS;
2037  AdmsFadType powerRBC1f;
2038  AdmsFadType powerExCS;
2039  AdmsFadType powerExC1f;
2040  AdmsFadType powerExCSMOD;
2041  AdmsFadType powerExC1fMOD;
2042  AdmsFadType powerSubsCS_B1S;
2043  AdmsFadType powerSubsCS_BS;
2044  AdmsFadType twoqIavl;
2045  AdmsFadType powerCCS_A;
2046  AdmsFadType Vb2c1;
2047  AdmsFadType Vb2c2;
2048  AdmsFadType Vb2e1;
2049  AdmsFadType Vb1e1;
2050  AdmsFadType Vb1b2;
2051  AdmsFadType Vsc1;
2052  AdmsFadType Vc1c2;
2053  AdmsFadType Vee1;
2054  AdmsFadType Vbb1;
2055  AdmsFadType Vbe;
2056  AdmsFadType Vbc;
2057  AdmsFadType Vc4c1;
2058  AdmsFadType Vc3c4;
2059  AdmsFadType Vb1c4;
2060  AdmsFadType Vcc3;
2061  AdmsFadType Vbc3;
2062  AdmsFadType Vsc4;
2063  AdmsFadType Vsc3;
2064  double expl;
2065  AdmsFadType eVb2c2;
2066  AdmsFadType eVb2e1;
2067  AdmsFadType eVb1e1;
2068  AdmsFadType eVb1c4;
2069  AdmsFadType eVbc3;
2070  AdmsFadType eVsc1;
2071  AdmsFadType eVsc3;
2072  AdmsFadType eVsc4;
2073  AdmsFadType eVbc3VDC;
2074  AdmsFadType eVb1c4VDC;
2075  AdmsFadType eVb2c2VDC;
2076  AdmsFadType eVb2c1VDC;
2077  AdmsFadType K0;
2078  AdmsFadType Kw;
2079  AdmsFadType pW;
2080  AdmsFadType Ec;
2081  AdmsFadType Ic1c2;
2082  AdmsFadType pav;
2083  AdmsFadType tmpV;
2084  AdmsFadType Vqs_th;
2085  AdmsFadType eps_VDC;
2086  AdmsFadType eps2;
2087  AdmsFadType x2;
2088  AdmsFadType Vqs;
2089  AdmsFadType Iqs;
2090  AdmsFadType Ic1c2_Iqs;
2091  AdmsFadType alpha1;
2092  AdmsFadType alpha;
2093  AdmsFadType vyi;
2094  AdmsFadType yi;
2095  AdmsFadType xi_w;
2096  AdmsFadType gp0;
2097  AdmsFadType gp0_help;
2098  AdmsFadType gp02;
2099  AdmsFadType sqr_arg;
2100  AdmsFadType p0star;
2101  AdmsFadType eVb2c2star;
2102  AdmsFadType B1;
2103  AdmsFadType B2;
2104  AdmsFadType Vxi0;
2105  AdmsFadType Vch;
2106  AdmsFadType Icap;
2107  AdmsFadType Icap_IHC;
2108  AdmsFadType Vfe;
2109  AdmsFadType a_VDE;
2110  AdmsFadType Vje;
2111  AdmsFadType E0BE;
2112  AdmsFadType Vte;
2113  AdmsFadType Vjunc;
2114  AdmsFadType bjc;
2115  AdmsFadType Vfc;
2116  AdmsFadType Vjc;
2117  AdmsFadType fI;
2118  AdmsFadType Vcv;
2119  AdmsFadType Vtc;
2120  AdmsFadType If0;
2121  AdmsFadType f1;
2122  AdmsFadType n0;
2123  AdmsFadType f2;
2124  AdmsFadType nB;
2125  AdmsFadType termE;
2126  AdmsFadType termC;
2127  AdmsFadType q0I;
2128  AdmsFadType q1I;
2129  AdmsFadType In;
2130  AdmsFadType Ibf0;
2131  AdmsFadType tmpExp;
2132  AdmsFadType eZEB;
2133  AdmsFadType x;
2134  AdmsFadType dE0BE;
2135  AdmsFadType edZEB;
2136  AdmsFadType DZEB;
2137  AdmsFadType g1;
2138  AdmsFadType g2;
2139  AdmsFadType nBex;
2140  AdmsFadType pWex;
2141  AdmsFadType Isf;
2142  AdmsFadType Xg1;
2143  AdmsFadType XnBex;
2144  AdmsFadType XIMex;
2145  AdmsFadType XIMsub;
2146  AdmsFadType Vex_bias;
2147  AdmsFadType Vex;
2148  AdmsFadType vdif;
2149  AdmsFadType VBex;
2150  AdmsFadType Fex;
2151  AdmsFadType q0Q;
2152  AdmsFadType q1Q;
2153  AdmsFadType qBQ;
2154  AdmsFadType Ib1b2;
2155  AdmsFadType Iavl;
2156  double dEdx0;
2157  AdmsFadType xd;
2158  AdmsFadType xi_w1;
2159  AdmsFadType Weff;
2160  AdmsFadType Wd;
2161  AdmsFadType Eav;
2162  AdmsFadType E0;
2163  AdmsFadType SHw;
2164  double Efi;
2165  AdmsFadType Ew;
2166  AdmsFadType Em;
2167  AdmsFadType EmEav_Em;
2168  AdmsFadType lambda;
2169  AdmsFadType Gmax;
2170  AdmsFadType Vb2c2star;
2171  AdmsFadType power;
2172  AdmsFadType Qte;
2173  AdmsFadType Vje_s;
2174  AdmsFadType Qte_s;
2175  AdmsFadType Qtc;
2176  AdmsFadType Qb0;
2177  AdmsFadType Qbe_qs;
2178  AdmsFadType Qbc_qs;
2179  AdmsFadType a_VDC;
2180  AdmsFadType Vjcex;
2181  AdmsFadType Vtexv;
2182  AdmsFadType Qtex;
2183  AdmsFadType XVjcex;
2184  AdmsFadType XVtexv;
2185  AdmsFadType XQtex;
2186  AdmsFadType a_VDS;
2187  AdmsFadType Vfs;
2188  AdmsFadType Vjs;
2189  AdmsFadType Qts;
2190  AdmsFadType Qe0;
2191  AdmsFadType Qe;
2192  AdmsFadType Qepi0;
2193  AdmsFadType Qepi;
2194  AdmsFadType Qex;
2195  AdmsFadType XQex;
2196  AdmsFadType Xg2;
2197  AdmsFadType XpWex;
2198  AdmsFadType Qb1b2;
2199  AdmsFadType dVteVje;
2200  AdmsFadType Vb2e1Vfe;
2201  AdmsFadType dVjeVb2e1;
2202  AdmsFadType dVteVb2e1;
2203  AdmsFadType dQteVb2e1;
2204  AdmsFadType dn0Vb2e1;
2205  AdmsFadType dQbeVb2e1;
2206  AdmsFadType dQeVb2e1;
2207  AdmsFadType Qbc;
2208  AdmsFadType Qbe;
2209  AdmsFadType cor_exp_1;
2210  AdmsFadType cor_exp_2;
2211  double RTH_Tamb_M;
2212  AdmsFadType RCV_TM;
2213  AdmsFadType RCCin_TM;
2214  AdmsFadType RCCex_TM;
2215  AdmsFadType RCCxx_TM;
2216  AdmsFadType RBV_TM;
2217  AdmsFadType CJS_TM;
2218  AdmsFadType CJC_TM;
2219  AdmsFadType CJE_TM;
2220  AdmsFadType IKS_TM;
2221  AdmsFadType ICSS_TM;
2222  AdmsFadType ISS_TM;
2223  double IHC_M;
2224  AdmsFadType IZEB_TM;
2225  AdmsFadType IBR_TM;
2226  AdmsFadType IBF_TM;
2227  AdmsFadType IK_TM;
2228  AdmsFadType IS_TM;
2229  double RTH_Tamb;
2230  AdmsFadType DEG_T;
2231  AdmsFadType BnT;
2232  AdmsFadType Tk300;
2233  AdmsFadType TAUR_T;
2234  AdmsFadType TEPI_T;
2235  AdmsFadType TAUB_T;
2236  AdmsFadType TAUE_T;
2237  AdmsFadType IKS_T;
2238  AdmsFadType ICSS_T;
2239  AdmsFadType ISS_T;
2240  AdmsFadType VER_T;
2241  AdmsFadType VEF_T;
2242  AdmsFadType IZEB_T;
2243  AdmsFadType nZEB_T;
2244  AdmsFadType y;
2245  AdmsFadType tempx;
2246  AdmsFadType IBR_T;
2247  AdmsFadType IBF_T;
2248  AdmsFadType IK_T;
2249  AdmsFadType IS_T;
2250  AdmsFadType BRI_T;
2251  AdmsFadType BF_T;
2252  AdmsFadType RCV_T;
2253  AdmsFadType RCCin_T;
2254  AdmsFadType RCCex_T;
2255  AdmsFadType RCCxx_T;
2256  AdmsFadType RBC_T;
2257  AdmsFadType RBV_T;
2258  AdmsFadType RE_T;
2259  AdmsFadType XP_T;
2260  AdmsFadType CJC_T;
2261  AdmsFadType CJCscaleINV;
2262  AdmsFadType CJCscale;
2263  AdmsFadType CJS_T;
2264  AdmsFadType CJE_T;
2265  AdmsFadType CJE_T_div_CJE;
2266  AdmsFadType inv_VDE_T;
2267  AdmsFadType VDS_T;
2268  AdmsFadType UdsT;
2269  AdmsFadType VDC_T;
2270  AdmsFadType UdcT;
2271  AdmsFadType VDE_T;
2272  AdmsFadType UdeT;
2273  AdmsFadType VGZEB_T;
2274  AdmsFadType lntN;
2275  AdmsFadType VdtINV;
2276  double VtrINV;
2277  AdmsFadType VtINV;
2278  double Vtr;
2279  AdmsFadType Vt;
2280  AdmsFadType tN;
2281  double Tamb;
2282  AdmsFadType Vdt;
2283  AdmsFadType Tki;
2284  double inv_VDE;
2285  double inv_VGZEB_Tr;
2286  double VGZEB_Tr;
2287  double VGZEBOK;
2288  double Trk;
2289  double pow2_PEm2;
2290  double pow2_2mPE;
2291  double SCRCV_M;
2292  double invMULT;
2293  double CBCO_M;
2294  double CBEO_M;
2295  double CTH_M;
2296  double Xext1;
2297  double Bn;
2298  double An;
2299  // temporary variables for limiting
2300  double Vb1b2_orig,Vb1b2_limited,Vb1b2_old;
2301  double Vb1e1_orig,Vb1e1_limited,Vb1e1_old;
2302  double Vb2c2_orig,Vb2c2_limited,Vb2c2_old;
2303  double Vb2c1_orig,Vb2c1_limited,Vb2c1_old;
2304 
2305 
2306  // set the sizes of the Fad arrays:
2307 
2308  if (probeVars.size() != (16))
2309  {
2310  probeVars.resize(16);
2311  staticContributions.resize(13+0);
2312  dynamicContributions.resize(13+0);
2313  probeDiffs.resize(16,0.0);
2314  Jdxp_static.resize(13+0);
2315  Jdxp_dynamic.resize(13+0);
2316  }
2317 
2318  // initialize contributions to zero (automatically sets derivatives to zero)
2319  for (int i=0; i < 13+0 ; ++i)
2320  {
2321  staticContributions[i]=0;
2322  dynamicContributions[i]=0;
2323  Jdxp_static[i]=0;
2324  Jdxp_dynamic[i]=0;
2325  }
2326 
2327  for (int i=0; i < 16 ; ++i)
2328  {
2329  probeDiffs[i] = 0.0;
2330  }
2331  // extract solution variables and set as Fad independent variables.
2332 
2333  probeVars[admsProbeID_V_noi_e1] = (*solVectorPtr)[li_noi] - (*solVectorPtr)[li_e1];
2335 
2336  probeVars[admsProbeID_V_c3_c1] = (*solVectorPtr)[li_c3] - (*solVectorPtr)[li_c1];
2338 
2339  probeVars[admsProbeID_V_c3_c4] = (*solVectorPtr)[li_c3] - (*solVectorPtr)[li_c4];
2341 
2342  probeVars[admsProbeID_V_c4_c1] = (*solVectorPtr)[li_c4] - (*solVectorPtr)[li_c1];
2344 
2345  probeVars[admsProbeID_V_b_c] = (*solVectorPtr)[li_b] - (*solVectorPtr)[li_c];
2347 
2348  probeVars[admsProbeID_V_b_e] = (*solVectorPtr)[li_b] - (*solVectorPtr)[li_e];
2350 
2351  probeVars[admsProbeID_V_b_b1] = (*solVectorPtr)[li_b] - (*solVectorPtr)[li_b1];
2353 
2354  probeVars[admsProbeID_V_e_e1] = (*solVectorPtr)[li_e] - (*solVectorPtr)[li_e1];
2356 
2357  probeVars[admsProbeID_V_c1_c2] = (*solVectorPtr)[li_c1] - (*solVectorPtr)[li_c2];
2359 
2360  probeVars[admsProbeID_V_s_c1] = (*solVectorPtr)[li_s] - (*solVectorPtr)[li_c1];
2362 
2363  probeVars[admsProbeID_V_b1_b2] = (*solVectorPtr)[li_b1] - (*solVectorPtr)[li_b2];
2365 
2366  probeVars[admsProbeID_V_b1_e1] = (*solVectorPtr)[li_b1] - (*solVectorPtr)[li_e1];
2368 
2369  probeVars[admsProbeID_V_b2_e1] = (*solVectorPtr)[li_b2] - (*solVectorPtr)[li_e1];
2371 
2372  probeVars[admsProbeID_V_b2_c2] = (*solVectorPtr)[li_b2] - (*solVectorPtr)[li_c2];
2374 
2375  probeVars[admsProbeID_V_b2_c1] = (*solVectorPtr)[li_b2] - (*solVectorPtr)[li_c1];
2377 
2378  probeVars[admsProbeID_V_dt_GND] = (*solVectorPtr)[li_dt];
2380 
2381 
2382  // pre-multiply any "typed" probes (i.e. those limited with "typedpnjlim")
2387 
2388  // Copy probes into limiting vars
2389  Vb1b2_orig = Vb1b2_limited = probeVars[admsProbeID_V_b1_b2].val();
2391  Vb1e1_orig = Vb1e1_limited = probeVars[admsProbeID_V_b1_e1].val();
2393  Vb2c2_orig = Vb2c2_limited = probeVars[admsProbeID_V_b2_c2].val();
2395  Vb2c1_orig = Vb2c1_limited = probeVars[admsProbeID_V_b2_c1].val();
2397 
2398  origFlag = true;
2399 
2400  if (getSolverState().newtonIter == 0)
2401  {
2402 
2403  if (!(getSolverState().dcopFlag)||(getSolverState().locaEnabledFlag && getSolverState().dcopFlag))
2404  {
2409  }
2410  else
2411  {
2412  Vb1b2_old = Vb1b2_limited;
2413  Vb1e1_old = Vb1e1_limited;
2414  Vb2c2_old = Vb2c2_limited;
2415  Vb2c1_old = Vb2c1_limited;
2416  }
2417  }
2418  else
2419  {
2424  }
2425 
2426  // -- code converted from analog/code block
2427  if (((model_.TYPE)==1))
2428  {
2429  An = 7.03e7;
2430  Bn = 1.23e8;
2431  }
2432  else
2433  {
2434  An = 1.58e8;
2435  Bn = 2.04e8;
2436  }
2437  Xext1 = (1.0-(model_.XEXT));
2438  CTH_M = ((model_.CTH)*MULT);
2439  CBEO_M = ((model_.CBEO)*MULT);
2440  CBCO_M = ((model_.CBCO)*MULT);
2441  invMULT = (1.0/MULT);
2442  SCRCV_M = ((model_.SCRCV)*invMULT);
2443  KF_M = ((model_.KF)*pow(MULT,(1.0-(model_.AF))));
2444  KFN_M = ((model_.KFN)*pow(MULT,(1.0-((2.0*((model_.MLF)-1.0))+((model_.AF)*(2.0-(model_.MLF)))))));
2445  pow2_2mPE = pow(2.0,(2.0-(model_.PE)));
2446  pow2_PEm2 = (1.0/pow2_2mPE);
2447  Trk = ((model_.TREF)+273.15);
2448  {
2449  //Block-local variables for block
2450  double dxa;
2451  //End of Block-local variables
2452  dxa = ((((model_.VGZEB)+((((model_.AVGEB)*Trk)*Trk)/(Trk+(model_.TVGEB))))-0.05)/0.1);
2453  if ((((model_.VGZEB)+((((model_.AVGEB)*Trk)*Trk)/(Trk+(model_.TVGEB))))<0.05))
2454  {
2455  VGZEBOK = (0.05+(0.1*log((1.0+exp(dxa)))));
2456  }
2457  else
2458  {
2459  VGZEBOK = (((model_.VGZEB)+((((model_.AVGEB)*Trk)*Trk)/(Trk+(model_.TVGEB))))+(0.1*log((1.0+exp((-dxa))))));
2460  }
2461  VGZEBOK = VGZEBOK;
2462  }
2463  VGZEB_Tr = (model_.VGZEB);
2464  inv_VGZEB_Tr = (1.0/VGZEB_Tr);
2465  inv_VDE = (1.0/(model_.VDE));
2467  if ((Tki<0.0))
2468  {
2469  Tki = (-log((1.0-Tki)));
2470  }
2471  if ((Tki<200.0))
2472  {
2473  Vdt = Tki;
2474  }
2475  else
2476  {
2477  Vdt = (200.0+log((1.0+(Tki-200.0))));
2478  }
2479  Vdt = Vdt;
2480  Tk = ((admsTemperature+(model_.DTA))+Vdt);
2481  Tamb = (admsTemperature+(model_.DTA));
2482  tN = (Tk/Trk);
2483  Vt = (8.61708691805812512584e-5*Tk);
2484  Vtr = (8.61708691805812512584e-5*Trk);
2485  VtINV = (1.0/Vt);
2486  VtrINV = (1.0/Vtr);
2487  VdtINV = (VtINV-VtrINV);
2488  lntN = log(tN);
2489  {
2490  //Block-local variables for block
2491  AdmsFadType dxa;
2492  //End of Block-local variables
2493  dxa = (((VGZEBOK-((((model_.AVGEB)*Tk)*Tk)/(Tk+(model_.TVGEB))))-0.05)/0.1);
2494  if (((VGZEBOK-((((model_.AVGEB)*Tk)*Tk)/(Tk+(model_.TVGEB))))<0.05))
2495  {
2496  VGZEB_T = (0.05+(0.1*log((1.0+exp(dxa)))));
2497  }
2498  else
2499  {
2500  VGZEB_T = ((VGZEBOK-((((model_.AVGEB)*Tk)*Tk)/(Tk+(model_.TVGEB))))+(0.1*log((1.0+exp((-dxa))))));
2501  }
2502  VGZEB_T = VGZEB_T;
2503  }
2504  UdeT = (((((-3.0)*Vt)*log(tN))+((model_.VDE)*tN))+((1.0-tN)*(model_.VGB)));
2505  {
2506  //Block-local variables for block
2507  AdmsFadType dxa;
2508  //End of Block-local variables
2509  dxa = ((0.05-UdeT)/Vt);
2510  if ((0.05<UdeT))
2511  {
2512  VDE_T = (UdeT+(Vt*log((1.0+exp(dxa)))));
2513  }
2514  else
2515  {
2516  VDE_T = (0.05+(Vt*log((1.0+exp((-dxa))))));
2517  }
2518  VDE_T = VDE_T;
2519  }
2520  UdcT = (((((-3.0)*Vt)*log(tN))+((model_.VDC)*tN))+((1.0-tN)*(model_.VGC)));
2521  {
2522  //Block-local variables for block
2523  AdmsFadType dxa;
2524  //End of Block-local variables
2525  dxa = ((0.05-UdcT)/Vt);
2526  if ((0.05<UdcT))
2527  {
2528  VDC_T = (UdcT+(Vt*log((1.0+exp(dxa)))));
2529  }
2530  else
2531  {
2532  VDC_T = (0.05+(Vt*log((1.0+exp((-dxa))))));
2533  }
2534  VDC_T = VDC_T;
2535  }
2536  UdsT = (((((-3.0)*Vt)*log(tN))+((model_.VDS)*tN))+((1.0-tN)*(model_.VGS)));
2537  {
2538  //Block-local variables for block
2539  AdmsFadType dxa;
2540  //End of Block-local variables
2541  dxa = ((0.05-UdsT)/Vt);
2542  if ((0.05<UdsT))
2543  {
2544  VDS_T = (UdsT+(Vt*log((1.0+exp(dxa)))));
2545  }
2546  else
2547  {
2548  VDS_T = (0.05+(Vt*log((1.0+exp((-dxa))))));
2549  }
2550  VDS_T = VDS_T;
2551  }
2552  inv_VDE_T = (1.0/VDE_T);
2553  CJE_T_div_CJE = pow(((model_.VDE)*inv_VDE_T),(model_.PE));
2554  CJE_T = ((model_.CJE)*CJE_T_div_CJE);
2555  CJS_T = ((model_.CJS)*pow(((model_.VDS)/VDS_T),(model_.PS)));
2556  CJCscale = (((1.0-(model_.XP))*pow(((model_.VDC)/VDC_T),(model_.PC)))+(model_.XP));
2557  CJCscaleINV = (1.0/CJCscale);
2558  CJC_T = ((model_.CJC)*CJCscale);
2559  XP_T = ((model_.XP)*CJCscaleINV);
2560  RE_T = ((model_.RE)*exp((lntN*(model_.AE))));
2561  RBV_T = ((model_.RBV)*exp((lntN*((model_.AB)-(model_.AQBO)))));
2562  RBC_T = ((model_.RBC)*exp((lntN*(model_.AEX))));
2563  RCCxx_T = ((model_.RCC)*exp((lntN*(model_.AC))));
2564  RCCex_T = ((model_.RCBLX)*exp((lntN*(model_.ACBL))));
2565  RCCin_T = ((model_.RCBLI)*exp((lntN*(model_.ACBL))));
2566  RCV_T = ((model_.RCV)*exp((lntN*(model_.AEPI))));
2567  BF_T = (((model_.BF)*exp((lntN*(((model_.AE)-(model_.AB))-(model_.AQBO)))))*exp(((-(model_.DVGBF))*VdtINV)));
2568  BRI_T = ((model_.BRI)*exp(((-(model_.DVGBR))*VdtINV)));
2569  IS_T = (((model_.IS)*exp((lntN*(((4.0-(model_.AB))-(model_.AQBO))+(model_.DAIS)))))*exp(((-(model_.VGB))*VdtINV)));
2570  IK_T = ((model_.IK)*exp((lntN*(1.0-(model_.AB)))));
2571  IBF_T = (((model_.IBF)*exp((lntN*(6.0-(2.0*(model_.MLF))))))*exp((((-(model_.VGJ))*VdtINV)/(model_.MLF))));
2572  IBR_T = ((((model_.IBR)*tN)*tN)*exp((((-(model_.VGC))*VdtINV)/2.0)));
2573  tempx = pow((VGZEB_T*inv_VGZEB_Tr),(-0.5));
2574  y = (1.0/CJE_T_div_CJE);
2575  nZEB_T = (((((((((model_.NZEB)*VGZEB_T)*VGZEB_T)*tempx)*y)*(model_.VDE))*inv_VDE_T)*inv_VGZEB_Tr)*inv_VGZEB_Tr);
2576  IZEB_T = ((((((((model_.IZEB)*tempx)*VDE_T)*VDE_T)*inv_VDE)*inv_VDE)*CJE_T_div_CJE)*exp(((model_.NZEB)-nZEB_T)));
2577  tempx = exp((lntN*(model_.AQBO)));
2578  VEF_T = (((model_.VEF)*tempx)*CJCscaleINV);
2579  VER_T = (((model_.VER)*tempx)*y);
2580  ISS_T = (((model_.ISS)*exp((lntN*(4.0-(model_.AS)))))*exp(((-(model_.VGS))*VdtINV)));
2581  ICSS_T = (((model_.ICSS)*exp((lntN*(3.5-(0.5*(model_.ASUB))))))*exp(((-(model_.VGS))*VdtINV)));
2582  if ((ISS_T>0.0))
2583  {
2584  IKS_T = ((((model_.IKS)*exp((lntN*(1.0-(model_.AS)))))*(IS_T/(model_.IS)))*((model_.ISS)/ISS_T));
2585  }
2586  else
2587  {
2588  IKS_T = ((model_.IKS)*exp((lntN*(1.0-(model_.AS)))));
2589  }
2590  TAUE_T = (((model_.TAUE)*exp((lntN*((model_.AB)-2.0))))*exp(((-(model_.DVGTE))*VdtINV)));
2591  TAUB_T = ((model_.TAUB)*exp((lntN*(((model_.AQBO)+(model_.AB))-1.0))));
2592  TEPI_T = ((model_.TEPI)*exp((lntN*((model_.AEPI)-1.0))));
2593  TAUR_T = (((model_.TAUR)*(TAUB_T+TEPI_T))/((model_.TAUB)+(model_.TEPI)));
2594  Tk300 = (Tk-300.0);
2595  if ((Tk<525.0))
2596  {
2597  BnT = (Bn*((1.0+(7.2e-4*Tk300))-((1.6e-6*Tk300)*Tk300)));
2598  }
2599  else
2600  {
2601  BnT = (Bn*1.081);
2602  }
2603  DEG_T = ((model_.DEG)*exp((lntN*(model_.AQBO))));
2604  RTH_Tamb = ((model_.RTH)*pow((Tamb/Trk),(model_.ATH)));
2605  IS_TM = (IS_T*MULT);
2606  IK_TM = (IK_T*MULT);
2607  IBF_TM = (IBF_T*MULT);
2608  IBR_TM = (IBR_T*MULT);
2609  IZEB_TM = (IZEB_T*MULT);
2610  IHC_M = ((model_.IHC)*MULT);
2611  ISS_TM = (ISS_T*MULT);
2612  ICSS_TM = (ICSS_T*MULT);
2613  IKS_TM = (IKS_T*MULT);
2614  CJE_TM = (CJE_T*MULT);
2615  CJC_TM = (CJC_T*MULT);
2616  CJS_TM = (CJS_T*MULT);
2617  RE_TM = (RE_T*invMULT);
2618  RBC_TM = (RBC_T*invMULT);
2619  RBV_TM = (RBV_T*invMULT);
2620  RCCxx_TM = (RCCxx_T*invMULT);
2621  RCCex_TM = (RCCex_T*invMULT);
2622  RCCin_TM = (RCCin_T*invMULT);
2623  RCV_TM = (RCV_T*invMULT);
2624  if (((model_.RCC)>0.0))
2625  {
2626  GCCxx_TM = (1.0/RCCxx_TM);
2627  }
2628  else
2629  {
2630  GCCxx_TM = 0;
2631  }
2632  if (((model_.RCBLX)>0.0))
2633  {
2634  GCCex_TM = (1.0/RCCex_TM);
2635  }
2636  else
2637  {
2638  GCCex_TM = 0;
2639  }
2640  if (((model_.RCBLI)>0.0))
2641  {
2642  GCCin_TM = (1.0/RCCin_TM);
2643  }
2644  else
2645  {
2646  GCCin_TM = 0;
2647  }
2648  RTH_Tamb_M = (RTH_Tamb*invMULT);
2649  {
2650 
2651 
2652  //Vb2c1 = ($limit(V(b2,c1),"trunc_ev","typed",TYPE,(-VER),0.7));
2654  {
2655  int icheck=0;
2656  Vb2c1_limited = AnalogFunctions::trunc_ev(Vb2c1_limited,Vb2c1_old,(-(model_.VER)),0.7);
2657  if (Vb2c1_limited != Vb2c1_orig)
2658  {
2659  icheck=1;
2660  }
2661  if (icheck == 1)
2662  origFlag = false;
2663  if (!origFlag)
2664  {
2665  probeDiffs[admsProbeID_V_b2_c1] = Vb2c1_limited - Vb2c1_orig;
2667  }
2668  }
2669  Vb2c1 = probeVars[admsProbeID_V_b2_c1];
2670 
2671 
2672 
2673  //Vb2c2 = ($limit(V(b2,c2),"trunc_ev","typed",TYPE,(-VER),0.7));
2674  if (getDeviceOptions().voltageLimiterFlag)
2675  {
2676  int icheck=0;
2677  Vb2c2_limited = AnalogFunctions::trunc_ev(Vb2c2_limited,Vb2c2_old,(-(model_.VER)),0.7);
2678  if (Vb2c2_limited != Vb2c2_orig)
2679  {
2680  icheck=1;
2681  }
2682  if (icheck == 1)
2683  origFlag = false;
2684  if (!origFlag)
2685  {
2686  probeDiffs[admsProbeID_V_b2_c2] = Vb2c2_limited - Vb2c2_orig;
2688  }
2689  }
2690  Vb2c2 = probeVars[admsProbeID_V_b2_c2];
2691 
2692  Vb2e1 = ((model_.TYPE)*(probeVars[admsProbeID_V_b2_e1]));
2693 
2694 
2695  //Vb1e1 = ($limit(V(b1,e1),"trunc_ev","typed",TYPE,(-VER),0.7));
2697  {
2698  int icheck=0;
2699  Vb1e1_limited = AnalogFunctions::trunc_ev(Vb1e1_limited,Vb1e1_old,(-(model_.VER)),0.7);
2700  if (Vb1e1_limited != Vb1e1_orig)
2701  {
2702  icheck=1;
2703  }
2704  if (icheck == 1)
2705  origFlag = false;
2706  if (!origFlag)
2707  {
2708  probeDiffs[admsProbeID_V_b1_e1] = Vb1e1_limited - Vb1e1_orig;
2710  }
2711  }
2712  Vb1e1 = probeVars[admsProbeID_V_b1_e1];
2713 
2714 
2715 
2716  //Vb1b2 = ($limit(V(b1,b2),"trunc_ev","typed",TYPE,(-VER),0.7));
2717  if (getDeviceOptions().voltageLimiterFlag)
2718  {
2719  int icheck=0;
2720  Vb1b2_limited = AnalogFunctions::trunc_ev(Vb1b2_limited,Vb1b2_old,(-(model_.VER)),0.7);
2721  if (Vb1b2_limited != Vb1b2_orig)
2722  {
2723  icheck=1;
2724  }
2725  if (icheck == 1)
2726  origFlag = false;
2727  if (!origFlag)
2728  {
2729  probeDiffs[admsProbeID_V_b1_b2] = Vb1b2_limited - Vb1b2_orig;
2731  }
2732  }
2733  Vb1b2 = probeVars[admsProbeID_V_b1_b2];
2734 
2735  Vsc1 = ((model_.TYPE)*(probeVars[admsProbeID_V_s_c1]));
2736  Vc1c2 = ((model_.TYPE)*(probeVars[admsProbeID_V_c1_c2]));
2737  Vee1 = ((model_.TYPE)*(probeVars[admsProbeID_V_e_e1]));
2738  Vbb1 = ((model_.TYPE)*(probeVars[admsProbeID_V_b_b1]));
2739  Vbe = ((model_.TYPE)*(probeVars[admsProbeID_V_b_e]));
2740  Vbc = ((model_.TYPE)*(probeVars[admsProbeID_V_b_c]));
2741  if (((model_.RCBLX)>0.0))
2742  {
2743  if (((model_.RCBLI)>0.0))
2744  {
2745  Vc4c1 = ((model_.TYPE)*(probeVars[admsProbeID_V_c4_c1]));
2746  Vc3c4 = ((model_.TYPE)*(probeVars[admsProbeID_V_c3_c4]));
2747  }
2748  else
2749  {
2750  Vc4c1 = 0;
2751  Vc3c4 = ((model_.TYPE)*(probeVars[admsProbeID_V_c3_c1]));
2752  }
2753  }
2754  else
2755  {
2756  if (((model_.RCBLI)>0.0))
2757  {
2758  Vc4c1 = ((model_.TYPE)*(probeVars[admsProbeID_V_c4_c1]));
2759  Vc3c4 = 0;
2760  }
2761  else
2762  {
2763  Vc4c1 = 0;
2764  Vc3c4 = 0;
2765  }
2766  }
2767  Vb1c4 = (((Vb1b2+Vb2c2)-Vc1c2)-Vc4c1);
2768  Vcc3 = ((((-Vbc)+Vbb1)+Vb1c4)-Vc3c4);
2769  Vbc3 = (Vbc+Vcc3);
2770  Vsc4 = (Vsc1-Vc4c1);
2771  Vsc3 = (Vsc4-Vc3c4);
2772  if (((Vb2c2*VtINV)<400.0))
2773  {
2774  eVb2c2 = exp((Vb2c2*VtINV));
2775  }
2776  else
2777  {
2778  expl = exp(400.0);
2779  eVb2c2 = (expl*(1.0+((Vb2c2*VtINV)-400.0)));
2780  }
2781  if (((Vb2e1*VtINV)<400.0))
2782  {
2783  eVb2e1 = exp((Vb2e1*VtINV));
2784  }
2785  else
2786  {
2787  expl = exp(400.0);
2788  eVb2e1 = (expl*(1.0+((Vb2e1*VtINV)-400.0)));
2789  }
2790  if (((Vb1e1*VtINV)<400.0))
2791  {
2792  eVb1e1 = exp((Vb1e1*VtINV));
2793  }
2794  else
2795  {
2796  expl = exp(400.0);
2797  eVb1e1 = (expl*(1.0+((Vb1e1*VtINV)-400.0)));
2798  }
2799  if (((Vb1c4*VtINV)<400.0))
2800  {
2801  eVb1c4 = exp((Vb1c4*VtINV));
2802  }
2803  else
2804  {
2805  expl = exp(400.0);
2806  eVb1c4 = (expl*(1.0+((Vb1c4*VtINV)-400.0)));
2807  }
2808  if (((Vb1b2*VtINV)<400.0))
2809  {
2810  eVb1b2 = exp((Vb1b2*VtINV));
2811  }
2812  else
2813  {
2814  expl = exp(400.0);
2815  eVb1b2 = (expl*(1.0+((Vb1b2*VtINV)-400.0)));
2816  }
2817  if (((Vbc3*VtINV)<400.0))
2818  {
2819  eVbc3 = exp((Vbc3*VtINV));
2820  }
2821  else
2822  {
2823  expl = exp(400.0);
2824  eVbc3 = (expl*(1.0+((Vbc3*VtINV)-400.0)));
2825  }
2826  if (((Vsc1*VtINV)<400.0))
2827  {
2828  eVsc1 = exp((Vsc1*VtINV));
2829  }
2830  else
2831  {
2832  expl = exp(400.0);
2833  eVsc1 = (expl*(1.0+((Vsc1*VtINV)-400.0)));
2834  }
2835  if (((Vsc3*VtINV)<400.0))
2836  {
2837  eVsc3 = exp((Vsc3*VtINV));
2838  }
2839  else
2840  {
2841  expl = exp(400.0);
2842  eVsc3 = (expl*(1.0+((Vsc3*VtINV)-400.0)));
2843  }
2844  if (((Vsc4*VtINV)<400.0))
2845  {
2846  eVsc4 = exp((Vsc4*VtINV));
2847  }
2848  else
2849  {
2850  expl = exp(400.0);
2851  eVsc4 = (expl*(1.0+((Vsc4*VtINV)-400.0)));
2852  }
2853  if ((((Vbc3-VDC_T)*VtINV)<400.0))
2854  {
2855  eVbc3VDC = exp(((Vbc3-VDC_T)*VtINV));
2856  }
2857  else
2858  {
2859  expl = exp(400.0);
2860  eVbc3VDC = (expl*(1.0+(((Vbc3-VDC_T)*VtINV)-400.0)));
2861  }
2862  if ((((Vb1c4-VDC_T)*VtINV)<400.0))
2863  {
2864  eVb1c4VDC = exp(((Vb1c4-VDC_T)*VtINV));
2865  }
2866  else
2867  {
2868  expl = exp(400.0);
2869  eVb1c4VDC = (expl*(1.0+(((Vb1c4-VDC_T)*VtINV)-400.0)));
2870  }
2871  if ((((Vb2c2-VDC_T)*VtINV)<400.0))
2872  {
2873  eVb2c2VDC = exp(((Vb2c2-VDC_T)*VtINV));
2874  }
2875  else
2876  {
2877  expl = exp(400.0);
2878  eVb2c2VDC = (expl*(1.0+(((Vb2c2-VDC_T)*VtINV)-400.0)));
2879  }
2880  if ((((Vb2c1-VDC_T)*VtINV)<400.0))
2881  {
2882  eVb2c1VDC = exp(((Vb2c1-VDC_T)*VtINV));
2883  }
2884  else
2885  {
2886  expl = exp(400.0);
2887  eVb2c1VDC = (expl*(1.0+(((Vb2c1-VDC_T)*VtINV)-400.0)));
2888  }
2889  K0 = sqrt((1.0+(4.0*eVb2c2VDC)));
2890  Kw = sqrt((1.0+(4.0*eVb2c1VDC)));
2891  pW = ((2.0*eVb2c1VDC)/(1.0+Kw));
2892  if ((pW<1.0e-40))
2893  {
2894  pW = 0;
2895  }
2896  Ec = (Vt*((K0-Kw)-log(((K0+1.0)/(Kw+1.0)))));
2897  Ic1c2 = ((Ec+Vc1c2)/RCV_TM);
2898  if ((Ic1c2>0.0))
2899  {
2900  if ((Vb2c1<100.0))
2901  {
2902  tmpV = Vb2c1;
2903  }
2904  else
2905  {
2906  tmpV = (100.0+log((1.0+(Vb2c1-100.0))));
2907  }
2908  tmpV = tmpV;
2909  Vqs_th = ((VDC_T+((2.0*Vt)*log(((((0.5*Ic1c2)*RCV_TM)*VtINV)+1.0))))-tmpV);
2910  eps_VDC = (0.2*VDC_T);
2911  eps2 = (eps_VDC*eps_VDC);
2912  x2 = (Vqs_th*Vqs_th);
2913  if ((Vqs_th<0.0))
2914  {
2915  Vqs = ((0.5*eps2)/(sqrt((x2+eps2))-Vqs_th));
2916  }
2917  else
2918  {
2919  Vqs = (0.5*(sqrt((x2+eps2))+Vqs_th));
2920  }
2921  Vqs = Vqs;
2922  Iqs = ((Vqs*(Vqs+(IHC_M*SCRCV_M)))/(SCRCV_M*(Vqs+(IHC_M*RCV_TM))));
2923  Ic1c2_Iqs = (Ic1c2/Iqs);
2924  {
2925  //Block-local variables for block
2926  AdmsFadType dxa;
2927  //End of Block-local variables
2928  dxa = ((Ic1c2_Iqs-1.0)/(model_.AXI));
2929  if ((Ic1c2_Iqs<1.0))
2930  {
2931  alpha1 = (1.0+((model_.AXI)*log((1.0+exp(dxa)))));
2932  }
2933  else
2934  {
2935  alpha1 = (Ic1c2_Iqs+((model_.AXI)*log((1.0+exp((-dxa))))));
2936  }
2937  alpha1 = alpha1;
2938  }
2939  alpha = (alpha1/(1.0+((model_.AXI)*log((1.0+exp(((-1.0)/(model_.AXI))))))));
2940  vyi = (Vqs/(IHC_M*SCRCV_M));
2941  yi = ((1.0+sqrt((1.0+(((4.0*alpha)*vyi)*(1.0+vyi)))))/((2.0*alpha)*(1.0+vyi)));
2942  xi_w = (1.0-(yi/(1.0+(pW*yi))));
2943  gp0 = ((((0.5*Ic1c2)*RCV_TM)*xi_w)*VtINV);
2944  gp0_help = ((2.0*gp0)+(pW*((pW+gp0)+1.0)));
2945  gp02 = (0.5*(gp0-1.0));
2946  sqr_arg = ((gp02*gp02)+gp0_help);
2947  if ((gp0>=1.0))
2948  {
2949  p0star = (gp02+sqrt(sqr_arg));
2950  }
2951  else
2952  {
2953  p0star = (gp0_help/(sqrt(sqr_arg)-gp02));
2954  }
2955  if ((p0star<1.0e-40))
2956  {
2957  p0star = 0.0;
2958  }
2959  eVb2c2star = ((p0star*(p0star+1.0))*exp((VDC_T*VtINV)));
2960  B1 = ((0.5*SCRCV_M)*(Ic1c2-IHC_M));
2961  B2 = (((SCRCV_M*RCV_TM)*IHC_M)*Ic1c2);
2962  Vxi0 = (B1+sqrt(((B1*B1)+B2)));
2963  Vch = (VDC_T*(0.1+((2.0*Ic1c2)/(Ic1c2+Iqs))));
2964  Icap = ((IHC_M*Ic1c2)/(IHC_M+Ic1c2));
2965  Icap_IHC = (IHC_M/(IHC_M+Ic1c2));
2966  }
2967  else
2968  {
2969  Iqs = 0.0;
2970  p0star = ((2.0*eVb2c2VDC)/(1.0+K0));
2971  eVb2c2star = eVb2c2;
2972  if (((fabs(Vc1c2)<(1.0e-5*Vt))||(fabs(Ec)<((1.0e-40*Vt)*(K0+Kw)))))
2973  {
2974  pav = (0.5*(p0star+pW));
2975  xi_w = (pav/(pav+1.0));
2976  }
2977  else
2978  {
2979  xi_w = (Ec/((Ec+Vb2c2)-Vb2c1));
2980  }
2981  Vxi0 = Vc1c2;
2982  Vch = (0.1*VDC_T);
2983  Icap = Ic1c2;
2984  Icap_IHC = (1.0-(Icap/IHC_M));
2985  }
2986  Vfe = (VDE_T*(1.0-pow(3.0,((-1.0)/(model_.PE)))));
2987  a_VDE = (0.1*VDE_T);
2988  {
2989  //Block-local variables for block
2990  AdmsFadType dxa;
2991  //End of Block-local variables
2992  dxa = ((Vb2e1-Vfe)/a_VDE);
2993  if ((Vb2e1<Vfe))
2994  {
2995  Vje = (Vb2e1-(a_VDE*log((1.0+exp(dxa)))));
2996  }
2997  else
2998  {
2999  Vje = (Vfe-(a_VDE*log((1.0+exp((-dxa))))));
3000  }
3001  Vje = Vje;
3002  }
3003  E0BE = pow((1.0-(Vje*inv_VDE_T)),(1.0-(model_.PE)));
3004  Vte = (((VDE_T/(1.0-(model_.PE)))*(1.0-E0BE))+(3.0*(Vb2e1-Vje)));
3005  Vjunc = (Vb2c1+Vxi0);
3006  bjc = ((2.0-XP_T)/(1.0-XP_T));
3007  Vfc = (VDC_T*(1.0-pow(bjc,((-1.0)/(model_.PC)))));
3008  {
3009  //Block-local variables for block
3010  AdmsFadType dxa;
3011  //End of Block-local variables
3012  dxa = ((Vjunc-Vfc)/Vch);
3013  if ((Vjunc<Vfc))
3014  {
3015  Vjc = (Vjunc-(Vch*log((1.0+exp(dxa)))));
3016  }
3017  else
3018  {
3019  Vjc = (Vfc-(Vch*log((1.0+exp((-dxa))))));
3020  }
3021  Vjc = Vjc;
3022  }
3023  fI = pow(Icap_IHC,(model_.MC));
3024  Vcv = (((VDC_T/(1.0-(model_.PC)))*(1.0-(fI*pow((1.0-(Vjc/VDC_T)),(1.0-(model_.PC))))))+((fI*bjc)*(Vjunc-Vjc)));
3025  Vtc = (((1.0-XP_T)*Vcv)+(XP_T*Vb2c1));
3026  If0 = ((4.0*IS_TM)/IK_TM);
3027  f1 = (If0*eVb2e1);
3028  n0 = (f1/(1.0+sqrt((1.0+f1))));
3029  f2 = (If0*eVb2c2star);
3030  nB = (f2/(1.0+sqrt((1.0+f2))));
3031  if (((model_.DEG)==0.0))
3032  {
3033  q0I = ((1.0+(Vte/VER_T))+(Vtc/VEF_T));
3034  }
3035  else
3036  {
3037  termE = ((((Vte/VER_T)+1.0)*DEG_T)*VtINV);
3038  termC = ((((-Vtc)/VEF_T)*DEG_T)*VtINV);
3039  q0I = ((exp(termE)-exp(termC))/(exp((DEG_T*VtINV))-1.0));
3040  }
3041  eps2 = (0.1*0.1);
3042  x2 = (q0I*q0I);
3043  if ((q0I<0.0))
3044  {
3045  q1I = ((0.5*eps2)/(sqrt((x2+eps2))-q0I));
3046  }
3047  else
3048  {
3049  q1I = (0.5*(sqrt((x2+eps2))+q0I));
3050  }
3051  q1I = q1I;
3052  qBI = (q1I*(1.0+(0.5*(n0+nB))));
3053  Ir = (IS_TM*eVb2c2star);
3054  If = (IS_TM*eVb2e1);
3055  In = ((If-Ir)/qBI);
3056  Ibf0 = (IS_TM/BF_T);
3057  if (((model_.XREC)==0.0))
3058  {
3059  Ib1 = (((1.0-(model_.XIBI))*Ibf0)*(eVb2e1-1.0));
3060  }
3061  else
3062  {
3063  Ib1 = (((1.0-(model_.XIBI))*Ibf0)*(((1.0-(model_.XREC))*(eVb2e1-1.0))+(((model_.XREC)*((eVb2e1+eVb2c2star)-2.0))*(1.0+(Vtc/VEF_T)))));
3064  }
3065  Ib1_s = (((model_.XIBI)*Ibf0)*(eVb1e1-1.0));
3066  if ((((Vb2e1*VtINV)/(model_.MLF))<400.0))
3067  {
3068  tmpExp = exp(((Vb2e1*VtINV)/(model_.MLF)));
3069  }
3070  else
3071  {
3072  expl = exp(400.0);
3073  tmpExp = (expl*(1.0+(((Vb2e1*VtINV)/(model_.MLF))-400.0)));
3074  }
3075  Ib2 = ((IBF_TM*(tmpExp-1.0))+((model_.GMIN)*Vb2e1));
3076  if ((((0.5*Vb1c4)*VtINV)<400.0))
3077  {
3078  tmpExp = exp(((0.5*Vb1c4)*VtINV));
3079  }
3080  else
3081  {
3082  expl = exp(400.0);
3083  tmpExp = (expl*(1.0+(((0.5*Vb1c4)*VtINV)-400.0)));
3084  }
3085  Ib3 = (((IBR_TM*(eVb1c4-1.0))/(tmpExp+exp(((0.5*(model_.VLR))*VtINV))))+((model_.GMIN)*Vb1c4));
3086  if (((((model_.IZEB)>0.0)&&((model_.NZEB)>0.0))&&(Vb2e1<0)))
3087  {
3088  if (((nZEB_T*(1-(pow2_2mPE/(2.0*E0BE))))<400.0))
3089  {
3090  eZEB = exp((nZEB_T*(1-(pow2_2mPE/(2.0*E0BE)))));
3091  }
3092  else
3093  {
3094  expl = exp(400.0);
3095  eZEB = (expl*(1.0+((nZEB_T*(1-(pow2_2mPE/(2.0*E0BE))))-400.0)));
3096  }
3097  x = (Vb2e1*inv_VDE_T);
3098  dE0BE = ((pow((-x),((-2.0)-(model_.PE)))*(((model_.PE)*((1-((model_.PE)*(model_.PE)))-((3*x)*((model_.PE)-1))))-(((6*x)*x)*(((model_.PE)-1)+x))))*0.16666666666666666667);
3099  if (((((Vb2e1*pow2_2mPE)*nZEB_T)/(VGZEB_T*dE0BE))<400.0))
3100  {
3101  edZEB = exp((((Vb2e1*pow2_2mPE)*nZEB_T)/(VGZEB_T*dE0BE)));
3102  }
3103  else
3104  {
3105  expl = exp(400.0);
3106  edZEB = (expl*(1.0+((((Vb2e1*pow2_2mPE)*nZEB_T)/(VGZEB_T*dE0BE))-400.0)));
3107  }
3108  DZEB = ((-Vb2e1)-(((VGZEB_T*dE0BE)*(1-edZEB))/(pow2_2mPE*nZEB_T)));
3109  Izteb = ((((((2.0*IZEB_TM)*DZEB)*E0BE)*eZEB)*inv_VDE_T)*pow2_PEm2);
3110  }
3111  else
3112  {
3113  DZEB = 0;
3114  Izteb = 0;
3115  }
3116  g1 = (If0*eVb1c4);
3117  g2 = (4.0*eVb1c4VDC);
3118  nBex = ((g1-If0)/(1.0+sqrt((1.0+g1))));
3119  pWex = (g2/(1.0+sqrt((1.0+g2))));
3120  Iex = ((IK_TM*nBex)/(2.0*BRI_T));
3121  if (((model_.EXSUB)==1.0))
3122  {
3123  Isub = (((2.0*ISS_TM)*(eVb1c4-eVsc4))/(1.0+sqrt((1.0+((4.0*(IS_TM/IKS_TM))*eVb1c4)))));
3124  }
3125  else
3126  {
3127  Isub = (((2.0*ISS_TM)*(eVb1c4-1.0))/(1.0+sqrt((1.0+((4.0*(IS_TM/IKS_TM))*eVb1c4)))));
3128  }
3129  if (((model_.ICSS)<0.0))
3130  {
3131  Isf = (ISS_TM*(eVsc1-1.0));
3132  }
3133  else
3134  {
3135  Isf = (ICSS_TM*(eVsc1-1.0));
3136  }
3137  XIex = 0.0;
3138  XIsub = 0.0;
3139  if ((((model_.EXMOD)==1)||((model_.EXMOD)==2)))
3140  {
3141  Iex = (Iex*Xext1);
3142  Isub = (Isub*Xext1);
3143  Xg1 = (If0*eVbc3);
3144  XnBex = ((Xg1-If0)/(1.0+sqrt((1.0+Xg1))));
3145  XIMex = (((((model_.XEXT)*0.5)*IK_TM)*XnBex)/BRI_T);
3146  if (((model_.EXSUB)==1.0))
3147  {
3148  XIMsub = (((((model_.XEXT)*2.0)*ISS_TM)*(eVbc3-eVsc3))/(1.0+sqrt((1.0+(((4.0*IS_T)/IKS_T)*eVbc3)))));
3149  }
3150  else
3151  {
3152  XIMsub = (((((model_.XEXT)*2.0)*ISS_TM)*(eVbc3-1.0))/(1.0+sqrt((1.0+(((4.0*IS_T)/IKS_T)*eVbc3)))));
3153  }
3154  if (((model_.EXMOD)==1))
3155  {
3156  Vex_bias = (((model_.XEXT)*((IS_TM/BRI_T)+ISS_TM))*RCCxx_TM);
3157  Vex = (Vt*(2.0-log((Vex_bias*VtINV))));
3158  vdif = (Vbc3-Vex);
3159  eps2 = (0.11*0.11);
3160  x2 = (vdif*vdif);
3161  if ((vdif<0.0))
3162  {
3163  VBex = ((0.5*eps2)/(sqrt((x2+eps2))-vdif));
3164  }
3165  else
3166  {
3167  VBex = (0.5*(sqrt((x2+eps2))+vdif));
3168  }
3169  VBex = VBex;
3170  Fex = (VBex/((Vex_bias+((XIMex+XIMsub)*RCCxx_TM))+VBex));
3171  }
3172  else
3173  {
3174  Vex = 0.0;
3175  vdif = 0.0;
3176  VBex = 0.0;
3177  Fex = 1.0;
3178  }
3179  XIex = (Fex*XIMex);
3180  XIsub = (Fex*XIMsub);
3181  }
3182  else
3183  {
3184  Fex = 0;
3185  XnBex = 0;
3186  }
3187  q0Q = ((1.0+(Vte/VER_T))+(Vtc/VEF_T));
3188  eps2 = (0.1*0.1);
3189  x2 = (q0Q*q0Q);
3190  if ((q0Q<0.0))
3191  {
3192  q1Q = ((0.5*eps2)/(sqrt((x2+eps2))-q0Q));
3193  }
3194  else
3195  {
3196  q1Q = (0.5*(sqrt((x2+eps2))+q0Q));
3197  }
3198  q1Q = q1Q;
3199  qBQ = (q1Q*(1.0+(0.5*(n0+nB))));
3200  Rb2 = ((3.0*RBV_TM)/qBQ);
3201  Ib1b2 = ((((2.0*Vt)*(eVb1b2-1.0))+Vb1b2)/Rb2);
3202  Iavl = 0.0;
3203  Gem = 0.0;
3204  if (((Ic1c2>0.0)&&(Vb2c1<VDC_T)))
3205  {
3206  dEdx0 = ((2.0*(model_.VAVL))/((model_.WAVL)*(model_.WAVL)));
3207  sqr_arg = ((VDC_T-Vb2c1)/Icap_IHC);
3208  xd = sqrt(((2.0*sqr_arg)/dEdx0));
3209  if (((model_.EXAVL)==0.0))
3210  {
3211  Weff = (model_.WAVL);
3212  }
3213  else
3214  {
3215  xi_w1 = (1.0-(0.5*xi_w));
3216  Weff = (((model_.WAVL)*xi_w1)*xi_w1);
3217  }
3218  Wd = ((xd*Weff)/sqrt(((xd*xd)+(Weff*Weff))));
3219  Eav = ((VDC_T-Vb2c1)/Wd);
3220  E0 = (Eav+(((0.5*Wd)*dEdx0)*Icap_IHC));
3221  if (((model_.EXAVL)==0))
3222  {
3223  Em = E0;
3224  }
3225  else
3226  {
3227  SHw = (1.0+((2.0*(model_.SFH))*(1.0+(2.0*xi_w))));
3228  Efi = ((1.0+(model_.SFH))/(1.0+(2.0*(model_.SFH))));
3229  Ew = (Eav-(((0.5*Wd)*dEdx0)*(Efi-(Ic1c2/(IHC_M*SHw)))));
3230  sqr_arg = (((Ew-E0)*(Ew-E0))+((((0.1*Eav)*Eav)*Icap)/IHC_M));
3231  Em = (0.5*((Ew+E0)+sqrt(sqr_arg)));
3232  }
3233  EmEav_Em = ((Em-Eav)/Em);
3234  if ((fabs(EmEav_Em)>1.0e-7))
3235  {
3236  lambda = ((0.5*Wd)/EmEav_Em);
3237  Gem = ((((An/BnT)*Em)*lambda)*(exp(((-BnT)/Em))-exp((((-BnT)/Em)*(1.0+(Weff/lambda))))));
3238  }
3239  else
3240  {
3241  Gem = ((An*Weff)*exp(((-BnT)/Em)));
3242  }
3243  Gmax = (((Vt/(Ic1c2*(RBC_TM+Rb2)))+(qBI/BF_T))+(RE_TM/(RBC_TM+Rb2)));
3244  Iavl = ((Ic1c2*Gem)/((Gem+(Gem/Gmax))+1.0));
3245  }
3246  if ((eVb2c2star>0.0))
3247  {
3248  Vb2c2star = (Vt*log(eVb2c2star));
3249  }
3250  else
3251  {
3252  Vb2c2star = Vb2c2;
3253  }
3254  power = ((((((((((((((((In*(Vb2e1-Vb2c2star))+(Ic1c2*(Vb2c2star-Vb2c1)))-(Iavl*Vb2c2star))+((Vee1*Vee1)/RE_TM))+((Vcc3*Vcc3)*GCCxx_TM))+((Vc3c4*Vc3c4)*GCCex_TM))+((Vc4c1*Vc4c1)*GCCin_TM))+((Vbb1*Vbb1)/RBC_TM))+(Ib1b2*Vb1b2))+(((Ib1+Ib2)-Izteb)*Vb2e1))+(Ib1_s*Vb1e1))+((Iex+Ib3)*Vb1c4))+(XIex*Vbc3))+(Isub*(Vb1c4-Vsc4)))+(XIsub*(Vbc3-Vsc3)))+(Isf*Vsc1));
3255  Qte = (((1.0-(model_.XCJE))*CJE_TM)*Vte);
3256  {
3257  //Block-local variables for block
3258  AdmsFadType dxa;
3259  //End of Block-local variables
3260  dxa = ((Vb1e1-Vfe)/a_VDE);
3261  if ((Vb1e1<Vfe))
3262  {
3263  Vje_s = (Vb1e1-(a_VDE*log((1.0+exp(dxa)))));
3264  }
3265  else
3266  {
3267  Vje_s = (Vfe-(a_VDE*log((1.0+exp((-dxa))))));
3268  }
3269  Vje_s = Vje_s;
3270  }
3271  Qte_s = (((model_.XCJE)*CJE_TM)*(((VDE_T/(1.0-(model_.PE)))*(1.0-pow((1.0-(Vje_s*inv_VDE_T)),(1.0-(model_.PE)))))+(3.0*(Vb1e1-Vje_s))));
3272  Qtc = (((model_.XCJC)*CJC_TM)*Vtc);
3273  Qb0 = (TAUB_T*IK_TM);
3274  Qbe_qs = (((0.5*Qb0)*n0)*q1Q);
3275  Qbc_qs = (((0.5*Qb0)*nB)*q1Q);
3276  a_VDC = (0.1*VDC_T);
3277  {
3278  //Block-local variables for block
3279  AdmsFadType dxa;
3280  //End of Block-local variables
3281  dxa = ((Vb1c4-Vfc)/a_VDC);
3282  if ((Vb1c4<Vfc))
3283  {
3284  Vjcex = (Vb1c4-(a_VDC*log((1.0+exp(dxa)))));
3285  }
3286  else
3287  {
3288  Vjcex = (Vfc-(a_VDC*log((1.0+exp((-dxa))))));
3289  }
3290  Vjcex = Vjcex;
3291  }
3292  Vtexv = (((VDC_T/(1.0-(model_.PC)))*(1.0-pow((1.0-(Vjcex/VDC_T)),(1.0-(model_.PC)))))+(bjc*(Vb1c4-Vjcex)));
3293  Qtex = (((CJC_TM*(((1.0-XP_T)*Vtexv)+(XP_T*Vb1c4)))*(1.0-(model_.XCJC)))*(1.0-(model_.XEXT)));
3294  {
3295  //Block-local variables for block
3296  AdmsFadType dxa;
3297  //End of Block-local variables
3298  dxa = ((Vbc3-Vfc)/a_VDC);
3299  if ((Vbc3<Vfc))
3300  {
3301  XVjcex = (Vbc3-(a_VDC*log((1.0+exp(dxa)))));
3302  }
3303  else
3304  {
3305  XVjcex = (Vfc-(a_VDC*log((1.0+exp((-dxa))))));
3306  }
3307  XVjcex = XVjcex;
3308  }
3309  XVtexv = (((VDC_T/(1.0-(model_.PC)))*(1.0-pow((1.0-(XVjcex/VDC_T)),(1.0-(model_.PC)))))+(bjc*(Vbc3-XVjcex)));
3310  XQtex = (((CJC_TM*(((1.0-XP_T)*XVtexv)+(XP_T*Vbc3)))*(1.0-(model_.XCJC)))*(model_.XEXT));
3311  a_VDS = (0.1*VDS_T);
3312  Vfs = (VDS_T*(1.0-pow(2.0,((-1.0)/(model_.PS)))));
3313  {
3314  //Block-local variables for block
3315  AdmsFadType dxa;
3316  //End of Block-local variables
3317  dxa = ((Vsc1-Vfs)/a_VDS);
3318  if ((Vsc1<Vfs))
3319  {
3320  Vjs = (Vsc1-(a_VDS*log((1.0+exp(dxa)))));
3321  }
3322  else
3323  {
3324  Vjs = (Vfs-(a_VDS*log((1.0+exp((-dxa))))));
3325  }
3326  Vjs = Vjs;
3327  }
3328  Qts = (CJS_TM*(((VDS_T/(1.0-(model_.PS)))*(1.0-pow((1.0-(Vjs/VDS_T)),(1.0-(model_.PS)))))+(2.0*(Vsc1-Vjs))));
3329  Qe0 = ((TAUE_T*IK_TM)*pow((IS_TM/IK_TM),(1.0/(model_.MTAU))));
3330  if (((Vb2e1/((model_.MTAU)*Vt))<400.0))
3331  {
3332  tmpExp = exp((Vb2e1/((model_.MTAU)*Vt)));
3333  }
3334  else
3335  {
3336  expl = exp(400.0);
3337  tmpExp = (expl*(1.0+((Vb2e1/((model_.MTAU)*Vt))-400.0)));
3338  }
3339  Qe = (Qe0*(tmpExp-1.0));
3340  Qepi0 = (((4.0*TEPI_T)*Vt)/RCV_TM);
3341  Qepi = (((0.5*Qepi0)*xi_w)*((p0star+pW)+2.0));
3342  Qex = (((TAUR_T*0.5)*((Qb0*nBex)+(Qepi0*pWex)))/(TAUB_T+TEPI_T));
3343  XQex = 0.0;
3344  if (((model_.EXMOD)==1))
3345  {
3346  Qex = (Qex*(1.0-(model_.XEXT)));
3347  Xg2 = (4.0*eVbc3VDC);
3348  XpWex = (Xg2/(1.0+sqrt((1.0+Xg2))));
3349  XQex = (((((0.5*Fex)*(model_.XEXT))*TAUR_T)*((Qb0*XnBex)+(Qepi0*XpWex)))/(TAUB_T+TEPI_T));
3350  }
3351  Qb1b2 = 0.0;
3352  if (((model_.EXPHI)==1))
3353  {
3354  dVteVje = (pow((1.0-(Vje*inv_VDE_T)),(-(model_.PE)))-3.0);
3355  Vb2e1Vfe = ((Vb2e1-Vfe)/a_VDE);
3356  if ((Vb2e1Vfe<0.0))
3357  {
3358  dVjeVb2e1 = (1.0/(1.0+exp(Vb2e1Vfe)));
3359  }
3360  else
3361  {
3362  dVjeVb2e1 = (exp((-Vb2e1Vfe))/(1.0+exp((-Vb2e1Vfe))));
3363  }
3364  dVteVb2e1 = ((dVteVje*dVjeVb2e1)+3.0);
3365  dQteVb2e1 = (((1.0-(model_.XCJE))*CJE_TM)*dVteVb2e1);
3366  dn0Vb2e1 = (((If0*eVb2e1)*VtINV)*(0.5/sqrt((1.0+f1))));
3367  dQbeVb2e1 = (((0.5*Qb0)*q1Q)*dn0Vb2e1);
3368  dQeVb2e1 = ((Qe+Qe0)/((model_.MTAU)*Vt));
3369  Qb1b2 = ((0.2*Vb1b2)*((dQteVb2e1+dQbeVb2e1)+dQeVb2e1));
3370  Qbc = ((Qbe_qs*0.33333333333333333333)+Qbc_qs);
3371  Qbe = ((2.0*Qbe_qs)*0.33333333333333333333);
3372  }
3373  else
3374  {
3375  Qbe = Qbe_qs;
3376  Qbc = Qbc_qs;
3377  }
3378  // I(c1,c2) <+ ((TYPE*Ic1c2))
3379  {
3380  AdmsFadType contribTemp;
3381  contribTemp= ((model_.TYPE)*Ic1c2);
3382  staticContributions[admsNodeID_c1] += contribTemp;
3383  staticContributions[admsNodeID_c2] -= contribTemp;
3384 
3387  }
3388  // I(c2,e1) <+ ((TYPE*In))
3389  {
3390  AdmsFadType contribTemp;
3391  contribTemp= ((model_.TYPE)*In);
3392  staticContributions[admsNodeID_c2] += contribTemp;
3393  staticContributions[admsNodeID_e1] -= contribTemp;
3394 
3397  }
3398  // I(b1,e1) <+ ((TYPE*Ib1_s))
3399  {
3400  AdmsFadType contribTemp;
3401  contribTemp= ((model_.TYPE)*Ib1_s);
3402  staticContributions[admsNodeID_b1] += contribTemp;
3403  staticContributions[admsNodeID_e1] -= contribTemp;
3404 
3407  }
3408  // I(b2,e1) <+ ((TYPE*((Ib1+Ib2)-Izteb)))
3409  {
3410  AdmsFadType contribTemp;
3411  contribTemp= ((model_.TYPE)*((Ib1+Ib2)-Izteb));
3412  staticContributions[admsNodeID_b2] += contribTemp;
3413  staticContributions[admsNodeID_e1] -= contribTemp;
3414 
3417  }
3418  // I(b1,s) <+ ((TYPE*Isub))
3419  {
3420  AdmsFadType contribTemp;
3421  contribTemp= ((model_.TYPE)*Isub);
3422  staticContributions[admsNodeID_b1] += contribTemp;
3423  staticContributions[admsNodeID_s] -= contribTemp;
3424 
3427  }
3428  // I(b,s) <+ ((TYPE*XIsub))
3429  {
3430  AdmsFadType contribTemp;
3431  contribTemp= ((model_.TYPE)*XIsub);
3432  staticContributions[admsNodeID_b] += contribTemp;
3433  staticContributions[admsNodeID_s] -= contribTemp;
3434 
3437  }
3438  // I(s,c1) <+ ((TYPE*Isf))
3441  // I(b1,b2) <+ ((TYPE*Ib1b2))
3442  {
3443  AdmsFadType contribTemp;
3444  contribTemp= ((model_.TYPE)*Ib1b2);
3445  staticContributions[admsNodeID_b1] += contribTemp;
3446  staticContributions[admsNodeID_b2] -= contribTemp;
3447 
3450  }
3451  // I(b2,c2) <+ ((TYPE*((-1.0)*Iavl)))
3452  {
3453  AdmsFadType contribTemp;
3454  contribTemp= ((model_.TYPE)*((-1.0)*Iavl));
3455  staticContributions[admsNodeID_b2] += contribTemp;
3456  staticContributions[admsNodeID_c2] -= contribTemp;
3457 
3460  }
3461  // I(e,e1) <+ (((TYPE*Vee1)/RE_TM))
3464  // I(b,b1) <+ (((TYPE*Vbb1)/RBC_TM))
3467  // I(dt,GND) <+ ((V(dt,GND)/RTH_Tamb_M))
3469  // I(dt,GND) <+ (ddt((CTH_M*V(dt,GND))))
3471  // I(dt,GND) <+ (((-1.0)*power))
3472  {
3473  AdmsFadType contribTemp;
3474  contribTemp= ((-1.0)*power);
3475  staticContributions[admsNodeID_dt] += contribTemp;
3476 
3478  }
3479  // I(noi,e1) <+ (V(noi,e1))
3482  cor_exp_1 = (sqrt((1.0+(2.0*Gem)))*(probeVars[admsProbeID_V_noi_e1]));
3483  // I(b2,e1) <+ (cor_exp_1)
3484  {
3485  AdmsFadType contribTemp;
3486  contribTemp= cor_exp_1;
3487  staticContributions[admsNodeID_b2] += contribTemp;
3488  staticContributions[admsNodeID_e1] -= contribTemp;
3489 
3492  }
3493  cor_exp_2 = (((2.0+(2.0*Gem))/sqrt((1.0+(2.0*Gem))))*(probeVars[admsProbeID_V_noi_e1]));
3494  // I(e1,c2) <+ (cor_exp_2)
3495  {
3496  AdmsFadType contribTemp;
3497  contribTemp= cor_exp_2;
3498  staticContributions[admsNodeID_e1] += contribTemp;
3499  staticContributions[admsNodeID_c2] -= contribTemp;
3500 
3503  }
3504  // I(b2,e1) <+ (ddt((TYPE*((Qte+Qbe)+Qe))))
3505  {
3506  AdmsFadType contribTemp;
3507  contribTemp= (((model_.TYPE)*((Qte+Qbe)+Qe)));
3508  dynamicContributions[admsNodeID_b2] += contribTemp;
3509  dynamicContributions[admsNodeID_e1] -= contribTemp;
3510 
3513  }
3514  // I(b1,e1) <+ (ddt((TYPE*Qte_s)))
3515  {
3516  AdmsFadType contribTemp;
3517  contribTemp= (((model_.TYPE)*Qte_s));
3518  dynamicContributions[admsNodeID_b1] += contribTemp;
3519  dynamicContributions[admsNodeID_e1] -= contribTemp;
3520 
3523  }
3524  // I(b2,c2) <+ (ddt((TYPE*((Qtc+Qbc)+Qepi))))
3525  {
3526  AdmsFadType contribTemp;
3527  contribTemp= (((model_.TYPE)*((Qtc+Qbc)+Qepi)));
3528  dynamicContributions[admsNodeID_b2] += contribTemp;
3529  dynamicContributions[admsNodeID_c2] -= contribTemp;
3530 
3533  }
3534  // I(s,c1) <+ (ddt((TYPE*Qts)))
3537  // I(b1,b2) <+ (ddt((TYPE*Qb1b2)))
3538  {
3539  AdmsFadType contribTemp;
3540  contribTemp= (((model_.TYPE)*Qb1b2));
3541  dynamicContributions[admsNodeID_b1] += contribTemp;
3542  dynamicContributions[admsNodeID_b2] -= contribTemp;
3543 
3546  }
3547  // I(b,e) <+ (ddt(((TYPE*CBEO_M)*Vbe)))
3548  dynamicContributions[admsNodeID_b] += ((((model_.TYPE)*CBEO_M)*Vbe));
3549  dynamicContributions[admsNodeID_e] -= ((((model_.TYPE)*CBEO_M)*Vbe));
3550  // I(b,c) <+ (ddt(((TYPE*CBCO_M)*Vbc)))
3551  dynamicContributions[admsNodeID_b] += ((((model_.TYPE)*CBCO_M)*Vbc));
3552  dynamicContributions[admsNodeID_c] -= ((((model_.TYPE)*CBCO_M)*Vbc));
3553  }
3554  if (((model_.RCBLX)>0.0))
3555  {
3556  // I(b,c3) <+ ((TYPE*XIex))
3557  {
3558  AdmsFadType contribTemp;
3559  contribTemp= ((model_.TYPE)*XIex);
3560  staticContributions[admsNodeID_b] += contribTemp;
3561  staticContributions[admsNodeID_c3] -= contribTemp;
3562 
3565  }
3566  // I(c,c3) <+ (((TYPE*Vcc3)*GCCxx_TM))
3567  {
3568  AdmsFadType contribTemp;
3569  contribTemp= (((model_.TYPE)*Vcc3)*GCCxx_TM);
3570  staticContributions[admsNodeID_c] += contribTemp;
3571  staticContributions[admsNodeID_c3] -= contribTemp;
3572 
3575  }
3576  // I(b,c3) <+ (ddt((TYPE*(XQtex+XQex))))
3577  {
3578  AdmsFadType contribTemp;
3579  contribTemp= (((model_.TYPE)*(XQtex+XQex)));
3580  dynamicContributions[admsNodeID_b] += contribTemp;
3581  dynamicContributions[admsNodeID_c3] -= contribTemp;
3582 
3585  }
3586  if (((model_.RCBLI)>0.0))
3587  {
3588  // I(c4,c1) <+ (((TYPE*Vc4c1)*GCCin_TM))
3591  // I(b1,c4) <+ ((TYPE*(Ib3+Iex)))
3592  {
3593  AdmsFadType contribTemp;
3594  contribTemp= ((model_.TYPE)*(Ib3+Iex));
3595  staticContributions[admsNodeID_b1] += contribTemp;
3596  staticContributions[admsNodeID_c4] -= contribTemp;
3597 
3600  }
3601  // I(c3,c4) <+ (((TYPE*Vc3c4)*GCCex_TM))
3604  // I(b1,c4) <+ (ddt((TYPE*(Qtex+Qex))))
3605  {
3606  AdmsFadType contribTemp;
3607  contribTemp= (((model_.TYPE)*(Qtex+Qex)));
3608  dynamicContributions[admsNodeID_b1] += contribTemp;
3609  dynamicContributions[admsNodeID_c4] -= contribTemp;
3610 
3613  }
3614  }
3615  else
3616  {
3617  // V(c4,c1) <+ (0.0)
3618  // do nothing at all
3619  // I(b1,c1) <+ ((TYPE*(Ib3+Iex)))
3620  {
3621  AdmsFadType contribTemp;
3622  contribTemp= ((model_.TYPE)*(Ib3+Iex));
3623  staticContributions[admsNodeID_b1] += contribTemp;
3624  staticContributions[admsNodeID_c1] -= contribTemp;
3625 
3628  }
3629  // I(b1,c1) <+ (ddt((TYPE*(Qtex+Qex))))
3630  {
3631  AdmsFadType contribTemp;
3632  contribTemp= (((model_.TYPE)*(Qtex+Qex)));
3633  dynamicContributions[admsNodeID_b1] += contribTemp;
3634  dynamicContributions[admsNodeID_c1] -= contribTemp;
3635 
3638  }
3639  // I(c3,c1) <+ (((TYPE*Vc3c4)*GCCex_TM))
3642  }
3643  }
3644  else
3645  {
3646  // V(c3,c4) <+ (0)
3647  // do nothing at all
3648  if (((model_.RCBLI)>0.0))
3649  {
3650  // I(b,c4) <+ ((TYPE*XIex))
3651  {
3652  AdmsFadType contribTemp;
3653  contribTemp= ((model_.TYPE)*XIex);
3654  staticContributions[admsNodeID_b] += contribTemp;
3655  staticContributions[admsNodeID_c4] -= contribTemp;
3656 
3659  }
3660  // I(c,c4) <+ (((TYPE*Vcc3)*GCCxx_TM))
3661  {
3662  AdmsFadType contribTemp;
3663  contribTemp= (((model_.TYPE)*Vcc3)*GCCxx_TM);
3664  staticContributions[admsNodeID_c] += contribTemp;
3665  staticContributions[admsNodeID_c4] -= contribTemp;
3666 
3669  }
3670  // I(c4,c1) <+ (((TYPE*Vc4c1)*GCCin_TM))
3673  // I(b1,c4) <+ ((TYPE*(Ib3+Iex)))
3674  {
3675  AdmsFadType contribTemp;
3676  contribTemp= ((model_.TYPE)*(Ib3+Iex));
3677  staticContributions[admsNodeID_b1] += contribTemp;
3678  staticContributions[admsNodeID_c4] -= contribTemp;
3679 
3682  }
3683  // I(b1,c4) <+ (ddt((TYPE*(Qtex+Qex))))
3684  {
3685  AdmsFadType contribTemp;
3686  contribTemp= (((model_.TYPE)*(Qtex+Qex)));
3687  dynamicContributions[admsNodeID_b1] += contribTemp;
3688  dynamicContributions[admsNodeID_c4] -= contribTemp;
3689 
3692  }
3693  // I(b,c4) <+ (ddt((TYPE*(XQtex+XQex))))
3694  {
3695  AdmsFadType contribTemp;
3696  contribTemp= (((model_.TYPE)*(XQtex+XQex)));
3697  dynamicContributions[admsNodeID_b] += contribTemp;
3698  dynamicContributions[admsNodeID_c4] -= contribTemp;
3699 
3702  }
3703  }
3704  else
3705  {
3706  // I(b,c1) <+ ((TYPE*XIex))
3707  {
3708  AdmsFadType contribTemp;
3709  contribTemp= ((model_.TYPE)*XIex);
3710  staticContributions[admsNodeID_b] += contribTemp;
3711  staticContributions[admsNodeID_c1] -= contribTemp;
3712 
3715  }
3716  // I(c,c1) <+ (((TYPE*Vcc3)*GCCxx_TM))
3717  {
3718  AdmsFadType contribTemp;
3719  contribTemp= (((model_.TYPE)*Vcc3)*GCCxx_TM);
3720  staticContributions[admsNodeID_c] += contribTemp;
3721  staticContributions[admsNodeID_c1] -= contribTemp;
3722 
3725  }
3726  // V(c4,c1) <+ (0.0)
3727  // do nothing at all
3728  // I(b1,c1) <+ ((TYPE*(Ib3+Iex)))
3729  {
3730  AdmsFadType contribTemp;
3731  contribTemp= ((model_.TYPE)*(Ib3+Iex));
3732  staticContributions[admsNodeID_b1] += contribTemp;
3733  staticContributions[admsNodeID_c1] -= contribTemp;
3734 
3737  }
3738  // I(b1,c1) <+ (ddt((TYPE*(Qtex+Qex))))
3739  {
3740  AdmsFadType contribTemp;
3741  contribTemp= (((model_.TYPE)*(Qtex+Qex)));
3742  dynamicContributions[admsNodeID_b1] += contribTemp;
3743  dynamicContributions[admsNodeID_c1] -= contribTemp;
3744 
3747  }
3748  // I(b,c1) <+ (ddt((TYPE*(XQtex+XQex))))
3749  {
3750  AdmsFadType contribTemp;
3751  contribTemp= (((model_.TYPE)*(XQtex+XQex)));
3752  dynamicContributions[admsNodeID_b] += contribTemp;
3753  dynamicContributions[admsNodeID_c1] -= contribTemp;
3754 
3757  }
3758  // I(c3,c1) <+ (((TYPE*Vc3c4)*GCCex_TM))
3761  }
3762  }
3763  {
3764  }
3765 
3766 
3767  // -- endcode converted from analog/code block
3768  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
3769  {
3770  Xyce::dout() << " probeVars[admsProbeID_V_noi_e1] = "
3771  <<probeVars[admsProbeID_V_noi_e1].val() << std::endl;
3772  Xyce::dout() << " probeVars[admsProbeID_V_c3_c1] = "
3773  <<probeVars[admsProbeID_V_c3_c1].val() << std::endl;
3774  Xyce::dout() << " probeVars[admsProbeID_V_c3_c4] = "
3775  <<probeVars[admsProbeID_V_c3_c4].val() << std::endl;
3776  Xyce::dout() << " probeVars[admsProbeID_V_c4_c1] = "
3777  <<probeVars[admsProbeID_V_c4_c1].val() << std::endl;
3778  Xyce::dout() << " probeVars[admsProbeID_V_b_c] = "
3779  <<probeVars[admsProbeID_V_b_c].val() << std::endl;
3780  Xyce::dout() << " probeVars[admsProbeID_V_b_e] = "
3781  <<probeVars[admsProbeID_V_b_e].val() << std::endl;
3782  Xyce::dout() << " probeVars[admsProbeID_V_b_b1] = "
3783  <<probeVars[admsProbeID_V_b_b1].val() << std::endl;
3784  Xyce::dout() << " probeVars[admsProbeID_V_e_e1] = "
3785  <<probeVars[admsProbeID_V_e_e1].val() << std::endl;
3786  Xyce::dout() << " probeVars[admsProbeID_V_c1_c2] = "
3787  <<probeVars[admsProbeID_V_c1_c2].val() << std::endl;
3788  Xyce::dout() << " probeVars[admsProbeID_V_s_c1] = "
3789  <<probeVars[admsProbeID_V_s_c1].val() << std::endl;
3790  Xyce::dout() << " probeVars[admsProbeID_V_b1_b2] = "
3791  <<probeVars[admsProbeID_V_b1_b2].val() << std::endl;
3792  Xyce::dout() << " probeVars[admsProbeID_V_b1_e1] = "
3793  <<probeVars[admsProbeID_V_b1_e1].val() << std::endl;
3794  Xyce::dout() << " probeVars[admsProbeID_V_b2_e1] = "
3795  <<probeVars[admsProbeID_V_b2_e1].val() << std::endl;
3796  Xyce::dout() << " probeVars[admsProbeID_V_b2_c2] = "
3797  <<probeVars[admsProbeID_V_b2_c2].val() << std::endl;
3798  Xyce::dout() << " probeVars[admsProbeID_V_b2_c1] = "
3799  <<probeVars[admsProbeID_V_b2_c1].val() << std::endl;
3800  Xyce::dout() << " probeVars[admsProbeID_V_dt_GND] = "
3801  <<probeVars[admsProbeID_V_dt_GND].val() << std::endl;
3802  Xyce::dout() << " staticContributions[admsNodeID_c] = "
3803  <<staticContributions[admsNodeID_c].val() << std::endl;
3804  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_noi_e1) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_noi_e1) << std::endl;
3805  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_c3_c1) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_c3_c1) << std::endl;
3806  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_c3_c4) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_c3_c4) << std::endl;
3807  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_c4_c1) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_c4_c1) << std::endl;
3808  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_b_c) << std::endl;
3809  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_b_e) << std::endl;
3810  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_b_b1) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_b_b1) << std::endl;
3811  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_e_e1) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_e_e1) << std::endl;
3812  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_c1_c2) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_c1_c2) << std::endl;
3813  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_s_c1) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_s_c1) << std::endl;
3814  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_b1_b2) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_b1_b2) << std::endl;
3815  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_b1_e1) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_b1_e1) << std::endl;
3816  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_b2_e1) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_b2_e1) << std::endl;
3817  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_b2_c2) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_b2_c2) << std::endl;
3818  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_b2_c1) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_b2_c1) << std::endl;
3819  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_dt_GND) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_dt_GND) << std::endl;
3820  Xyce::dout() << " dynamicContributions[admsNodeID_c] = "
3821  <<dynamicContributions[admsNodeID_c].val() << std::endl;
3822  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_noi_e1) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_noi_e1) << std::endl;
3823  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_c3_c1) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_c3_c1) << std::endl;
3824  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_c3_c4) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_c3_c4) << std::endl;
3825  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_c4_c1) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_c4_c1) << std::endl;
3826  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c) << std::endl;
3827  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_e) << std::endl;
3828  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_b1) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_b1) << std::endl;
3829  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_e_e1) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_e_e1) << std::endl;
3830  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_c1_c2) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_c1_c2) << std::endl;
3831  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_s_c1) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_s_c1) << std::endl;
3832  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b1_b2) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b1_b2) << std::endl;
3833  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b1_e1) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b1_e1) << std::endl;
3834  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b2_e1) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b2_e1) << std::endl;
3835  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b2_c2) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b2_c2) << std::endl;
3836  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b2_c1) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b2_c1) << std::endl;
3837  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_dt_GND) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_dt_GND) << std::endl;
3838  Xyce::dout() << " Jdxp_static[admsNodeID_c] = "
3839  <<Jdxp_static[admsNodeID_c] << std::endl;
3840  Xyce::dout() << " Jdxp_dynamic[admsNodeID_c] = "
3841  <<Jdxp_dynamic[admsNodeID_c] << std::endl;
3842  Xyce::dout() << " staticContributions[admsNodeID_b] = "
3843  <<staticContributions[admsNodeID_b].val() << std::endl;
3844  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_noi_e1) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_noi_e1) << std::endl;
3845  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_c3_c1) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_c3_c1) << std::endl;
3846  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_c3_c4) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_c3_c4) << std::endl;
3847  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_c4_c1) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_c4_c1) << std::endl;
3848  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_b_c) << std::endl;
3849  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_b_e) << std::endl;
3850  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_b_b1) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_b_b1) << std::endl;
3851  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_e_e1) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_e_e1) << std::endl;
3852  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_c1_c2) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_c1_c2) << std::endl;
3853  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_s_c1) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_s_c1) << std::endl;
3854  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_b1_b2) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_b1_b2) << std::endl;
3855  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_b1_e1) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_b1_e1) << std::endl;
3856  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_b2_e1) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_b2_e1) << std::endl;
3857  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_b2_c2) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_b2_c2) << std::endl;
3858  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_b2_c1) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_b2_c1) << std::endl;
3859  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_dt_GND) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_dt_GND) << std::endl;
3860  Xyce::dout() << " dynamicContributions[admsNodeID_b] = "
3861  <<dynamicContributions[admsNodeID_b].val() << std::endl;
3862  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_noi_e1) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_noi_e1) << std::endl;
3863  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c3_c1) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c3_c1) << std::endl;
3864  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c3_c4) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c3_c4) << std::endl;
3865  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c4_c1) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c4_c1) << std::endl;
3866  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c) << std::endl;
3867  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_e) << std::endl;
3868  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_b1) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_b1) << std::endl;
3869  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_e_e1) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_e_e1) << std::endl;
3870  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c1_c2) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c1_c2) << std::endl;
3871  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_s_c1) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_s_c1) << std::endl;
3872  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b1_b2) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b1_b2) << std::endl;
3873  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b1_e1) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b1_e1) << std::endl;
3874  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b2_e1) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b2_e1) << std::endl;
3875  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b2_c2) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b2_c2) << std::endl;
3876  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b2_c1) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b2_c1) << std::endl;
3877  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_dt_GND) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_dt_GND) << std::endl;
3878  Xyce::dout() << " Jdxp_static[admsNodeID_b] = "
3879  <<Jdxp_static[admsNodeID_b] << std::endl;
3880  Xyce::dout() << " Jdxp_dynamic[admsNodeID_b] = "
3881  <<Jdxp_dynamic[admsNodeID_b] << std::endl;
3882  Xyce::dout() << " staticContributions[admsNodeID_e] = "
3883  <<staticContributions[admsNodeID_e].val() << std::endl;
3884  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_noi_e1) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_noi_e1) << std::endl;
3885  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_c3_c1) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_c3_c1) << std::endl;
3886  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_c3_c4) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_c3_c4) << std::endl;
3887  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_c4_c1) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_c4_c1) << std::endl;
3888  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_b_c) << std::endl;
3889  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_b_e) << std::endl;
3890  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_b_b1) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_b_b1) << std::endl;
3891  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_e_e1) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_e_e1) << std::endl;
3892  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_c1_c2) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_c1_c2) << std::endl;
3893  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_s_c1) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_s_c1) << std::endl;
3894  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_b1_b2) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_b1_b2) << std::endl;
3895  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_b1_e1) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_b1_e1) << std::endl;
3896  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_b2_e1) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_b2_e1) << std::endl;
3897  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_b2_c2) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_b2_c2) << std::endl;
3898  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_b2_c1) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_b2_c1) << std::endl;
3899  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_dt_GND) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_dt_GND) << std::endl;
3900  Xyce::dout() << " dynamicContributions[admsNodeID_e] = "
3901  <<dynamicContributions[admsNodeID_e].val() << std::endl;
3902  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_noi_e1) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_noi_e1) << std::endl;
3903  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_c3_c1) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_c3_c1) << std::endl;
3904  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_c3_c4) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_c3_c4) << std::endl;
3905  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_c4_c1) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_c4_c1) << std::endl;
3906  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_c) << std::endl;
3907  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_e) << std::endl;
3908  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_b1) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_b1) << std::endl;
3909  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_e_e1) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_e_e1) << std::endl;
3910  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_c1_c2) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_c1_c2) << std::endl;
3911  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_s_c1) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_s_c1) << std::endl;
3912  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b1_b2) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b1_b2) << std::endl;
3913  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b1_e1) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b1_e1) << std::endl;
3914  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b2_e1) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b2_e1) << std::endl;
3915  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b2_c2) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b2_c2) << std::endl;
3916  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b2_c1) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b2_c1) << std::endl;
3917  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_dt_GND) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_dt_GND) << std::endl;
3918  Xyce::dout() << " Jdxp_static[admsNodeID_e] = "
3919  <<Jdxp_static[admsNodeID_e] << std::endl;
3920  Xyce::dout() << " Jdxp_dynamic[admsNodeID_e] = "
3921  <<Jdxp_dynamic[admsNodeID_e] << std::endl;
3922  Xyce::dout() << " staticContributions[admsNodeID_s] = "
3923  <<staticContributions[admsNodeID_s].val() << std::endl;
3924  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_noi_e1) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_noi_e1) << std::endl;
3925  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_c3_c1) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_c3_c1) << std::endl;
3926  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_c3_c4) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_c3_c4) << std::endl;
3927  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_c4_c1) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_c4_c1) << std::endl;
3928  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_b_c) << std::endl;
3929  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_b_e) << std::endl;
3930  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_b_b1) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_b_b1) << std::endl;
3931  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_e_e1) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_e_e1) << std::endl;
3932  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_c1_c2) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_c1_c2) << std::endl;
3933  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_s_c1) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_s_c1) << std::endl;
3934  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_b1_b2) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_b1_b2) << std::endl;
3935  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_b1_e1) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_b1_e1) << std::endl;
3936  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_b2_e1) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_b2_e1) << std::endl;
3937  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_b2_c2) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_b2_c2) << std::endl;
3938  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_b2_c1) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_b2_c1) << std::endl;
3939  Xyce::dout() << " staticContributions[admsNodeID_s].dx(admsProbeID_V_dt_GND) = " <<staticContributions[admsNodeID_s].dx(admsProbeID_V_dt_GND) << std::endl;
3940  Xyce::dout() << " dynamicContributions[admsNodeID_s] = "
3941  <<dynamicContributions[admsNodeID_s].val() << std::endl;
3942  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_noi_e1) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_noi_e1) << std::endl;
3943  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_c3_c1) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_c3_c1) << std::endl;
3944  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_c3_c4) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_c3_c4) << std::endl;
3945  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_c4_c1) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_c4_c1) << std::endl;
3946  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b_c) << std::endl;
3947  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b_e) << std::endl;
3948  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b_b1) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b_b1) << std::endl;
3949  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_e_e1) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_e_e1) << std::endl;
3950  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_c1_c2) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_c1_c2) << std::endl;
3951  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_s_c1) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_s_c1) << std::endl;
3952  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b1_b2) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b1_b2) << std::endl;
3953  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b1_e1) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b1_e1) << std::endl;
3954  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b2_e1) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b2_e1) << std::endl;
3955  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b2_c2) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b2_c2) << std::endl;
3956  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b2_c1) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_b2_c1) << std::endl;
3957  Xyce::dout() << " dynamicContributions[admsNodeID_s].dx(admsProbeID_V_dt_GND) = " <<dynamicContributions[admsNodeID_s].dx(admsProbeID_V_dt_GND) << std::endl;
3958  Xyce::dout() << " Jdxp_static[admsNodeID_s] = "
3959  <<Jdxp_static[admsNodeID_s] << std::endl;
3960  Xyce::dout() << " Jdxp_dynamic[admsNodeID_s] = "
3961  <<Jdxp_dynamic[admsNodeID_s] << std::endl;
3962  Xyce::dout() << " staticContributions[admsNodeID_dt] = "
3963  <<staticContributions[admsNodeID_dt].val() << std::endl;
3964  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_noi_e1) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_noi_e1) << std::endl;
3965  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_c3_c1) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_c3_c1) << std::endl;
3966  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_c3_c4) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_c3_c4) << std::endl;
3967  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_c4_c1) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_c4_c1) << std::endl;
3968  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_c) << std::endl;
3969  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_e) << std::endl;
3970  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_b1) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_b1) << std::endl;
3971  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_e_e1) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_e_e1) << std::endl;
3972  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_c1_c2) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_c1_c2) << std::endl;
3973  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_s_c1) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_s_c1) << std::endl;
3974  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_b1_b2) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_b1_b2) << std::endl;
3975  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_b1_e1) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_b1_e1) << std::endl;
3976  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_b2_e1) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_b2_e1) << std::endl;
3977  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_b2_c2) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_b2_c2) << std::endl;
3978  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_b2_c1) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_b2_c1) << std::endl;
3979  Xyce::dout() << " staticContributions[admsNodeID_dt].dx(admsProbeID_V_dt_GND) = " <<staticContributions[admsNodeID_dt].dx(admsProbeID_V_dt_GND) << std::endl;
3980  Xyce::dout() << " dynamicContributions[admsNodeID_dt] = "
3981  <<dynamicContributions[admsNodeID_dt].val() << std::endl;
3982  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_noi_e1) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_noi_e1) << std::endl;
3983  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_c3_c1) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_c3_c1) << std::endl;
3984  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_c3_c4) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_c3_c4) << std::endl;
3985  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_c4_c1) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_c4_c1) << std::endl;
3986  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b_c) << std::endl;
3987  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b_e) << std::endl;
3988  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b_b1) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b_b1) << std::endl;
3989  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_e_e1) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_e_e1) << std::endl;
3990  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_c1_c2) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_c1_c2) << std::endl;
3991  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_s_c1) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_s_c1) << std::endl;
3992  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b1_b2) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b1_b2) << std::endl;
3993  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b1_e1) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b1_e1) << std::endl;
3994  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b2_e1) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b2_e1) << std::endl;
3995  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b2_c2) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b2_c2) << std::endl;
3996  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b2_c1) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_b2_c1) << std::endl;
3997  Xyce::dout() << " dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_dt_GND) = " <<dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_dt_GND) << std::endl;
3998  Xyce::dout() << " Jdxp_static[admsNodeID_dt] = "
3999  <<Jdxp_static[admsNodeID_dt] << std::endl;
4000  Xyce::dout() << " Jdxp_dynamic[admsNodeID_dt] = "
4001  <<Jdxp_dynamic[admsNodeID_dt] << std::endl;
4002  Xyce::dout() << " staticContributions[admsNodeID_e1] = "
4003  <<staticContributions[admsNodeID_e1].val() << std::endl;
4004  Xyce::dout() << " staticContributions[admsNodeID_e1].dx(admsProbeID_V_noi_e1) = " <<staticContributions[admsNodeID_e1].dx(admsProbeID_V_noi_e1) << std::endl;
4005  Xyce::dout() << " staticContributions[admsNodeID_e1].dx(admsProbeID_V_c3_c1) = " <<staticContributions[admsNodeID_e1].dx(admsProbeID_V_c3_c1) << std::endl;
4006  Xyce::dout() << " staticContributions[admsNodeID_e1].dx(admsProbeID_V_c3_c4) = " <<staticContributions[admsNodeID_e1].dx(admsProbeID_V_c3_c4) << std::endl;
4007  Xyce::dout() << " staticContributions[admsNodeID_e1].dx(admsProbeID_V_c4_c1) = " <<staticContributions[admsNodeID_e1].dx(admsProbeID_V_c4_c1) << std::endl;
4008  Xyce::dout() << " staticContributions[admsNodeID_e1].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_e1].dx(admsProbeID_V_b_c) << std::endl;
4009  Xyce::dout() << " staticContributions[admsNodeID_e1].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_e1].dx(admsProbeID_V_b_e) << std::endl;
4010  Xyce::dout() << " staticContributions[admsNodeID_e1].dx(admsProbeID_V_b_b1) = " <<staticContributions[admsNodeID_e1].dx(admsProbeID_V_b_b1) << std::endl;
4011  Xyce::dout() << " staticContributions[admsNodeID_e1].dx(admsProbeID_V_e_e1) = " <<staticContributions[admsNodeID_e1].dx(admsProbeID_V_e_e1) << std::endl;
4012  Xyce::dout() << " staticContributions[admsNodeID_e1].dx(admsProbeID_V_c1_c2) = " <<staticContributions[admsNodeID_e1].dx(admsProbeID_V_c1_c2) << std::endl;
4013  Xyce::dout() << " staticContributions[admsNodeID_e1].dx(admsProbeID_V_s_c1) = " <<staticContributions[admsNodeID_e1].dx(admsProbeID_V_s_c1) << std::endl;
4014  Xyce::dout() << " staticContributions[admsNodeID_e1].dx(admsProbeID_V_b1_b2) = " <<staticContributions[admsNodeID_e1].dx(admsProbeID_V_b1_b2) << std::endl;
4015  Xyce::dout() << " staticContributions[admsNodeID_e1].dx(admsProbeID_V_b1_e1) = " <<staticContributions[admsNodeID_e1].dx(admsProbeID_V_b1_e1) << std::endl;
4016  Xyce::dout() << " staticContributions[admsNodeID_e1].dx(admsProbeID_V_b2_e1) = " <<staticContributions[admsNodeID_e1].dx(admsProbeID_V_b2_e1) << std::endl;
4017  Xyce::dout() << " staticContributions[admsNodeID_e1].dx(admsProbeID_V_b2_c2) = " <<staticContributions[admsNodeID_e1].dx(admsProbeID_V_b2_c2) << std::endl;
4018  Xyce::dout() << " staticContributions[admsNodeID_e1].dx(admsProbeID_V_b2_c1) = " <<staticContributions[admsNodeID_e1].dx(admsProbeID_V_b2_c1) << std::endl;
4019  Xyce::dout() << " staticContributions[admsNodeID_e1].dx(admsProbeID_V_dt_GND) = " <<staticContributions[admsNodeID_e1].dx(admsProbeID_V_dt_GND) << std::endl;
4020  Xyce::dout() << " dynamicContributions[admsNodeID_e1] = "
4021  <<dynamicContributions[admsNodeID_e1].val() << std::endl;
4022  Xyce::dout() << " dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_noi_e1) = " <<dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_noi_e1) << std::endl;
4023  Xyce::dout() << " dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_c3_c1) = " <<dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_c3_c1) << std::endl;
4024  Xyce::dout() << " dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_c3_c4) = " <<dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_c3_c4) << std::endl;
4025  Xyce::dout() << " dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_c4_c1) = " <<dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_c4_c1) << std::endl;
4026  Xyce::dout() << " dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b_c) << std::endl;
4027  Xyce::dout() << " dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b_e) << std::endl;
4028  Xyce::dout() << " dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b_b1) = " <<dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b_b1) << std::endl;
4029  Xyce::dout() << " dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_e_e1) = " <<dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_e_e1) << std::endl;
4030  Xyce::dout() << " dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_c1_c2) = " <<dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_c1_c2) << std::endl;
4031  Xyce::dout() << " dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_s_c1) = " <<dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_s_c1) << std::endl;
4032  Xyce::dout() << " dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b1_b2) = " <<dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b1_b2) << std::endl;
4033  Xyce::dout() << " dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b1_e1) = " <<dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b1_e1) << std::endl;
4034  Xyce::dout() << " dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b2_e1) = " <<dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b2_e1) << std::endl;
4035  Xyce::dout() << " dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b2_c2) = " <<dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b2_c2) << std::endl;
4036  Xyce::dout() << " dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b2_c1) = " <<dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b2_c1) << std::endl;
4037  Xyce::dout() << " dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_dt_GND) = " <<dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_dt_GND) << std::endl;
4038  Xyce::dout() << " Jdxp_static[admsNodeID_e1] = "
4039  <<Jdxp_static[admsNodeID_e1] << std::endl;
4040  Xyce::dout() << " Jdxp_dynamic[admsNodeID_e1] = "
4041  <<Jdxp_dynamic[admsNodeID_e1] << std::endl;
4042  Xyce::dout() << " staticContributions[admsNodeID_b1] = "
4043  <<staticContributions[admsNodeID_b1].val() << std::endl;
4044  Xyce::dout() << " staticContributions[admsNodeID_b1].dx(admsProbeID_V_noi_e1) = " <<staticContributions[admsNodeID_b1].dx(admsProbeID_V_noi_e1) << std::endl;
4045  Xyce::dout() << " staticContributions[admsNodeID_b1].dx(admsProbeID_V_c3_c1) = " <<staticContributions[admsNodeID_b1].dx(admsProbeID_V_c3_c1) << std::endl;
4046  Xyce::dout() << " staticContributions[admsNodeID_b1].dx(admsProbeID_V_c3_c4) = " <<staticContributions[admsNodeID_b1].dx(admsProbeID_V_c3_c4) << std::endl;
4047  Xyce::dout() << " staticContributions[admsNodeID_b1].dx(admsProbeID_V_c4_c1) = " <<staticContributions[admsNodeID_b1].dx(admsProbeID_V_c4_c1) << std::endl;
4048  Xyce::dout() << " staticContributions[admsNodeID_b1].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_b1].dx(admsProbeID_V_b_c) << std::endl;
4049  Xyce::dout() << " staticContributions[admsNodeID_b1].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_b1].dx(admsProbeID_V_b_e) << std::endl;
4050  Xyce::dout() << " staticContributions[admsNodeID_b1].dx(admsProbeID_V_b_b1) = " <<staticContributions[admsNodeID_b1].dx(admsProbeID_V_b_b1) << std::endl;
4051  Xyce::dout() << " staticContributions[admsNodeID_b1].dx(admsProbeID_V_e_e1) = " <<staticContributions[admsNodeID_b1].dx(admsProbeID_V_e_e1) << std::endl;
4052  Xyce::dout() << " staticContributions[admsNodeID_b1].dx(admsProbeID_V_c1_c2) = " <<staticContributions[admsNodeID_b1].dx(admsProbeID_V_c1_c2) << std::endl;
4053  Xyce::dout() << " staticContributions[admsNodeID_b1].dx(admsProbeID_V_s_c1) = " <<staticContributions[admsNodeID_b1].dx(admsProbeID_V_s_c1) << std::endl;
4054  Xyce::dout() << " staticContributions[admsNodeID_b1].dx(admsProbeID_V_b1_b2) = " <<staticContributions[admsNodeID_b1].dx(admsProbeID_V_b1_b2) << std::endl;
4055  Xyce::dout() << " staticContributions[admsNodeID_b1].dx(admsProbeID_V_b1_e1) = " <<staticContributions[admsNodeID_b1].dx(admsProbeID_V_b1_e1) << std::endl;
4056  Xyce::dout() << " staticContributions[admsNodeID_b1].dx(admsProbeID_V_b2_e1) = " <<staticContributions[admsNodeID_b1].dx(admsProbeID_V_b2_e1) << std::endl;
4057  Xyce::dout() << " staticContributions[admsNodeID_b1].dx(admsProbeID_V_b2_c2) = " <<staticContributions[admsNodeID_b1].dx(admsProbeID_V_b2_c2) << std::endl;
4058  Xyce::dout() << " staticContributions[admsNodeID_b1].dx(admsProbeID_V_b2_c1) = " <<staticContributions[admsNodeID_b1].dx(admsProbeID_V_b2_c1) << std::endl;
4059  Xyce::dout() << " staticContributions[admsNodeID_b1].dx(admsProbeID_V_dt_GND) = " <<staticContributions[admsNodeID_b1].dx(admsProbeID_V_dt_GND) << std::endl;
4060  Xyce::dout() << " dynamicContributions[admsNodeID_b1] = "
4061  <<dynamicContributions[admsNodeID_b1].val() << std::endl;
4062  Xyce::dout() << " dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_noi_e1) = " <<dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_noi_e1) << std::endl;
4063  Xyce::dout() << " dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_c3_c1) = " <<dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_c3_c1) << std::endl;
4064  Xyce::dout() << " dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_c3_c4) = " <<dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_c3_c4) << std::endl;
4065  Xyce::dout() << " dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_c4_c1) = " <<dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_c4_c1) << std::endl;
4066  Xyce::dout() << " dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b_c) << std::endl;
4067  Xyce::dout() << " dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b_e) << std::endl;
4068  Xyce::dout() << " dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b_b1) = " <<dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b_b1) << std::endl;
4069  Xyce::dout() << " dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_e_e1) = " <<dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_e_e1) << std::endl;
4070  Xyce::dout() << " dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_c1_c2) = " <<dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_c1_c2) << std::endl;
4071  Xyce::dout() << " dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_s_c1) = " <<dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_s_c1) << std::endl;
4072  Xyce::dout() << " dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b1_b2) = " <<dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b1_b2) << std::endl;
4073  Xyce::dout() << " dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b1_e1) = " <<dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b1_e1) << std::endl;
4074  Xyce::dout() << " dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b2_e1) = " <<dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b2_e1) << std::endl;
4075  Xyce::dout() << " dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b2_c2) = " <<dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b2_c2) << std::endl;
4076  Xyce::dout() << " dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b2_c1) = " <<dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b2_c1) << std::endl;
4077  Xyce::dout() << " dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_dt_GND) = " <<dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_dt_GND) << std::endl;
4078  Xyce::dout() << " Jdxp_static[admsNodeID_b1] = "
4079  <<Jdxp_static[admsNodeID_b1] << std::endl;
4080  Xyce::dout() << " Jdxp_dynamic[admsNodeID_b1] = "
4081  <<Jdxp_dynamic[admsNodeID_b1] << std::endl;
4082  Xyce::dout() << " staticContributions[admsNodeID_b2] = "
4083  <<staticContributions[admsNodeID_b2].val() << std::endl;
4084  Xyce::dout() << " staticContributions[admsNodeID_b2].dx(admsProbeID_V_noi_e1) = " <<staticContributions[admsNodeID_b2].dx(admsProbeID_V_noi_e1) << std::endl;
4085  Xyce::dout() << " staticContributions[admsNodeID_b2].dx(admsProbeID_V_c3_c1) = " <<staticContributions[admsNodeID_b2].dx(admsProbeID_V_c3_c1) << std::endl;
4086  Xyce::dout() << " staticContributions[admsNodeID_b2].dx(admsProbeID_V_c3_c4) = " <<staticContributions[admsNodeID_b2].dx(admsProbeID_V_c3_c4) << std::endl;
4087  Xyce::dout() << " staticContributions[admsNodeID_b2].dx(admsProbeID_V_c4_c1) = " <<staticContributions[admsNodeID_b2].dx(admsProbeID_V_c4_c1) << std::endl;
4088  Xyce::dout() << " staticContributions[admsNodeID_b2].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_b2].dx(admsProbeID_V_b_c) << std::endl;
4089  Xyce::dout() << " staticContributions[admsNodeID_b2].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_b2].dx(admsProbeID_V_b_e) << std::endl;
4090  Xyce::dout() << " staticContributions[admsNodeID_b2].dx(admsProbeID_V_b_b1) = " <<staticContributions[admsNodeID_b2].dx(admsProbeID_V_b_b1) << std::endl;
4091  Xyce::dout() << " staticContributions[admsNodeID_b2].dx(admsProbeID_V_e_e1) = " <<staticContributions[admsNodeID_b2].dx(admsProbeID_V_e_e1) << std::endl;
4092  Xyce::dout() << " staticContributions[admsNodeID_b2].dx(admsProbeID_V_c1_c2) = " <<staticContributions[admsNodeID_b2].dx(admsProbeID_V_c1_c2) << std::endl;
4093  Xyce::dout() << " staticContributions[admsNodeID_b2].dx(admsProbeID_V_s_c1) = " <<staticContributions[admsNodeID_b2].dx(admsProbeID_V_s_c1) << std::endl;
4094  Xyce::dout() << " staticContributions[admsNodeID_b2].dx(admsProbeID_V_b1_b2) = " <<staticContributions[admsNodeID_b2].dx(admsProbeID_V_b1_b2) << std::endl;
4095  Xyce::dout() << " staticContributions[admsNodeID_b2].dx(admsProbeID_V_b1_e1) = " <<staticContributions[admsNodeID_b2].dx(admsProbeID_V_b1_e1) << std::endl;
4096  Xyce::dout() << " staticContributions[admsNodeID_b2].dx(admsProbeID_V_b2_e1) = " <<staticContributions[admsNodeID_b2].dx(admsProbeID_V_b2_e1) << std::endl;
4097  Xyce::dout() << " staticContributions[admsNodeID_b2].dx(admsProbeID_V_b2_c2) = " <<staticContributions[admsNodeID_b2].dx(admsProbeID_V_b2_c2) << std::endl;
4098  Xyce::dout() << " staticContributions[admsNodeID_b2].dx(admsProbeID_V_b2_c1) = " <<staticContributions[admsNodeID_b2].dx(admsProbeID_V_b2_c1) << std::endl;
4099  Xyce::dout() << " staticContributions[admsNodeID_b2].dx(admsProbeID_V_dt_GND) = " <<staticContributions[admsNodeID_b2].dx(admsProbeID_V_dt_GND) << std::endl;
4100  Xyce::dout() << " dynamicContributions[admsNodeID_b2] = "
4101  <<dynamicContributions[admsNodeID_b2].val() << std::endl;
4102  Xyce::dout() << " dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_noi_e1) = " <<dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_noi_e1) << std::endl;
4103  Xyce::dout() << " dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_c3_c1) = " <<dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_c3_c1) << std::endl;
4104  Xyce::dout() << " dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_c3_c4) = " <<dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_c3_c4) << std::endl;
4105  Xyce::dout() << " dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_c4_c1) = " <<dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_c4_c1) << std::endl;
4106  Xyce::dout() << " dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b_c) << std::endl;
4107  Xyce::dout() << " dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b_e) << std::endl;
4108  Xyce::dout() << " dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b_b1) = " <<dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b_b1) << std::endl;
4109  Xyce::dout() << " dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_e_e1) = " <<dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_e_e1) << std::endl;
4110  Xyce::dout() << " dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_c1_c2) = " <<dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_c1_c2) << std::endl;
4111  Xyce::dout() << " dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_s_c1) = " <<dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_s_c1) << std::endl;
4112  Xyce::dout() << " dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b1_b2) = " <<dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b1_b2) << std::endl;
4113  Xyce::dout() << " dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b1_e1) = " <<dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b1_e1) << std::endl;
4114  Xyce::dout() << " dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b2_e1) = " <<dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b2_e1) << std::endl;
4115  Xyce::dout() << " dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b2_c2) = " <<dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b2_c2) << std::endl;
4116  Xyce::dout() << " dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b2_c1) = " <<dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b2_c1) << std::endl;
4117  Xyce::dout() << " dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_dt_GND) = " <<dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_dt_GND) << std::endl;
4118  Xyce::dout() << " Jdxp_static[admsNodeID_b2] = "
4119  <<Jdxp_static[admsNodeID_b2] << std::endl;
4120  Xyce::dout() << " Jdxp_dynamic[admsNodeID_b2] = "
4121  <<Jdxp_dynamic[admsNodeID_b2] << std::endl;
4122  Xyce::dout() << " staticContributions[admsNodeID_c3] = "
4123  <<staticContributions[admsNodeID_c3].val() << std::endl;
4124  Xyce::dout() << " staticContributions[admsNodeID_c3].dx(admsProbeID_V_noi_e1) = " <<staticContributions[admsNodeID_c3].dx(admsProbeID_V_noi_e1) << std::endl;
4125  Xyce::dout() << " staticContributions[admsNodeID_c3].dx(admsProbeID_V_c3_c1) = " <<staticContributions[admsNodeID_c3].dx(admsProbeID_V_c3_c1) << std::endl;
4126  Xyce::dout() << " staticContributions[admsNodeID_c3].dx(admsProbeID_V_c3_c4) = " <<staticContributions[admsNodeID_c3].dx(admsProbeID_V_c3_c4) << std::endl;
4127  Xyce::dout() << " staticContributions[admsNodeID_c3].dx(admsProbeID_V_c4_c1) = " <<staticContributions[admsNodeID_c3].dx(admsProbeID_V_c4_c1) << std::endl;
4128  Xyce::dout() << " staticContributions[admsNodeID_c3].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_c3].dx(admsProbeID_V_b_c) << std::endl;
4129  Xyce::dout() << " staticContributions[admsNodeID_c3].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_c3].dx(admsProbeID_V_b_e) << std::endl;
4130  Xyce::dout() << " staticContributions[admsNodeID_c3].dx(admsProbeID_V_b_b1) = " <<staticContributions[admsNodeID_c3].dx(admsProbeID_V_b_b1) << std::endl;
4131  Xyce::dout() << " staticContributions[admsNodeID_c3].dx(admsProbeID_V_e_e1) = " <<staticContributions[admsNodeID_c3].dx(admsProbeID_V_e_e1) << std::endl;
4132  Xyce::dout() << " staticContributions[admsNodeID_c3].dx(admsProbeID_V_c1_c2) = " <<staticContributions[admsNodeID_c3].dx(admsProbeID_V_c1_c2) << std::endl;
4133  Xyce::dout() << " staticContributions[admsNodeID_c3].dx(admsProbeID_V_s_c1) = " <<staticContributions[admsNodeID_c3].dx(admsProbeID_V_s_c1) << std::endl;
4134  Xyce::dout() << " staticContributions[admsNodeID_c3].dx(admsProbeID_V_b1_b2) = " <<staticContributions[admsNodeID_c3].dx(admsProbeID_V_b1_b2) << std::endl;
4135  Xyce::dout() << " staticContributions[admsNodeID_c3].dx(admsProbeID_V_b1_e1) = " <<staticContributions[admsNodeID_c3].dx(admsProbeID_V_b1_e1) << std::endl;
4136  Xyce::dout() << " staticContributions[admsNodeID_c3].dx(admsProbeID_V_b2_e1) = " <<staticContributions[admsNodeID_c3].dx(admsProbeID_V_b2_e1) << std::endl;
4137  Xyce::dout() << " staticContributions[admsNodeID_c3].dx(admsProbeID_V_b2_c2) = " <<staticContributions[admsNodeID_c3].dx(admsProbeID_V_b2_c2) << std::endl;
4138  Xyce::dout() << " staticContributions[admsNodeID_c3].dx(admsProbeID_V_b2_c1) = " <<staticContributions[admsNodeID_c3].dx(admsProbeID_V_b2_c1) << std::endl;
4139  Xyce::dout() << " staticContributions[admsNodeID_c3].dx(admsProbeID_V_dt_GND) = " <<staticContributions[admsNodeID_c3].dx(admsProbeID_V_dt_GND) << std::endl;
4140  Xyce::dout() << " dynamicContributions[admsNodeID_c3] = "
4141  <<dynamicContributions[admsNodeID_c3].val() << std::endl;
4142  Xyce::dout() << " dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_noi_e1) = " <<dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_noi_e1) << std::endl;
4143  Xyce::dout() << " dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_c3_c1) = " <<dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_c3_c1) << std::endl;
4144  Xyce::dout() << " dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_c3_c4) = " <<dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_c3_c4) << std::endl;
4145  Xyce::dout() << " dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_c4_c1) = " <<dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_c4_c1) << std::endl;
4146  Xyce::dout() << " dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b_c) << std::endl;
4147  Xyce::dout() << " dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b_e) << std::endl;
4148  Xyce::dout() << " dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b_b1) = " <<dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b_b1) << std::endl;
4149  Xyce::dout() << " dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_e_e1) = " <<dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_e_e1) << std::endl;
4150  Xyce::dout() << " dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_c1_c2) = " <<dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_c1_c2) << std::endl;
4151  Xyce::dout() << " dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_s_c1) = " <<dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_s_c1) << std::endl;
4152  Xyce::dout() << " dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b1_b2) = " <<dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b1_b2) << std::endl;
4153  Xyce::dout() << " dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b1_e1) = " <<dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b1_e1) << std::endl;
4154  Xyce::dout() << " dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b2_e1) = " <<dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b2_e1) << std::endl;
4155  Xyce::dout() << " dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b2_c2) = " <<dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b2_c2) << std::endl;
4156  Xyce::dout() << " dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b2_c1) = " <<dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b2_c1) << std::endl;
4157  Xyce::dout() << " dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_dt_GND) = " <<dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_dt_GND) << std::endl;
4158  Xyce::dout() << " Jdxp_static[admsNodeID_c3] = "
4159  <<Jdxp_static[admsNodeID_c3] << std::endl;
4160  Xyce::dout() << " Jdxp_dynamic[admsNodeID_c3] = "
4161  <<Jdxp_dynamic[admsNodeID_c3] << std::endl;
4162  Xyce::dout() << " staticContributions[admsNodeID_c4] = "
4163  <<staticContributions[admsNodeID_c4].val() << std::endl;
4164  Xyce::dout() << " staticContributions[admsNodeID_c4].dx(admsProbeID_V_noi_e1) = " <<staticContributions[admsNodeID_c4].dx(admsProbeID_V_noi_e1) << std::endl;
4165  Xyce::dout() << " staticContributions[admsNodeID_c4].dx(admsProbeID_V_c3_c1) = " <<staticContributions[admsNodeID_c4].dx(admsProbeID_V_c3_c1) << std::endl;
4166  Xyce::dout() << " staticContributions[admsNodeID_c4].dx(admsProbeID_V_c3_c4) = " <<staticContributions[admsNodeID_c4].dx(admsProbeID_V_c3_c4) << std::endl;
4167  Xyce::dout() << " staticContributions[admsNodeID_c4].dx(admsProbeID_V_c4_c1) = " <<staticContributions[admsNodeID_c4].dx(admsProbeID_V_c4_c1) << std::endl;
4168  Xyce::dout() << " staticContributions[admsNodeID_c4].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_c4].dx(admsProbeID_V_b_c) << std::endl;
4169  Xyce::dout() << " staticContributions[admsNodeID_c4].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_c4].dx(admsProbeID_V_b_e) << std::endl;
4170  Xyce::dout() << " staticContributions[admsNodeID_c4].dx(admsProbeID_V_b_b1) = " <<staticContributions[admsNodeID_c4].dx(admsProbeID_V_b_b1) << std::endl;
4171  Xyce::dout() << " staticContributions[admsNodeID_c4].dx(admsProbeID_V_e_e1) = " <<staticContributions[admsNodeID_c4].dx(admsProbeID_V_e_e1) << std::endl;
4172  Xyce::dout() << " staticContributions[admsNodeID_c4].dx(admsProbeID_V_c1_c2) = " <<staticContributions[admsNodeID_c4].dx(admsProbeID_V_c1_c2) << std::endl;
4173  Xyce::dout() << " staticContributions[admsNodeID_c4].dx(admsProbeID_V_s_c1) = " <<staticContributions[admsNodeID_c4].dx(admsProbeID_V_s_c1) << std::endl;
4174  Xyce::dout() << " staticContributions[admsNodeID_c4].dx(admsProbeID_V_b1_b2) = " <<staticContributions[admsNodeID_c4].dx(admsProbeID_V_b1_b2) << std::endl;
4175  Xyce::dout() << " staticContributions[admsNodeID_c4].dx(admsProbeID_V_b1_e1) = " <<staticContributions[admsNodeID_c4].dx(admsProbeID_V_b1_e1) << std::endl;
4176  Xyce::dout() << " staticContributions[admsNodeID_c4].dx(admsProbeID_V_b2_e1) = " <<staticContributions[admsNodeID_c4].dx(admsProbeID_V_b2_e1) << std::endl;
4177  Xyce::dout() << " staticContributions[admsNodeID_c4].dx(admsProbeID_V_b2_c2) = " <<staticContributions[admsNodeID_c4].dx(admsProbeID_V_b2_c2) << std::endl;
4178  Xyce::dout() << " staticContributions[admsNodeID_c4].dx(admsProbeID_V_b2_c1) = " <<staticContributions[admsNodeID_c4].dx(admsProbeID_V_b2_c1) << std::endl;
4179  Xyce::dout() << " staticContributions[admsNodeID_c4].dx(admsProbeID_V_dt_GND) = " <<staticContributions[admsNodeID_c4].dx(admsProbeID_V_dt_GND) << std::endl;
4180  Xyce::dout() << " dynamicContributions[admsNodeID_c4] = "
4181  <<dynamicContributions[admsNodeID_c4].val() << std::endl;
4182  Xyce::dout() << " dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_noi_e1) = " <<dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_noi_e1) << std::endl;
4183  Xyce::dout() << " dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_c3_c1) = " <<dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_c3_c1) << std::endl;
4184  Xyce::dout() << " dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_c3_c4) = " <<dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_c3_c4) << std::endl;
4185  Xyce::dout() << " dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_c4_c1) = " <<dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_c4_c1) << std::endl;
4186  Xyce::dout() << " dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b_c) << std::endl;
4187  Xyce::dout() << " dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b_e) << std::endl;
4188  Xyce::dout() << " dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b_b1) = " <<dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b_b1) << std::endl;
4189  Xyce::dout() << " dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_e_e1) = " <<dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_e_e1) << std::endl;
4190  Xyce::dout() << " dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_c1_c2) = " <<dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_c1_c2) << std::endl;
4191  Xyce::dout() << " dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_s_c1) = " <<dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_s_c1) << std::endl;
4192  Xyce::dout() << " dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b1_b2) = " <<dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b1_b2) << std::endl;
4193  Xyce::dout() << " dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b1_e1) = " <<dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b1_e1) << std::endl;
4194  Xyce::dout() << " dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b2_e1) = " <<dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b2_e1) << std::endl;
4195  Xyce::dout() << " dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b2_c2) = " <<dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b2_c2) << std::endl;
4196  Xyce::dout() << " dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b2_c1) = " <<dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b2_c1) << std::endl;
4197  Xyce::dout() << " dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_dt_GND) = " <<dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_dt_GND) << std::endl;
4198  Xyce::dout() << " Jdxp_static[admsNodeID_c4] = "
4199  <<Jdxp_static[admsNodeID_c4] << std::endl;
4200  Xyce::dout() << " Jdxp_dynamic[admsNodeID_c4] = "
4201  <<Jdxp_dynamic[admsNodeID_c4] << std::endl;
4202  Xyce::dout() << " staticContributions[admsNodeID_c2] = "
4203  <<staticContributions[admsNodeID_c2].val() << std::endl;
4204  Xyce::dout() << " staticContributions[admsNodeID_c2].dx(admsProbeID_V_noi_e1) = " <<staticContributions[admsNodeID_c2].dx(admsProbeID_V_noi_e1) << std::endl;
4205  Xyce::dout() << " staticContributions[admsNodeID_c2].dx(admsProbeID_V_c3_c1) = " <<staticContributions[admsNodeID_c2].dx(admsProbeID_V_c3_c1) << std::endl;
4206  Xyce::dout() << " staticContributions[admsNodeID_c2].dx(admsProbeID_V_c3_c4) = " <<staticContributions[admsNodeID_c2].dx(admsProbeID_V_c3_c4) << std::endl;
4207  Xyce::dout() << " staticContributions[admsNodeID_c2].dx(admsProbeID_V_c4_c1) = " <<staticContributions[admsNodeID_c2].dx(admsProbeID_V_c4_c1) << std::endl;
4208  Xyce::dout() << " staticContributions[admsNodeID_c2].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_c2].dx(admsProbeID_V_b_c) << std::endl;
4209  Xyce::dout() << " staticContributions[admsNodeID_c2].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_c2].dx(admsProbeID_V_b_e) << std::endl;
4210  Xyce::dout() << " staticContributions[admsNodeID_c2].dx(admsProbeID_V_b_b1) = " <<staticContributions[admsNodeID_c2].dx(admsProbeID_V_b_b1) << std::endl;
4211  Xyce::dout() << " staticContributions[admsNodeID_c2].dx(admsProbeID_V_e_e1) = " <<staticContributions[admsNodeID_c2].dx(admsProbeID_V_e_e1) << std::endl;
4212  Xyce::dout() << " staticContributions[admsNodeID_c2].dx(admsProbeID_V_c1_c2) = " <<staticContributions[admsNodeID_c2].dx(admsProbeID_V_c1_c2) << std::endl;
4213  Xyce::dout() << " staticContributions[admsNodeID_c2].dx(admsProbeID_V_s_c1) = " <<staticContributions[admsNodeID_c2].dx(admsProbeID_V_s_c1) << std::endl;
4214  Xyce::dout() << " staticContributions[admsNodeID_c2].dx(admsProbeID_V_b1_b2) = " <<staticContributions[admsNodeID_c2].dx(admsProbeID_V_b1_b2) << std::endl;
4215  Xyce::dout() << " staticContributions[admsNodeID_c2].dx(admsProbeID_V_b1_e1) = " <<staticContributions[admsNodeID_c2].dx(admsProbeID_V_b1_e1) << std::endl;
4216  Xyce::dout() << " staticContributions[admsNodeID_c2].dx(admsProbeID_V_b2_e1) = " <<staticContributions[admsNodeID_c2].dx(admsProbeID_V_b2_e1) << std::endl;
4217  Xyce::dout() << " staticContributions[admsNodeID_c2].dx(admsProbeID_V_b2_c2) = " <<staticContributions[admsNodeID_c2].dx(admsProbeID_V_b2_c2) << std::endl;
4218  Xyce::dout() << " staticContributions[admsNodeID_c2].dx(admsProbeID_V_b2_c1) = " <<staticContributions[admsNodeID_c2].dx(admsProbeID_V_b2_c1) << std::endl;
4219  Xyce::dout() << " staticContributions[admsNodeID_c2].dx(admsProbeID_V_dt_GND) = " <<staticContributions[admsNodeID_c2].dx(admsProbeID_V_dt_GND) << std::endl;
4220  Xyce::dout() << " dynamicContributions[admsNodeID_c2] = "
4221  <<dynamicContributions[admsNodeID_c2].val() << std::endl;
4222  Xyce::dout() << " dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_noi_e1) = " <<dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_noi_e1) << std::endl;
4223  Xyce::dout() << " dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_c3_c1) = " <<dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_c3_c1) << std::endl;
4224  Xyce::dout() << " dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_c3_c4) = " <<dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_c3_c4) << std::endl;
4225  Xyce::dout() << " dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_c4_c1) = " <<dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_c4_c1) << std::endl;
4226  Xyce::dout() << " dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b_c) << std::endl;
4227  Xyce::dout() << " dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b_e) << std::endl;
4228  Xyce::dout() << " dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b_b1) = " <<dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b_b1) << std::endl;
4229  Xyce::dout() << " dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_e_e1) = " <<dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_e_e1) << std::endl;
4230  Xyce::dout() << " dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_c1_c2) = " <<dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_c1_c2) << std::endl;
4231  Xyce::dout() << " dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_s_c1) = " <<dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_s_c1) << std::endl;
4232  Xyce::dout() << " dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b1_b2) = " <<dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b1_b2) << std::endl;
4233  Xyce::dout() << " dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b1_e1) = " <<dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b1_e1) << std::endl;
4234  Xyce::dout() << " dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b2_e1) = " <<dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b2_e1) << std::endl;
4235  Xyce::dout() << " dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b2_c2) = " <<dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b2_c2) << std::endl;
4236  Xyce::dout() << " dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b2_c1) = " <<dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b2_c1) << std::endl;
4237  Xyce::dout() << " dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_dt_GND) = " <<dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_dt_GND) << std::endl;
4238  Xyce::dout() << " Jdxp_static[admsNodeID_c2] = "
4239  <<Jdxp_static[admsNodeID_c2] << std::endl;
4240  Xyce::dout() << " Jdxp_dynamic[admsNodeID_c2] = "
4241  <<Jdxp_dynamic[admsNodeID_c2] << std::endl;
4242  Xyce::dout() << " staticContributions[admsNodeID_c1] = "
4243  <<staticContributions[admsNodeID_c1].val() << std::endl;
4244  Xyce::dout() << " staticContributions[admsNodeID_c1].dx(admsProbeID_V_noi_e1) = " <<staticContributions[admsNodeID_c1].dx(admsProbeID_V_noi_e1) << std::endl;
4245  Xyce::dout() << " staticContributions[admsNodeID_c1].dx(admsProbeID_V_c3_c1) = " <<staticContributions[admsNodeID_c1].dx(admsProbeID_V_c3_c1) << std::endl;
4246  Xyce::dout() << " staticContributions[admsNodeID_c1].dx(admsProbeID_V_c3_c4) = " <<staticContributions[admsNodeID_c1].dx(admsProbeID_V_c3_c4) << std::endl;
4247  Xyce::dout() << " staticContributions[admsNodeID_c1].dx(admsProbeID_V_c4_c1) = " <<staticContributions[admsNodeID_c1].dx(admsProbeID_V_c4_c1) << std::endl;
4248  Xyce::dout() << " staticContributions[admsNodeID_c1].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_c1].dx(admsProbeID_V_b_c) << std::endl;
4249  Xyce::dout() << " staticContributions[admsNodeID_c1].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_c1].dx(admsProbeID_V_b_e) << std::endl;
4250  Xyce::dout() << " staticContributions[admsNodeID_c1].dx(admsProbeID_V_b_b1) = " <<staticContributions[admsNodeID_c1].dx(admsProbeID_V_b_b1) << std::endl;
4251  Xyce::dout() << " staticContributions[admsNodeID_c1].dx(admsProbeID_V_e_e1) = " <<staticContributions[admsNodeID_c1].dx(admsProbeID_V_e_e1) << std::endl;
4252  Xyce::dout() << " staticContributions[admsNodeID_c1].dx(admsProbeID_V_c1_c2) = " <<staticContributions[admsNodeID_c1].dx(admsProbeID_V_c1_c2) << std::endl;
4253  Xyce::dout() << " staticContributions[admsNodeID_c1].dx(admsProbeID_V_s_c1) = " <<staticContributions[admsNodeID_c1].dx(admsProbeID_V_s_c1) << std::endl;
4254  Xyce::dout() << " staticContributions[admsNodeID_c1].dx(admsProbeID_V_b1_b2) = " <<staticContributions[admsNodeID_c1].dx(admsProbeID_V_b1_b2) << std::endl;
4255  Xyce::dout() << " staticContributions[admsNodeID_c1].dx(admsProbeID_V_b1_e1) = " <<staticContributions[admsNodeID_c1].dx(admsProbeID_V_b1_e1) << std::endl;
4256  Xyce::dout() << " staticContributions[admsNodeID_c1].dx(admsProbeID_V_b2_e1) = " <<staticContributions[admsNodeID_c1].dx(admsProbeID_V_b2_e1) << std::endl;
4257  Xyce::dout() << " staticContributions[admsNodeID_c1].dx(admsProbeID_V_b2_c2) = " <<staticContributions[admsNodeID_c1].dx(admsProbeID_V_b2_c2) << std::endl;
4258  Xyce::dout() << " staticContributions[admsNodeID_c1].dx(admsProbeID_V_b2_c1) = " <<staticContributions[admsNodeID_c1].dx(admsProbeID_V_b2_c1) << std::endl;
4259  Xyce::dout() << " staticContributions[admsNodeID_c1].dx(admsProbeID_V_dt_GND) = " <<staticContributions[admsNodeID_c1].dx(admsProbeID_V_dt_GND) << std::endl;
4260  Xyce::dout() << " dynamicContributions[admsNodeID_c1] = "
4261  <<dynamicContributions[admsNodeID_c1].val() << std::endl;
4262  Xyce::dout() << " dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_noi_e1) = " <<dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_noi_e1) << std::endl;
4263  Xyce::dout() << " dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_c3_c1) = " <<dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_c3_c1) << std::endl;
4264  Xyce::dout() << " dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_c3_c4) = " <<dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_c3_c4) << std::endl;
4265  Xyce::dout() << " dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_c4_c1) = " <<dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_c4_c1) << std::endl;
4266  Xyce::dout() << " dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b_c) << std::endl;
4267  Xyce::dout() << " dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b_e) << std::endl;
4268  Xyce::dout() << " dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b_b1) = " <<dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b_b1) << std::endl;
4269  Xyce::dout() << " dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_e_e1) = " <<dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_e_e1) << std::endl;
4270  Xyce::dout() << " dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_c1_c2) = " <<dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_c1_c2) << std::endl;
4271  Xyce::dout() << " dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_s_c1) = " <<dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_s_c1) << std::endl;
4272  Xyce::dout() << " dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b1_b2) = " <<dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b1_b2) << std::endl;
4273  Xyce::dout() << " dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b1_e1) = " <<dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b1_e1) << std::endl;
4274  Xyce::dout() << " dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b2_e1) = " <<dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b2_e1) << std::endl;
4275  Xyce::dout() << " dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b2_c2) = " <<dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b2_c2) << std::endl;
4276  Xyce::dout() << " dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b2_c1) = " <<dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b2_c1) << std::endl;
4277  Xyce::dout() << " dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_dt_GND) = " <<dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_dt_GND) << std::endl;
4278  Xyce::dout() << " Jdxp_static[admsNodeID_c1] = "
4279  <<Jdxp_static[admsNodeID_c1] << std::endl;
4280  Xyce::dout() << " Jdxp_dynamic[admsNodeID_c1] = "
4281  <<Jdxp_dynamic[admsNodeID_c1] << std::endl;
4282  Xyce::dout() << " staticContributions[admsNodeID_noi] = "
4283  <<staticContributions[admsNodeID_noi].val() << std::endl;
4284  Xyce::dout() << " staticContributions[admsNodeID_noi].dx(admsProbeID_V_noi_e1) = " <<staticContributions[admsNodeID_noi].dx(admsProbeID_V_noi_e1) << std::endl;
4285  Xyce::dout() << " staticContributions[admsNodeID_noi].dx(admsProbeID_V_c3_c1) = " <<staticContributions[admsNodeID_noi].dx(admsProbeID_V_c3_c1) << std::endl;
4286  Xyce::dout() << " staticContributions[admsNodeID_noi].dx(admsProbeID_V_c3_c4) = " <<staticContributions[admsNodeID_noi].dx(admsProbeID_V_c3_c4) << std::endl;
4287  Xyce::dout() << " staticContributions[admsNodeID_noi].dx(admsProbeID_V_c4_c1) = " <<staticContributions[admsNodeID_noi].dx(admsProbeID_V_c4_c1) << std::endl;
4288  Xyce::dout() << " staticContributions[admsNodeID_noi].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_noi].dx(admsProbeID_V_b_c) << std::endl;
4289  Xyce::dout() << " staticContributions[admsNodeID_noi].dx(admsProbeID_V_b_e) = " <<staticContributions[admsNodeID_noi].dx(admsProbeID_V_b_e) << std::endl;
4290  Xyce::dout() << " staticContributions[admsNodeID_noi].dx(admsProbeID_V_b_b1) = " <<staticContributions[admsNodeID_noi].dx(admsProbeID_V_b_b1) << std::endl;
4291  Xyce::dout() << " staticContributions[admsNodeID_noi].dx(admsProbeID_V_e_e1) = " <<staticContributions[admsNodeID_noi].dx(admsProbeID_V_e_e1) << std::endl;
4292  Xyce::dout() << " staticContributions[admsNodeID_noi].dx(admsProbeID_V_c1_c2) = " <<staticContributions[admsNodeID_noi].dx(admsProbeID_V_c1_c2) << std::endl;
4293  Xyce::dout() << " staticContributions[admsNodeID_noi].dx(admsProbeID_V_s_c1) = " <<staticContributions[admsNodeID_noi].dx(admsProbeID_V_s_c1) << std::endl;
4294  Xyce::dout() << " staticContributions[admsNodeID_noi].dx(admsProbeID_V_b1_b2) = " <<staticContributions[admsNodeID_noi].dx(admsProbeID_V_b1_b2) << std::endl;
4295  Xyce::dout() << " staticContributions[admsNodeID_noi].dx(admsProbeID_V_b1_e1) = " <<staticContributions[admsNodeID_noi].dx(admsProbeID_V_b1_e1) << std::endl;
4296  Xyce::dout() << " staticContributions[admsNodeID_noi].dx(admsProbeID_V_b2_e1) = " <<staticContributions[admsNodeID_noi].dx(admsProbeID_V_b2_e1) << std::endl;
4297  Xyce::dout() << " staticContributions[admsNodeID_noi].dx(admsProbeID_V_b2_c2) = " <<staticContributions[admsNodeID_noi].dx(admsProbeID_V_b2_c2) << std::endl;
4298  Xyce::dout() << " staticContributions[admsNodeID_noi].dx(admsProbeID_V_b2_c1) = " <<staticContributions[admsNodeID_noi].dx(admsProbeID_V_b2_c1) << std::endl;
4299  Xyce::dout() << " staticContributions[admsNodeID_noi].dx(admsProbeID_V_dt_GND) = " <<staticContributions[admsNodeID_noi].dx(admsProbeID_V_dt_GND) << std::endl;
4300  Xyce::dout() << " dynamicContributions[admsNodeID_noi] = "
4301  <<dynamicContributions[admsNodeID_noi].val() << std::endl;
4302  Xyce::dout() << " dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_noi_e1) = " <<dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_noi_e1) << std::endl;
4303  Xyce::dout() << " dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_c3_c1) = " <<dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_c3_c1) << std::endl;
4304  Xyce::dout() << " dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_c3_c4) = " <<dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_c3_c4) << std::endl;
4305  Xyce::dout() << " dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_c4_c1) = " <<dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_c4_c1) << std::endl;
4306  Xyce::dout() << " dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_b_c) << std::endl;
4307  Xyce::dout() << " dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_b_e) = " <<dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_b_e) << std::endl;
4308  Xyce::dout() << " dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_b_b1) = " <<dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_b_b1) << std::endl;
4309  Xyce::dout() << " dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_e_e1) = " <<dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_e_e1) << std::endl;
4310  Xyce::dout() << " dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_c1_c2) = " <<dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_c1_c2) << std::endl;
4311  Xyce::dout() << " dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_s_c1) = " <<dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_s_c1) << std::endl;
4312  Xyce::dout() << " dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_b1_b2) = " <<dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_b1_b2) << std::endl;
4313  Xyce::dout() << " dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_b1_e1) = " <<dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_b1_e1) << std::endl;
4314  Xyce::dout() << " dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_b2_e1) = " <<dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_b2_e1) << std::endl;
4315  Xyce::dout() << " dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_b2_c2) = " <<dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_b2_c2) << std::endl;
4316  Xyce::dout() << " dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_b2_c1) = " <<dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_b2_c1) << std::endl;
4317  Xyce::dout() << " dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_dt_GND) = " <<dynamicContributions[admsNodeID_noi].dx(admsProbeID_V_dt_GND) << std::endl;
4318  Xyce::dout() << " Jdxp_static[admsNodeID_noi] = "
4319  <<Jdxp_static[admsNodeID_noi] << std::endl;
4320  Xyce::dout() << " Jdxp_dynamic[admsNodeID_noi] = "
4321  <<Jdxp_dynamic[admsNodeID_noi] << std::endl;
4322 
4323  if (!origFlag)
4324  Xyce::dout() << "This step was limited by this device." << std::endl;
4325  }
4326 
4327  return true;
4328 }
4329 
4330 //-----------------------------------------------------------------------------
4331 // Function : Instance::loadDAEdFdx
4332 // Purpose :
4333 // Special Notes : Load the dFdx ("static jacobian") matrix
4334 // Scope : public
4335 // Creator : admsXml
4336 // Creation Date :
4337 //-----------------------------------------------------------------------------
4339 {
4340  bool bsuccess = true;
4341  Linear::Matrix * dFdxMatPtr = extData.dFdxMatrixPtr;
4342 
4343  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4344  {
4345  Xyce::dout() << subsection_divider << std::endl;
4346  Xyce::dout() << "ADMSbjt504tva::Instance::loadDAEdFdx (" << getName() << "):" << std::endl;
4347  }
4349 
4350 
4351  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4352  {
4354  }
4356 
4357 
4358  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4359  {
4360  Xyce::dout() << " (*f_c1_Equ_c2_Node_Ptr) += " << -staticContributions[admsNodeID_c1].dx(admsProbeID_V_b2_c2) -staticContributions[admsNodeID_c1].dx(admsProbeID_V_c1_c2)<< std::endl;
4361  }
4363 
4364 
4365  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4366  {
4368  }
4370 
4371 
4372  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4373  {
4374  Xyce::dout() << " (*f_c2_Equ_c2_Node_Ptr) += " << -staticContributions[admsNodeID_c2].dx(admsProbeID_V_b2_c2) -staticContributions[admsNodeID_c2].dx(admsProbeID_V_c1_c2)<< std::endl;
4375  }
4377 
4378 
4379  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4380  {
4382  }
4384 
4385 
4386  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4387  {
4389  }
4390  (*f_c1_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_c1].dx(admsProbeID_V_dt_GND);
4391 
4392 
4393  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4394  {
4395  Xyce::dout() << " (*f_c1_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_c1].dx(admsProbeID_V_dt_GND)<< std::endl;
4396  }
4397  (*f_c2_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_c2].dx(admsProbeID_V_dt_GND);
4398 
4399 
4400  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4401  {
4402  Xyce::dout() << " (*f_c2_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_c2].dx(admsProbeID_V_dt_GND)<< std::endl;
4403  }
4405 
4406 
4407  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4408  {
4409  Xyce::dout() << " (*f_e1_Equ_c1_Node_Ptr) += " << -staticContributions[admsNodeID_e1].dx(admsProbeID_V_b2_c1) +staticContributions[admsNodeID_e1].dx(admsProbeID_V_c1_c2)<< std::endl;
4410  }
4412 
4413 
4414  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4415  {
4416  Xyce::dout() << " (*f_e1_Equ_c2_Node_Ptr) += " << -staticContributions[admsNodeID_e1].dx(admsProbeID_V_b2_c2) -staticContributions[admsNodeID_e1].dx(admsProbeID_V_c1_c2)<< std::endl;
4417  }
4419 
4420 
4421  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4422  {
4424  }
4426 
4427 
4428  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4429  {
4430  Xyce::dout() << " (*f_c2_Equ_e1_Node_Ptr) += " << -staticContributions[admsNodeID_c2].dx(admsProbeID_V_noi_e1) -staticContributions[admsNodeID_c2].dx(admsProbeID_V_b2_e1)<< std::endl;
4431  }
4433 
4434 
4435  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4436  {
4438  }
4439  (*f_e1_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_e1].dx(admsProbeID_V_dt_GND);
4440 
4441 
4442  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4443  {
4444  Xyce::dout() << " (*f_e1_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_e1].dx(admsProbeID_V_dt_GND)<< std::endl;
4445  }
4447 
4448 
4449  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4450  {
4452  }
4454 
4455 
4456  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4457  {
4458  Xyce::dout() << " (*f_b1_Equ_e1_Node_Ptr) += " << -staticContributions[admsNodeID_b1].dx(admsProbeID_V_b2_e1) -staticContributions[admsNodeID_b1].dx(admsProbeID_V_b1_e1)<< std::endl;
4459  }
4460  (*f_e1_Equ_b1_Node_Ptr) += +staticContributions[admsNodeID_e1].dx(admsProbeID_V_b1_e1);
4461 
4462 
4463  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4464  {
4465  Xyce::dout() << " (*f_e1_Equ_b1_Node_Ptr) += " << +staticContributions[admsNodeID_e1].dx(admsProbeID_V_b1_e1)<< std::endl;
4466  }
4467  (*f_b1_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_b1].dx(admsProbeID_V_dt_GND);
4468 
4469 
4470  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4471  {
4472  Xyce::dout() << " (*f_b1_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_b1].dx(admsProbeID_V_dt_GND)<< std::endl;
4473  }
4475 
4476 
4477  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4478  {
4480  }
4482 
4483 
4484  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4485  {
4486  Xyce::dout() << " (*f_b2_Equ_e1_Node_Ptr) += " << -staticContributions[admsNodeID_b2].dx(admsProbeID_V_noi_e1) -staticContributions[admsNodeID_b2].dx(admsProbeID_V_b2_e1)<< std::endl;
4487  }
4488  (*f_b2_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_b2].dx(admsProbeID_V_dt_GND);
4489 
4490 
4491  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4492  {
4493  Xyce::dout() << " (*f_b2_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_b2].dx(admsProbeID_V_dt_GND)<< std::endl;
4494  }
4496 
4497 
4498  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4499  {
4501  }
4503 
4504 
4505  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4506  {
4507  Xyce::dout() << " (*f_b2_Equ_c2_Node_Ptr) += " << -staticContributions[admsNodeID_b2].dx(admsProbeID_V_b2_c2) -staticContributions[admsNodeID_b2].dx(admsProbeID_V_c1_c2)<< std::endl;
4508  }
4509  (*f_b1_Equ_s_Node_Ptr) += +staticContributions[admsNodeID_b1].dx(admsProbeID_V_s_c1);
4510 
4511 
4512  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4513  {
4514  Xyce::dout() << " (*f_b1_Equ_s_Node_Ptr) += " << +staticContributions[admsNodeID_b1].dx(admsProbeID_V_s_c1)<< std::endl;
4515  }
4517 
4518 
4519  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4520  {
4522  }
4523  (*f_s_Equ_s_Node_Ptr) += +staticContributions[admsNodeID_s].dx(admsProbeID_V_s_c1);
4524 
4525 
4526  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4527  {
4528  Xyce::dout() << " (*f_s_Equ_s_Node_Ptr) += " << +staticContributions[admsNodeID_s].dx(admsProbeID_V_s_c1)<< std::endl;
4529  }
4531 
4532 
4533  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4534  {
4536  }
4538 
4539 
4540  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4541  {
4542  Xyce::dout() << " (*f_b1_Equ_c4_Node_Ptr) += " << -staticContributions[admsNodeID_b1].dx(admsProbeID_V_c3_c4) +staticContributions[admsNodeID_b1].dx(admsProbeID_V_c4_c1)<< std::endl;
4543  }
4545 
4546 
4547  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4548  {
4549  Xyce::dout() << " (*f_s_Equ_c4_Node_Ptr) += " << -staticContributions[admsNodeID_s].dx(admsProbeID_V_c3_c4) +staticContributions[admsNodeID_s].dx(admsProbeID_V_c4_c1)<< std::endl;
4550  }
4552 
4553 
4554  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4555  {
4556  Xyce::dout() << " (*f_b1_Equ_c2_Node_Ptr) += " << -staticContributions[admsNodeID_b1].dx(admsProbeID_V_b2_c2) -staticContributions[admsNodeID_b1].dx(admsProbeID_V_c1_c2)<< std::endl;
4557  }
4559 
4560 
4561  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4562  {
4563  Xyce::dout() << " (*f_s_Equ_c2_Node_Ptr) += " << -staticContributions[admsNodeID_s].dx(admsProbeID_V_b2_c2) -staticContributions[admsNodeID_s].dx(admsProbeID_V_c1_c2)<< std::endl;
4564  }
4566 
4567 
4568  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4569  {
4571  }
4573 
4574 
4575  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4576  {
4578  }
4580 
4581 
4582  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4583  {
4584  Xyce::dout() << " (*f_s_Equ_b1_Node_Ptr) += " << -staticContributions[admsNodeID_s].dx(admsProbeID_V_b_b1) +staticContributions[admsNodeID_s].dx(admsProbeID_V_b1_b2)<< std::endl;
4585  }
4586  (*f_s_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_s].dx(admsProbeID_V_dt_GND);
4587 
4588 
4589  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4590  {
4591  Xyce::dout() << " (*f_s_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_s].dx(admsProbeID_V_dt_GND)<< std::endl;
4592  }
4593  (*f_b_Equ_s_Node_Ptr) += +staticContributions[admsNodeID_b].dx(admsProbeID_V_s_c1);
4594 
4595 
4596  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4597  {
4598  Xyce::dout() << " (*f_b_Equ_s_Node_Ptr) += " << +staticContributions[admsNodeID_b].dx(admsProbeID_V_s_c1)<< std::endl;
4599  }
4601 
4602 
4603  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4604  {
4606  }
4608 
4609 
4610  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4611  {
4612  Xyce::dout() << " (*f_b_Equ_c2_Node_Ptr) += " << -staticContributions[admsNodeID_b].dx(admsProbeID_V_b2_c2) -staticContributions[admsNodeID_b].dx(admsProbeID_V_c1_c2)<< std::endl;
4613  }
4615 
4616 
4617  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4618  {
4620  }
4621  (*f_b_Equ_e1_Node_Ptr) += -staticContributions[admsNodeID_b].dx(admsProbeID_V_b2_e1);
4622 
4623 
4624  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4625  {
4626  Xyce::dout() << " (*f_b_Equ_e1_Node_Ptr) += " << -staticContributions[admsNodeID_b].dx(admsProbeID_V_b2_e1)<< std::endl;
4627  }
4628  (*f_s_Equ_e1_Node_Ptr) += -staticContributions[admsNodeID_s].dx(admsProbeID_V_b2_e1);
4629 
4630 
4631  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4632  {
4633  Xyce::dout() << " (*f_s_Equ_e1_Node_Ptr) += " << -staticContributions[admsNodeID_s].dx(admsProbeID_V_b2_e1)<< std::endl;
4634  }
4636 
4637 
4638  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4639  {
4640  Xyce::dout() << " (*f_b_Equ_c3_Node_Ptr) += " << +staticContributions[admsNodeID_b].dx(admsProbeID_V_c3_c1) +staticContributions[admsNodeID_b].dx(admsProbeID_V_c3_c4)<< std::endl;
4641  }
4643 
4644 
4645  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4646  {
4647  Xyce::dout() << " (*f_b_Equ_c4_Node_Ptr) += " << +staticContributions[admsNodeID_b].dx(admsProbeID_V_c4_c1) -staticContributions[admsNodeID_b].dx(admsProbeID_V_c3_c4)<< std::endl;
4648  }
4650 
4651 
4652  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4653  {
4654  Xyce::dout() << " (*f_s_Equ_c3_Node_Ptr) += " << +staticContributions[admsNodeID_s].dx(admsProbeID_V_c3_c1) +staticContributions[admsNodeID_s].dx(admsProbeID_V_c3_c4)<< std::endl;
4655  }
4657 
4658 
4659  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4660  {
4661  Xyce::dout() << " (*f_b_Equ_b1_Node_Ptr) += " << -staticContributions[admsNodeID_b].dx(admsProbeID_V_b_b1) +staticContributions[admsNodeID_b].dx(admsProbeID_V_b1_b2)<< std::endl;
4662  }
4664 
4665 
4666  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4667  {
4668  Xyce::dout() << " (*f_b_Equ_b_Node_Ptr) += " << +staticContributions[admsNodeID_b].dx(admsProbeID_V_b_c) +staticContributions[admsNodeID_b].dx(admsProbeID_V_b_b1)<< std::endl;
4669  }
4671 
4672 
4673  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4674  {
4675  Xyce::dout() << " (*f_s_Equ_b_Node_Ptr) += " << +staticContributions[admsNodeID_s].dx(admsProbeID_V_b_c) +staticContributions[admsNodeID_s].dx(admsProbeID_V_b_b1)<< std::endl;
4676  }
4677  (*f_b_Equ_c_Node_Ptr) += -staticContributions[admsNodeID_b].dx(admsProbeID_V_b_c);
4678 
4679 
4680  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4681  {
4682  Xyce::dout() << " (*f_b_Equ_c_Node_Ptr) += " << -staticContributions[admsNodeID_b].dx(admsProbeID_V_b_c)<< std::endl;
4683  }
4684  (*f_s_Equ_c_Node_Ptr) += -staticContributions[admsNodeID_s].dx(admsProbeID_V_b_c);
4685 
4686 
4687  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4688  {
4689  Xyce::dout() << " (*f_s_Equ_c_Node_Ptr) += " << -staticContributions[admsNodeID_s].dx(admsProbeID_V_b_c)<< std::endl;
4690  }
4691  (*f_b_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_b].dx(admsProbeID_V_dt_GND);
4692 
4693 
4694  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4695  {
4696  Xyce::dout() << " (*f_b_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_b].dx(admsProbeID_V_dt_GND)<< std::endl;
4697  }
4698  (*f_c1_Equ_s_Node_Ptr) += +staticContributions[admsNodeID_c1].dx(admsProbeID_V_s_c1);
4699 
4700 
4701  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4702  {
4703  Xyce::dout() << " (*f_c1_Equ_s_Node_Ptr) += " << +staticContributions[admsNodeID_c1].dx(admsProbeID_V_s_c1)<< std::endl;
4704  }
4706 
4707 
4708  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4709  {
4710  Xyce::dout() << " (*f_b1_Equ_c3_Node_Ptr) += " << +staticContributions[admsNodeID_b1].dx(admsProbeID_V_c3_c1) +staticContributions[admsNodeID_b1].dx(admsProbeID_V_c3_c4)<< std::endl;
4711  }
4713 
4714 
4715  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4716  {
4717  Xyce::dout() << " (*f_b2_Equ_c3_Node_Ptr) += " << +staticContributions[admsNodeID_b2].dx(admsProbeID_V_c3_c1) +staticContributions[admsNodeID_b2].dx(admsProbeID_V_c3_c4)<< std::endl;
4718  }
4720 
4721 
4722  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4723  {
4724  Xyce::dout() << " (*f_b2_Equ_c4_Node_Ptr) += " << +staticContributions[admsNodeID_b2].dx(admsProbeID_V_c4_c1) -staticContributions[admsNodeID_b2].dx(admsProbeID_V_c3_c4)<< std::endl;
4725  }
4727 
4728 
4729  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4730  {
4731  Xyce::dout() << " (*f_b1_Equ_b_Node_Ptr) += " << +staticContributions[admsNodeID_b1].dx(admsProbeID_V_b_c) +staticContributions[admsNodeID_b1].dx(admsProbeID_V_b_b1)<< std::endl;
4732  }
4734 
4735 
4736  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4737  {
4738  Xyce::dout() << " (*f_b2_Equ_b_Node_Ptr) += " << +staticContributions[admsNodeID_b2].dx(admsProbeID_V_b_c) +staticContributions[admsNodeID_b2].dx(admsProbeID_V_b_b1)<< std::endl;
4739  }
4741 
4742 
4743  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4744  {
4745  Xyce::dout() << " (*f_b2_Equ_b1_Node_Ptr) += " << +staticContributions[admsNodeID_b2].dx(admsProbeID_V_b1_b2) -staticContributions[admsNodeID_b2].dx(admsProbeID_V_b_b1)<< std::endl;
4746  }
4747  (*f_b1_Equ_c_Node_Ptr) += -staticContributions[admsNodeID_b1].dx(admsProbeID_V_b_c);
4748 
4749 
4750  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4751  {
4752  Xyce::dout() << " (*f_b1_Equ_c_Node_Ptr) += " << -staticContributions[admsNodeID_b1].dx(admsProbeID_V_b_c)<< std::endl;
4753  }
4754  (*f_b2_Equ_c_Node_Ptr) += -staticContributions[admsNodeID_b2].dx(admsProbeID_V_b_c);
4755 
4756 
4757  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4758  {
4759  Xyce::dout() << " (*f_b2_Equ_c_Node_Ptr) += " << -staticContributions[admsNodeID_b2].dx(admsProbeID_V_b_c)<< std::endl;
4760  }
4762 
4763 
4764  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4765  {
4766  Xyce::dout() << " (*f_c2_Equ_c3_Node_Ptr) += " << +staticContributions[admsNodeID_c2].dx(admsProbeID_V_c3_c1) +staticContributions[admsNodeID_c2].dx(admsProbeID_V_c3_c4)<< std::endl;
4767  }
4769 
4770 
4771  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4772  {
4773  Xyce::dout() << " (*f_c2_Equ_c4_Node_Ptr) += " << +staticContributions[admsNodeID_c2].dx(admsProbeID_V_c4_c1) -staticContributions[admsNodeID_c2].dx(admsProbeID_V_c3_c4)<< std::endl;
4774  }
4776 
4777 
4778  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4779  {
4780  Xyce::dout() << " (*f_c2_Equ_b1_Node_Ptr) += " << -staticContributions[admsNodeID_c2].dx(admsProbeID_V_b_b1) +staticContributions[admsNodeID_c2].dx(admsProbeID_V_b1_b2)<< std::endl;
4781  }
4783 
4784 
4785  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4786  {
4787  Xyce::dout() << " (*f_c2_Equ_b_Node_Ptr) += " << +staticContributions[admsNodeID_c2].dx(admsProbeID_V_b_c) +staticContributions[admsNodeID_c2].dx(admsProbeID_V_b_b1)<< std::endl;
4788  }
4789  (*f_c2_Equ_c_Node_Ptr) += -staticContributions[admsNodeID_c2].dx(admsProbeID_V_b_c);
4790 
4791 
4792  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4793  {
4794  Xyce::dout() << " (*f_c2_Equ_c_Node_Ptr) += " << -staticContributions[admsNodeID_c2].dx(admsProbeID_V_b_c)<< std::endl;
4795  }
4796  (*f_e_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_e].dx(admsProbeID_V_dt_GND);
4797 
4798 
4799  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4800  {
4801  Xyce::dout() << " (*f_e_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_e].dx(admsProbeID_V_dt_GND)<< std::endl;
4802  }
4803  (*f_e_Equ_e_Node_Ptr) += +staticContributions[admsNodeID_e].dx(admsProbeID_V_e_e1);
4804 
4805 
4806  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4807  {
4808  Xyce::dout() << " (*f_e_Equ_e_Node_Ptr) += " << +staticContributions[admsNodeID_e].dx(admsProbeID_V_e_e1)<< std::endl;
4809  }
4810  (*f_e_Equ_e1_Node_Ptr) += -staticContributions[admsNodeID_e].dx(admsProbeID_V_e_e1);
4811 
4812 
4813  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4814  {
4815  Xyce::dout() << " (*f_e_Equ_e1_Node_Ptr) += " << -staticContributions[admsNodeID_e].dx(admsProbeID_V_e_e1)<< std::endl;
4816  }
4817  (*f_e1_Equ_e_Node_Ptr) += +staticContributions[admsNodeID_e1].dx(admsProbeID_V_e_e1);
4818 
4819 
4820  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4821  {
4822  Xyce::dout() << " (*f_e1_Equ_e_Node_Ptr) += " << +staticContributions[admsNodeID_e1].dx(admsProbeID_V_e_e1)<< std::endl;
4823  }
4824  (*f_dt_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_dt].dx(admsProbeID_V_dt_GND);
4825 
4826 
4827  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4828  {
4829  Xyce::dout() << " (*f_dt_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_dt].dx(admsProbeID_V_dt_GND)<< std::endl;
4830  }
4831  (*f_dt_Equ_s_Node_Ptr) += +staticContributions[admsNodeID_dt].dx(admsProbeID_V_s_c1);
4832 
4833 
4834  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4835  {
4836  Xyce::dout() << " (*f_dt_Equ_s_Node_Ptr) += " << +staticContributions[admsNodeID_dt].dx(admsProbeID_V_s_c1)<< std::endl;
4837  }
4839 
4840 
4841  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4842  {
4844  }
4846 
4847 
4848  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4849  {
4851  }
4853 
4854 
4855  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4856  {
4858  }
4859  (*f_dt_Equ_e_Node_Ptr) += +staticContributions[admsNodeID_dt].dx(admsProbeID_V_e_e1);
4860 
4861 
4862  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4863  {
4864  Xyce::dout() << " (*f_dt_Equ_e_Node_Ptr) += " << +staticContributions[admsNodeID_dt].dx(admsProbeID_V_e_e1)<< std::endl;
4865  }
4867 
4868 
4869  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4870  {
4871  Xyce::dout() << " (*f_dt_Equ_c3_Node_Ptr) += " << +staticContributions[admsNodeID_dt].dx(admsProbeID_V_c3_c1) +staticContributions[admsNodeID_dt].dx(admsProbeID_V_c3_c4)<< std::endl;
4872  }
4874 
4875 
4876  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4877  {
4878  Xyce::dout() << " (*f_dt_Equ_c4_Node_Ptr) += " << +staticContributions[admsNodeID_dt].dx(admsProbeID_V_c4_c1) -staticContributions[admsNodeID_dt].dx(admsProbeID_V_c3_c4)<< std::endl;
4879  }
4881 
4882 
4883  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4884  {
4886  }
4888 
4889 
4890  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4891  {
4892  Xyce::dout() << " (*f_dt_Equ_b_Node_Ptr) += " << +staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_c) +staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_b1)<< std::endl;
4893  }
4894  (*f_dt_Equ_c_Node_Ptr) += -staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_c);
4895 
4896 
4897  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4898  {
4899  Xyce::dout() << " (*f_dt_Equ_c_Node_Ptr) += " << -staticContributions[admsNodeID_dt].dx(admsProbeID_V_b_c)<< std::endl;
4900  }
4902 
4903 
4904  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4905  {
4906  Xyce::dout() << " (*f_dt_Equ_c2_Node_Ptr) += " << -staticContributions[admsNodeID_dt].dx(admsProbeID_V_b2_c2) -staticContributions[admsNodeID_dt].dx(admsProbeID_V_c1_c2)<< std::endl;
4907  }
4908  (*f_noi_Equ_noi_Node_Ptr) += +staticContributions[admsNodeID_noi].dx(admsProbeID_V_noi_e1);
4909 
4910 
4911  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4912  {
4913  Xyce::dout() << " (*f_noi_Equ_noi_Node_Ptr) += " << +staticContributions[admsNodeID_noi].dx(admsProbeID_V_noi_e1)<< std::endl;
4914  }
4916 
4917 
4918  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4919  {
4920  Xyce::dout() << " (*f_noi_Equ_e1_Node_Ptr) += " << -staticContributions[admsNodeID_noi].dx(admsProbeID_V_b2_e1) -staticContributions[admsNodeID_noi].dx(admsProbeID_V_noi_e1)<< std::endl;
4921  }
4922  (*f_e1_Equ_noi_Node_Ptr) += +staticContributions[admsNodeID_e1].dx(admsProbeID_V_noi_e1);
4923 
4924 
4925  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4926  {
4927  Xyce::dout() << " (*f_e1_Equ_noi_Node_Ptr) += " << +staticContributions[admsNodeID_e1].dx(admsProbeID_V_noi_e1)<< std::endl;
4928  }
4929  (*f_b2_Equ_noi_Node_Ptr) += +staticContributions[admsNodeID_b2].dx(admsProbeID_V_noi_e1);
4930 
4931 
4932  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4933  {
4934  Xyce::dout() << " (*f_b2_Equ_noi_Node_Ptr) += " << +staticContributions[admsNodeID_b2].dx(admsProbeID_V_noi_e1)<< std::endl;
4935  }
4936  (*f_c2_Equ_noi_Node_Ptr) += +staticContributions[admsNodeID_c2].dx(admsProbeID_V_noi_e1);
4937 
4938 
4939  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4940  {
4941  Xyce::dout() << " (*f_c2_Equ_noi_Node_Ptr) += " << +staticContributions[admsNodeID_c2].dx(admsProbeID_V_noi_e1)<< std::endl;
4942  }
4944 
4945 
4946  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4947  {
4948  Xyce::dout() << " (*f_c_Equ_b_Node_Ptr) += " << +staticContributions[admsNodeID_c].dx(admsProbeID_V_b_c) +staticContributions[admsNodeID_c].dx(admsProbeID_V_b_b1)<< std::endl;
4949  }
4950  (*f_c_Equ_c_Node_Ptr) += -staticContributions[admsNodeID_c].dx(admsProbeID_V_b_c);
4951 
4952 
4953  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4954  {
4955  Xyce::dout() << " (*f_c_Equ_c_Node_Ptr) += " << -staticContributions[admsNodeID_c].dx(admsProbeID_V_b_c)<< std::endl;
4956  }
4957  (*f_c3_Equ_s_Node_Ptr) += +staticContributions[admsNodeID_c3].dx(admsProbeID_V_s_c1);
4958 
4959 
4960  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4961  {
4962  Xyce::dout() << " (*f_c3_Equ_s_Node_Ptr) += " << +staticContributions[admsNodeID_c3].dx(admsProbeID_V_s_c1)<< std::endl;
4963  }
4965 
4966 
4967  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4968  {
4970  }
4972 
4973 
4974  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4975  {
4976  Xyce::dout() << " (*f_c3_Equ_c2_Node_Ptr) += " << -staticContributions[admsNodeID_c3].dx(admsProbeID_V_b2_c2) -staticContributions[admsNodeID_c3].dx(admsProbeID_V_c1_c2)<< std::endl;
4977  }
4979 
4980 
4981  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4982  {
4984  }
4985  (*f_c3_Equ_e1_Node_Ptr) += -staticContributions[admsNodeID_c3].dx(admsProbeID_V_b2_e1);
4986 
4987 
4988  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4989  {
4990  Xyce::dout() << " (*f_c3_Equ_e1_Node_Ptr) += " << -staticContributions[admsNodeID_c3].dx(admsProbeID_V_b2_e1)<< std::endl;
4991  }
4993 
4994 
4995  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
4996  {
4997  Xyce::dout() << " (*f_c3_Equ_c3_Node_Ptr) += " << +staticContributions[admsNodeID_c3].dx(admsProbeID_V_c3_c1) +staticContributions[admsNodeID_c3].dx(admsProbeID_V_c3_c4)<< std::endl;
4998  }
5000 
5001 
5002  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5003  {
5004  Xyce::dout() << " (*f_c3_Equ_c4_Node_Ptr) += " << +staticContributions[admsNodeID_c3].dx(admsProbeID_V_c4_c1) -staticContributions[admsNodeID_c3].dx(admsProbeID_V_c3_c4)<< std::endl;
5005  }
5007 
5008 
5009  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5010  {
5011  Xyce::dout() << " (*f_c3_Equ_b1_Node_Ptr) += " << -staticContributions[admsNodeID_c3].dx(admsProbeID_V_b_b1) +staticContributions[admsNodeID_c3].dx(admsProbeID_V_b1_b2)<< std::endl;
5012  }
5014 
5015 
5016  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5017  {
5018  Xyce::dout() << " (*f_c3_Equ_b_Node_Ptr) += " << +staticContributions[admsNodeID_c3].dx(admsProbeID_V_b_c) +staticContributions[admsNodeID_c3].dx(admsProbeID_V_b_b1)<< std::endl;
5019  }
5020  (*f_c3_Equ_c_Node_Ptr) += -staticContributions[admsNodeID_c3].dx(admsProbeID_V_b_c);
5021 
5022 
5023  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5024  {
5025  Xyce::dout() << " (*f_c3_Equ_c_Node_Ptr) += " << -staticContributions[admsNodeID_c3].dx(admsProbeID_V_b_c)<< std::endl;
5026  }
5027  (*f_c3_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_c3].dx(admsProbeID_V_dt_GND);
5028 
5029 
5030  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5031  {
5032  Xyce::dout() << " (*f_c3_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_c3].dx(admsProbeID_V_dt_GND)<< std::endl;
5033  }
5034  (*f_c_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_c].dx(admsProbeID_V_dt_GND);
5035 
5036 
5037  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5038  {
5039  Xyce::dout() << " (*f_c_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_c].dx(admsProbeID_V_dt_GND)<< std::endl;
5040  }
5042 
5043 
5044  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5045  {
5046  Xyce::dout() << " (*f_c_Equ_c3_Node_Ptr) += " << +staticContributions[admsNodeID_c].dx(admsProbeID_V_c3_c1) +staticContributions[admsNodeID_c].dx(admsProbeID_V_c3_c4)<< std::endl;
5047  }
5049 
5050 
5051  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5052  {
5053  Xyce::dout() << " (*f_c_Equ_c4_Node_Ptr) += " << +staticContributions[admsNodeID_c].dx(admsProbeID_V_c4_c1) -staticContributions[admsNodeID_c].dx(admsProbeID_V_c3_c4)<< std::endl;
5054  }
5056 
5057 
5058  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5059  {
5061  }
5063 
5064 
5065  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5066  {
5067  Xyce::dout() << " (*f_c_Equ_c2_Node_Ptr) += " << -staticContributions[admsNodeID_c].dx(admsProbeID_V_b2_c2) -staticContributions[admsNodeID_c].dx(admsProbeID_V_c1_c2)<< std::endl;
5068  }
5070 
5071 
5072  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5073  {
5074  Xyce::dout() << " (*f_c_Equ_b2_Node_Ptr) += " << -staticContributions[admsNodeID_c].dx(admsProbeID_V_b1_b2) +staticContributions[admsNodeID_c].dx(admsProbeID_V_b2_c2)<< std::endl;
5075  }
5077 
5078 
5079  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5080  {
5081  Xyce::dout() << " (*f_c_Equ_b1_Node_Ptr) += " << -staticContributions[admsNodeID_c].dx(admsProbeID_V_b_b1) +staticContributions[admsNodeID_c].dx(admsProbeID_V_b1_b2)<< std::endl;
5082  }
5083  (*f_c4_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_c4].dx(admsProbeID_V_dt_GND);
5084 
5085 
5086  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5087  {
5088  Xyce::dout() << " (*f_c4_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_c4].dx(admsProbeID_V_dt_GND)<< std::endl;
5089  }
5091 
5092 
5093  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5094  {
5095  Xyce::dout() << " (*f_c4_Equ_c4_Node_Ptr) += " << -staticContributions[admsNodeID_c4].dx(admsProbeID_V_c3_c4) +staticContributions[admsNodeID_c4].dx(admsProbeID_V_c4_c1)<< std::endl;
5096  }
5098 
5099 
5100  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5101  {
5103  }
5105 
5106 
5107  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5108  {
5109  Xyce::dout() << " (*f_c1_Equ_c4_Node_Ptr) += " << -staticContributions[admsNodeID_c1].dx(admsProbeID_V_c3_c4) +staticContributions[admsNodeID_c1].dx(admsProbeID_V_c4_c1)<< std::endl;
5110  }
5112 
5113 
5114  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5115  {
5117  }
5118  (*f_c4_Equ_e1_Node_Ptr) += -staticContributions[admsNodeID_c4].dx(admsProbeID_V_b2_e1);
5119 
5120 
5121  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5122  {
5123  Xyce::dout() << " (*f_c4_Equ_e1_Node_Ptr) += " << -staticContributions[admsNodeID_c4].dx(admsProbeID_V_b2_e1)<< std::endl;
5124  }
5126 
5127 
5128  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5129  {
5130  Xyce::dout() << " (*f_c4_Equ_c2_Node_Ptr) += " << -staticContributions[admsNodeID_c4].dx(admsProbeID_V_b2_c2) -staticContributions[admsNodeID_c4].dx(admsProbeID_V_c1_c2)<< std::endl;
5131  }
5133 
5134 
5135  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5136  {
5137  Xyce::dout() << " (*f_c4_Equ_b1_Node_Ptr) += " << -staticContributions[admsNodeID_c4].dx(admsProbeID_V_b_b1) +staticContributions[admsNodeID_c4].dx(admsProbeID_V_b1_b2)<< std::endl;
5138  }
5140 
5141 
5142  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5143  {
5144  Xyce::dout() << " (*f_c4_Equ_c3_Node_Ptr) += " << +staticContributions[admsNodeID_c4].dx(admsProbeID_V_c3_c1) +staticContributions[admsNodeID_c4].dx(admsProbeID_V_c3_c4)<< std::endl;
5145  }
5146  (*f_c1_Equ_e1_Node_Ptr) += -staticContributions[admsNodeID_c1].dx(admsProbeID_V_b2_e1);
5147 
5148 
5149  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5150  {
5151  Xyce::dout() << " (*f_c1_Equ_e1_Node_Ptr) += " << -staticContributions[admsNodeID_c1].dx(admsProbeID_V_b2_e1)<< std::endl;
5152  }
5154 
5155 
5156  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5157  {
5158  Xyce::dout() << " (*f_c1_Equ_b1_Node_Ptr) += " << -staticContributions[admsNodeID_c1].dx(admsProbeID_V_b_b1) +staticContributions[admsNodeID_c1].dx(admsProbeID_V_b1_b2)<< std::endl;
5159  }
5161 
5162 
5163  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5164  {
5165  Xyce::dout() << " (*f_c1_Equ_c3_Node_Ptr) += " << +staticContributions[admsNodeID_c1].dx(admsProbeID_V_c3_c1) +staticContributions[admsNodeID_c1].dx(admsProbeID_V_c3_c4)<< std::endl;
5166  }
5167  (*f_c4_Equ_s_Node_Ptr) += +staticContributions[admsNodeID_c4].dx(admsProbeID_V_s_c1);
5168 
5169 
5170  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5171  {
5172  Xyce::dout() << " (*f_c4_Equ_s_Node_Ptr) += " << +staticContributions[admsNodeID_c4].dx(admsProbeID_V_s_c1)<< std::endl;
5173  }
5175 
5176 
5177  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5178  {
5179  Xyce::dout() << " (*f_c4_Equ_b_Node_Ptr) += " << +staticContributions[admsNodeID_c4].dx(admsProbeID_V_b_c) +staticContributions[admsNodeID_c4].dx(admsProbeID_V_b_b1)<< std::endl;
5180  }
5181  (*f_c4_Equ_c_Node_Ptr) += -staticContributions[admsNodeID_c4].dx(admsProbeID_V_b_c);
5182 
5183 
5184  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5185  {
5186  Xyce::dout() << " (*f_c4_Equ_c_Node_Ptr) += " << -staticContributions[admsNodeID_c4].dx(admsProbeID_V_b_c)<< std::endl;
5187  }
5189 
5190 
5191  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5192  {
5193  Xyce::dout() << " (*f_c1_Equ_b_Node_Ptr) += " << +staticContributions[admsNodeID_c1].dx(admsProbeID_V_b_c) +staticContributions[admsNodeID_c1].dx(admsProbeID_V_b_b1)<< std::endl;
5194  }
5195  (*f_c1_Equ_c_Node_Ptr) += -staticContributions[admsNodeID_c1].dx(admsProbeID_V_b_c);
5196 
5197 
5198  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5199  {
5200  Xyce::dout() << " (*f_c1_Equ_c_Node_Ptr) += " << -staticContributions[admsNodeID_c1].dx(admsProbeID_V_b_c)<< std::endl;
5201  }
5203 
5204 
5205  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5206  {
5208  }
5210 
5211 
5212  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5213  {
5214  Xyce::dout() << " (*f_noi_Equ_c1_Node_Ptr) += " << -staticContributions[admsNodeID_noi].dx(admsProbeID_V_b2_c1) +staticContributions[admsNodeID_noi].dx(admsProbeID_V_c1_c2)<< std::endl;
5215  }
5217 
5218 
5219  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5220  {
5221  Xyce::dout() << " (*f_noi_Equ_c2_Node_Ptr) += " << -staticContributions[admsNodeID_noi].dx(admsProbeID_V_b2_c2) -staticContributions[admsNodeID_noi].dx(admsProbeID_V_c1_c2)<< std::endl;
5222  }
5223  (*f_noi_Equ_dt_Node_Ptr) += +staticContributions[admsNodeID_noi].dx(admsProbeID_V_dt_GND);
5224 
5225 
5226  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5227  {
5228  Xyce::dout() << " (*f_noi_Equ_dt_Node_Ptr) += " << +staticContributions[admsNodeID_noi].dx(admsProbeID_V_dt_GND)<< std::endl;
5229  }
5230 
5231 
5232  return bsuccess;
5233 }
5234 
5235 
5236 //-----------------------------------------------------------------------------
5237 // Function : Instance::loadDAEdQdx
5238 // Purpose :
5239 // Special Notes : Load the dQdx ("dynamic jacobian") matrix
5240 // Scope : public
5241 // Creator : admsXml
5242 // Creation Date :
5243 //-----------------------------------------------------------------------------
5245 {
5246  bool bsuccess = true;
5247  Linear::Matrix * dQdxMatPtr = extData.dQdxMatrixPtr;
5248 
5249  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5250  {
5251  Xyce::dout() << subsection_divider << std::endl;
5252  Xyce::dout() << "ADMSbjt504tva::Instance::loadDAEdQdx (" << getName() << "):" << std::endl;
5253  }
5255 
5256 
5257  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5258  {
5260  }
5262 
5263 
5264  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5265  {
5266  Xyce::dout() << " (*q_c1_Equ_c2_Node_Ptr) += " << -dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b2_c2) -dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_c1_c2)<< std::endl;
5267  }
5269 
5270 
5271  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5272  {
5274  }
5276 
5277 
5278  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5279  {
5280  Xyce::dout() << " (*q_c2_Equ_c2_Node_Ptr) += " << -dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b2_c2) -dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_c1_c2)<< 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  {
5295  }
5296  (*q_c1_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_dt_GND);
5297 
5298 
5299  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5300  {
5301  Xyce::dout() << " (*q_c1_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_dt_GND)<< std::endl;
5302  }
5303  (*q_c2_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_dt_GND);
5304 
5305 
5306  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5307  {
5308  Xyce::dout() << " (*q_c2_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_dt_GND)<< std::endl;
5309  }
5311 
5312 
5313  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5314  {
5316  }
5318 
5319 
5320  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5321  {
5322  Xyce::dout() << " (*q_e1_Equ_c2_Node_Ptr) += " << -dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b2_c2) -dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_c1_c2)<< std::endl;
5323  }
5325 
5326 
5327  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5328  {
5330  }
5331  (*q_c2_Equ_e1_Node_Ptr) += -dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b2_e1);
5332 
5333 
5334  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5335  {
5336  Xyce::dout() << " (*q_c2_Equ_e1_Node_Ptr) += " << -dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b2_e1)<< std::endl;
5337  }
5339 
5340 
5341  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5342  {
5343  Xyce::dout() << " (*q_e1_Equ_e1_Node_Ptr) += " << -dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b1_e1) -dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b2_e1)<< std::endl;
5344  }
5345  (*q_e1_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_dt_GND);
5346 
5347 
5348  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5349  {
5350  Xyce::dout() << " (*q_e1_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_dt_GND)<< std::endl;
5351  }
5353 
5354 
5355  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5356  {
5358  }
5360 
5361 
5362  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5363  {
5364  Xyce::dout() << " (*q_b1_Equ_e1_Node_Ptr) += " << -dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b2_e1) -dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b1_e1)<< std::endl;
5365  }
5367 
5368 
5369  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5370  {
5372  }
5373  (*q_b1_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_dt_GND);
5374 
5375 
5376  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5377  {
5378  Xyce::dout() << " (*q_b1_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_dt_GND)<< std::endl;
5379  }
5381 
5382 
5383  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5384  {
5386  }
5387  (*q_b2_Equ_e1_Node_Ptr) += -dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b2_e1);
5388 
5389 
5390  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5391  {
5392  Xyce::dout() << " (*q_b2_Equ_e1_Node_Ptr) += " << -dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b2_e1)<< std::endl;
5393  }
5394  (*q_b2_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_dt_GND);
5395 
5396 
5397  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5398  {
5399  Xyce::dout() << " (*q_b2_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_dt_GND)<< std::endl;
5400  }
5402 
5403 
5404  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5405  {
5407  }
5409 
5410 
5411  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5412  {
5413  Xyce::dout() << " (*q_b2_Equ_c2_Node_Ptr) += " << -dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b2_c2) -dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_c1_c2)<< std::endl;
5414  }
5416 
5417 
5418  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5419  {
5421  }
5422  (*q_s_Equ_s_Node_Ptr) += +dynamicContributions[admsNodeID_s].dx(admsProbeID_V_s_c1);
5423 
5424 
5425  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5426  {
5427  Xyce::dout() << " (*q_s_Equ_s_Node_Ptr) += " << +dynamicContributions[admsNodeID_s].dx(admsProbeID_V_s_c1)<< std::endl;
5428  }
5429  (*q_s_Equ_c1_Node_Ptr) += -dynamicContributions[admsNodeID_s].dx(admsProbeID_V_s_c1);
5430 
5431 
5432  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5433  {
5434  Xyce::dout() << " (*q_s_Equ_c1_Node_Ptr) += " << -dynamicContributions[admsNodeID_s].dx(admsProbeID_V_s_c1)<< std::endl;
5435  }
5437 
5438 
5439  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5440  {
5441  Xyce::dout() << " (*q_b1_Equ_c4_Node_Ptr) += " << +dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_c4_c1) -dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_c3_c4)<< std::endl;
5442  }
5444 
5445 
5446  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5447  {
5448  Xyce::dout() << " (*q_b1_Equ_c2_Node_Ptr) += " << -dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b2_c2) -dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_c1_c2)<< std::endl;
5449  }
5451 
5452 
5453  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5454  {
5456  }
5457  (*q_s_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_s].dx(admsProbeID_V_dt_GND);
5458 
5459 
5460  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5461  {
5462  Xyce::dout() << " (*q_s_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_s].dx(admsProbeID_V_dt_GND)<< std::endl;
5463  }
5464  (*q_b_Equ_s_Node_Ptr) += +dynamicContributions[admsNodeID_b].dx(admsProbeID_V_s_c1);
5465 
5466 
5467  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5468  {
5469  Xyce::dout() << " (*q_b_Equ_s_Node_Ptr) += " << +dynamicContributions[admsNodeID_b].dx(admsProbeID_V_s_c1)<< std::endl;
5470  }
5472 
5473 
5474  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5475  {
5477  }
5479 
5480 
5481  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5482  {
5483  Xyce::dout() << " (*q_b_Equ_c2_Node_Ptr) += " << -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b2_c2) -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c1_c2)<< std::endl;
5484  }
5486 
5487 
5488  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5489  {
5491  }
5492  (*q_b_Equ_e1_Node_Ptr) += -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b2_e1);
5493 
5494 
5495  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5496  {
5497  Xyce::dout() << " (*q_b_Equ_e1_Node_Ptr) += " << -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b2_e1)<< std::endl;
5498  }
5500 
5501 
5502  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5503  {
5504  Xyce::dout() << " (*q_b_Equ_c3_Node_Ptr) += " << +dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c3_c1) +dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c3_c4)<< std::endl;
5505  }
5507 
5508 
5509  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5510  {
5511  Xyce::dout() << " (*q_b_Equ_c4_Node_Ptr) += " << +dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c4_c1) -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c3_c4)<< std::endl;
5512  }
5514 
5515 
5516  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5517  {
5518  Xyce::dout() << " (*q_b_Equ_b1_Node_Ptr) += " << -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_b1) +dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b1_b2)<< std::endl;
5519  }
5521 
5522 
5523  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5524  {
5526  }
5527  (*q_b_Equ_c_Node_Ptr) += -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c);
5528 
5529 
5530  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5531  {
5532  Xyce::dout() << " (*q_b_Equ_c_Node_Ptr) += " << -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c)<< std::endl;
5533  }
5534  (*q_b_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_b].dx(admsProbeID_V_dt_GND);
5535 
5536 
5537  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5538  {
5539  Xyce::dout() << " (*q_b_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_b].dx(admsProbeID_V_dt_GND)<< std::endl;
5540  }
5541  (*q_c1_Equ_s_Node_Ptr) += +dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_s_c1);
5542 
5543 
5544  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5545  {
5546  Xyce::dout() << " (*q_c1_Equ_s_Node_Ptr) += " << +dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_s_c1)<< std::endl;
5547  }
5549 
5550 
5551  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5552  {
5553  Xyce::dout() << " (*q_b1_Equ_c3_Node_Ptr) += " << +dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_c3_c1) +dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_c3_c4)<< std::endl;
5554  }
5556 
5557 
5558  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5559  {
5560  Xyce::dout() << " (*q_b2_Equ_c3_Node_Ptr) += " << +dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_c3_c1) +dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_c3_c4)<< std::endl;
5561  }
5563 
5564 
5565  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5566  {
5567  Xyce::dout() << " (*q_b2_Equ_c4_Node_Ptr) += " << +dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_c4_c1) -dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_c3_c4)<< std::endl;
5568  }
5570 
5571 
5572  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5573  {
5574  Xyce::dout() << " (*q_b1_Equ_b_Node_Ptr) += " << +dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b_c) +dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b_b1)<< std::endl;
5575  }
5577 
5578 
5579  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5580  {
5581  Xyce::dout() << " (*q_b2_Equ_b_Node_Ptr) += " << +dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b_c) +dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b_b1)<< std::endl;
5582  }
5584 
5585 
5586  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5587  {
5588  Xyce::dout() << " (*q_b2_Equ_b1_Node_Ptr) += " << -dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b_b1) +dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b1_b2)<< std::endl;
5589  }
5590  (*q_b1_Equ_c_Node_Ptr) += -dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b_c);
5591 
5592 
5593  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5594  {
5595  Xyce::dout() << " (*q_b1_Equ_c_Node_Ptr) += " << -dynamicContributions[admsNodeID_b1].dx(admsProbeID_V_b_c)<< std::endl;
5596  }
5597  (*q_b2_Equ_c_Node_Ptr) += -dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b_c);
5598 
5599 
5600  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5601  {
5602  Xyce::dout() << " (*q_b2_Equ_c_Node_Ptr) += " << -dynamicContributions[admsNodeID_b2].dx(admsProbeID_V_b_c)<< std::endl;
5603  }
5605 
5606 
5607  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5608  {
5609  Xyce::dout() << " (*q_c2_Equ_c3_Node_Ptr) += " << +dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_c3_c1) +dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_c3_c4)<< std::endl;
5610  }
5612 
5613 
5614  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5615  {
5616  Xyce::dout() << " (*q_c2_Equ_c4_Node_Ptr) += " << +dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_c4_c1) -dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_c3_c4)<< std::endl;
5617  }
5619 
5620 
5621  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5622  {
5623  Xyce::dout() << " (*q_c2_Equ_b1_Node_Ptr) += " << -dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b_b1) +dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b1_b2)<< std::endl;
5624  }
5626 
5627 
5628  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5629  {
5630  Xyce::dout() << " (*q_c2_Equ_b_Node_Ptr) += " << +dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b_c) +dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b_b1)<< std::endl;
5631  }
5632  (*q_c2_Equ_c_Node_Ptr) += -dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b_c);
5633 
5634 
5635  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5636  {
5637  Xyce::dout() << " (*q_c2_Equ_c_Node_Ptr) += " << -dynamicContributions[admsNodeID_c2].dx(admsProbeID_V_b_c)<< std::endl;
5638  }
5639  (*q_e_Equ_e_Node_Ptr) += -dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_e);
5640 
5641 
5642  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5643  {
5644  Xyce::dout() << " (*q_e_Equ_e_Node_Ptr) += " << -dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_e)<< std::endl;
5645  }
5646  (*q_dt_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_dt_GND);
5647 
5648 
5649  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5650  {
5651  Xyce::dout() << " (*q_dt_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_dt].dx(admsProbeID_V_dt_GND)<< std::endl;
5652  }
5654 
5655 
5656  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5657  {
5658  Xyce::dout() << " (*q_e1_Equ_c3_Node_Ptr) += " << +dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_c3_c1) +dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_c3_c4)<< std::endl;
5659  }
5661 
5662 
5663  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5664  {
5665  Xyce::dout() << " (*q_e1_Equ_c4_Node_Ptr) += " << +dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_c4_c1) -dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_c3_c4)<< std::endl;
5666  }
5668 
5669 
5670  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5671  {
5672  Xyce::dout() << " (*q_e1_Equ_b_Node_Ptr) += " << +dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b_c) +dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b_b1)<< std::endl;
5673  }
5674  (*q_e1_Equ_c_Node_Ptr) += -dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b_c);
5675 
5676 
5677  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5678  {
5679  Xyce::dout() << " (*q_e1_Equ_c_Node_Ptr) += " << -dynamicContributions[admsNodeID_e1].dx(admsProbeID_V_b_c)<< std::endl;
5680  }
5681  (*q_b_Equ_e_Node_Ptr) += -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_e);
5682 
5683 
5684  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5685  {
5686  Xyce::dout() << " (*q_b_Equ_e_Node_Ptr) += " << -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_e)<< std::endl;
5687  }
5688  (*q_e_Equ_b_Node_Ptr) += +dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_e);
5689 
5690 
5691  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5692  {
5693  Xyce::dout() << " (*q_e_Equ_b_Node_Ptr) += " << +dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_e)<< std::endl;
5694  }
5695  (*q_c_Equ_b_Node_Ptr) += +dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c);
5696 
5697 
5698  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5699  {
5700  Xyce::dout() << " (*q_c_Equ_b_Node_Ptr) += " << +dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c)<< std::endl;
5701  }
5702  (*q_c_Equ_c_Node_Ptr) += -dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c);
5703 
5704 
5705  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5706  {
5707  Xyce::dout() << " (*q_c_Equ_c_Node_Ptr) += " << -dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c)<< std::endl;
5708  }
5709  (*q_c3_Equ_s_Node_Ptr) += +dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_s_c1);
5710 
5711 
5712  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5713  {
5714  Xyce::dout() << " (*q_c3_Equ_s_Node_Ptr) += " << +dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_s_c1)<< std::endl;
5715  }
5717 
5718 
5719  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5720  {
5722  }
5724 
5725 
5726  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5727  {
5728  Xyce::dout() << " (*q_c3_Equ_c2_Node_Ptr) += " << -dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b2_c2) -dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_c1_c2)<< std::endl;
5729  }
5731 
5732 
5733  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5734  {
5736  }
5737  (*q_c3_Equ_e1_Node_Ptr) += -dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b2_e1);
5738 
5739 
5740  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5741  {
5742  Xyce::dout() << " (*q_c3_Equ_e1_Node_Ptr) += " << -dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b2_e1)<< std::endl;
5743  }
5745 
5746 
5747  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5748  {
5749  Xyce::dout() << " (*q_c3_Equ_c3_Node_Ptr) += " << +dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_c3_c1) +dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_c3_c4)<< std::endl;
5750  }
5752 
5753 
5754  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5755  {
5756  Xyce::dout() << " (*q_c3_Equ_c4_Node_Ptr) += " << +dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_c4_c1) -dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_c3_c4)<< std::endl;
5757  }
5759 
5760 
5761  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5762  {
5763  Xyce::dout() << " (*q_c3_Equ_b1_Node_Ptr) += " << -dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b_b1) +dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b1_b2)<< std::endl;
5764  }
5766 
5767 
5768  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5769  {
5770  Xyce::dout() << " (*q_c3_Equ_b_Node_Ptr) += " << +dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b_c) +dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b_b1)<< std::endl;
5771  }
5772  (*q_c3_Equ_c_Node_Ptr) += -dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b_c);
5773 
5774 
5775  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5776  {
5777  Xyce::dout() << " (*q_c3_Equ_c_Node_Ptr) += " << -dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_b_c)<< std::endl;
5778  }
5779  (*q_c3_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_dt_GND);
5780 
5781 
5782  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5783  {
5784  Xyce::dout() << " (*q_c3_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_c3].dx(admsProbeID_V_dt_GND)<< std::endl;
5785  }
5786  (*q_c4_Equ_dt_Node_Ptr) += +dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_dt_GND);
5787 
5788 
5789  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5790  {
5791  Xyce::dout() << " (*q_c4_Equ_dt_Node_Ptr) += " << +dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_dt_GND)<< std::endl;
5792  }
5794 
5795 
5796  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5797  {
5798  Xyce::dout() << " (*q_c4_Equ_c4_Node_Ptr) += " << -dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_c3_c4) +dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_c4_c1)<< std::endl;
5799  }
5801 
5802 
5803  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5804  {
5806  }
5808 
5809 
5810  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5811  {
5812  Xyce::dout() << " (*q_c1_Equ_c4_Node_Ptr) += " << -dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_c3_c4) +dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_c4_c1)<< std::endl;
5813  }
5815 
5816 
5817  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5818  {
5820  }
5821  (*q_c4_Equ_e1_Node_Ptr) += -dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b2_e1);
5822 
5823 
5824  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5825  {
5826  Xyce::dout() << " (*q_c4_Equ_e1_Node_Ptr) += " << -dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b2_e1)<< std::endl;
5827  }
5829 
5830 
5831  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5832  {
5833  Xyce::dout() << " (*q_c4_Equ_c2_Node_Ptr) += " << -dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b2_c2) -dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_c1_c2)<< std::endl;
5834  }
5836 
5837 
5838  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5839  {
5840  Xyce::dout() << " (*q_c4_Equ_b1_Node_Ptr) += " << -dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b_b1) +dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b1_b2)<< std::endl;
5841  }
5843 
5844 
5845  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5846  {
5847  Xyce::dout() << " (*q_c4_Equ_c3_Node_Ptr) += " << +dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_c3_c1) +dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_c3_c4)<< std::endl;
5848  }
5849  (*q_c1_Equ_e1_Node_Ptr) += -dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b2_e1);
5850 
5851 
5852  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5853  {
5854  Xyce::dout() << " (*q_c1_Equ_e1_Node_Ptr) += " << -dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b2_e1)<< std::endl;
5855  }
5857 
5858 
5859  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5860  {
5861  Xyce::dout() << " (*q_c1_Equ_b1_Node_Ptr) += " << -dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b_b1) +dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b1_b2)<< std::endl;
5862  }
5864 
5865 
5866  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5867  {
5868  Xyce::dout() << " (*q_c1_Equ_c3_Node_Ptr) += " << +dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_c3_c1) +dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_c3_c4)<< std::endl;
5869  }
5870  (*q_c4_Equ_s_Node_Ptr) += +dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_s_c1);
5871 
5872 
5873  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5874  {
5875  Xyce::dout() << " (*q_c4_Equ_s_Node_Ptr) += " << +dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_s_c1)<< std::endl;
5876  }
5878 
5879 
5880  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5881  {
5882  Xyce::dout() << " (*q_c4_Equ_b_Node_Ptr) += " << +dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b_c) +dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b_b1)<< std::endl;
5883  }
5884  (*q_c4_Equ_c_Node_Ptr) += -dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b_c);
5885 
5886 
5887  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5888  {
5889  Xyce::dout() << " (*q_c4_Equ_c_Node_Ptr) += " << -dynamicContributions[admsNodeID_c4].dx(admsProbeID_V_b_c)<< std::endl;
5890  }
5892 
5893 
5894  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5895  {
5896  Xyce::dout() << " (*q_c1_Equ_b_Node_Ptr) += " << +dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b_c) +dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b_b1)<< std::endl;
5897  }
5898  (*q_c1_Equ_c_Node_Ptr) += -dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b_c);
5899 
5900 
5901  if (DEBUG_DEVICE && isActive(Diag::DEVICE_PARAMETERS) && getSolverState().debugTimeFlag)
5902  {
5903  Xyce::dout() << " (*q_c1_Equ_c_Node_Ptr) += " << -dynamicContributions[admsNodeID_c1].dx(admsProbeID_V_b_c)<< std::endl;
5904  }
5905 
5906 
5907  return bsuccess;
5908 }
5909 
5910 //-----------------------------------------------------------------------------
5911 // Function : Instance::updateTemperature
5912 // Purpose : Set temperature and update any parameters that depend on it
5913 // Special Notes : In Xyce ADMS, we'll simply copy the temperature, which is
5914 // in Kelvin, to our "admsTemperature" variable, which needs
5915 // to be in Celsius.
5916 // Scope : public
5917 // Creator : admsXml
5918 // Creation Date :
5919 //-----------------------------------------------------------------------------
5920 bool Instance::updateTemperature(const double & temperatureTemp)
5921 {
5922 
5923  admsTemperature = temperatureTemp;
5924  adms_vt_nom = adms_vt(temperatureTemp);
5925 
5926  return true;
5927 }
5928 
5929 // Class Model
5930 //-----------------------------------------------------------------------------
5931 // Function : Model::processParams
5932 // Purpose :
5933 // Special Notes :
5934 // Scope : public
5935 // Creator : admsXml
5936 // Creation Date :
5937 //-----------------------------------------------------------------------------
5939 {
5940 
5941  // Now we need to check that any parameters are within their ranges as
5942  // specified in the verilog:
5943 
5944  // Parameter LEVEL : [ 504, 505 [
5945  if ( (!((LEVEL >=504 && LEVEL <505 ))) )
5946  {
5947  UserError0(*this) << "ADMSbjt504tva: Parameter LEVEL value " << LEVEL << " out of range [ 504, 505 [";
5948  }
5949 
5950  // Parameter TREF : [ (-273.0), (+inf) [
5951  if ( (!((TREF >=(-273.0)))) )
5952  {
5953  UserError0(*this) << "ADMSbjt504tva: Parameter TREF value " << TREF << " out of range [ (-273.0), (+inf) [";
5954  }
5955 
5956  // Parameter EXMOD : [ 0, 2 ]
5957  if ( (!((EXMOD >=0 && EXMOD <=2 ))) )
5958  {
5959  UserError0(*this) << "ADMSbjt504tva: Parameter EXMOD value " << EXMOD << " out of range [ 0, 2 ]";
5960  }
5961 
5962  // Parameter EXPHI : [ 0, 1 ]
5963  if ( (!((EXPHI >=0 && EXPHI <=1 ))) )
5964  {
5965  UserError0(*this) << "ADMSbjt504tva: Parameter EXPHI value " << EXPHI << " out of range [ 0, 1 ]";
5966  }
5967 
5968  // Parameter EXAVL : [ 0, 1 ]
5969  if ( (!((EXAVL >=0 && EXAVL <=1 ))) )
5970  {
5971  UserError0(*this) << "ADMSbjt504tva: Parameter EXAVL value " << EXAVL << " out of range [ 0, 1 ]";
5972  }
5973 
5974  // Parameter EXSUB : [ 0, 1 ]
5975  if ( (!((EXSUB >=0 && EXSUB <=1 ))) )
5976  {
5977  UserError0(*this) << "ADMSbjt504tva: Parameter EXSUB value " << EXSUB << " out of range [ 0, 1 ]";
5978  }
5979 
5980  // Parameter IS : ] 0.0, (+inf) [
5981  if ( (!((IS >0.0))) )
5982  {
5983  UserError0(*this) << "ADMSbjt504tva: Parameter IS value " << IS << " out of range ] 0.0, (+inf) [";
5984  }
5985 
5986  // Parameter IK : [ 1.0*1.0e-12, (+inf) [
5987  if ( (!((IK >=1.0*1.0e-12))) )
5988  {
5989  UserError0(*this) << "ADMSbjt504tva: Parameter IK value " << IK << " out of range [ 1.0*1.0e-12, (+inf) [";
5990  }
5991 
5992  // Parameter VER : [ 0.01, (+inf) [
5993  if ( (!((VER >=0.01))) )
5994  {
5995  UserError0(*this) << "ADMSbjt504tva: Parameter VER value " << VER << " out of range [ 0.01, (+inf) [";
5996  }
5997 
5998  // Parameter VEF : [ 0.01, (+inf) [
5999  if ( (!((VEF >=0.01))) )
6000  {
6001  UserError0(*this) << "ADMSbjt504tva: Parameter VEF value " << VEF << " out of range [ 0.01, (+inf) [";
6002  }
6003 
6004  // Parameter BF : [ 0.1*1.0e-3, (+inf) [
6005  if ( (!((BF >=0.1*1.0e-3))) )
6006  {
6007  UserError0(*this) << "ADMSbjt504tva: Parameter BF value " << BF << " out of range [ 0.1*1.0e-3, (+inf) [";
6008  }
6009 
6010  // Parameter IBF : [ 0.0, (+inf) [
6011  if ( (!((IBF >=0.0))) )
6012  {
6013  UserError0(*this) << "ADMSbjt504tva: Parameter IBF value " << IBF << " out of range [ 0.0, (+inf) [";
6014  }
6015 
6016  // Parameter MLF : [ 0.1, (+inf) [
6017  if ( (!((MLF >=0.1))) )
6018  {
6019  UserError0(*this) << "ADMSbjt504tva: Parameter MLF value " << MLF << " out of range [ 0.1, (+inf) [";
6020  }
6021 
6022  // Parameter XIBI : [ 0.0, 1.0 ]
6023  if ( (!((XIBI >=0.0 && XIBI <=1.0 ))) )
6024  {
6025  UserError0(*this) << "ADMSbjt504tva: Parameter XIBI value " << XIBI << " out of range [ 0.0, 1.0 ]";
6026  }
6027 
6028  // Parameter IZEB : [ 0.0, (+inf) [
6029  if ( (!((IZEB >=0.0))) )
6030  {
6031  UserError0(*this) << "ADMSbjt504tva: Parameter IZEB value " << IZEB << " out of range [ 0.0, (+inf) [";
6032  }
6033 
6034  // Parameter NZEB : [ 0.0, (+inf) [
6035  if ( (!((NZEB >=0.0))) )
6036  {
6037  UserError0(*this) << "ADMSbjt504tva: Parameter NZEB value " << NZEB << " out of range [ 0.0, (+inf) [";
6038  }
6039 
6040  // Parameter BRI : [ 1.0e-4, (+inf) [
6041  if ( (!((BRI >=1.0e-4))) )
6042  {
6043  UserError0(*this) << "ADMSbjt504tva: Parameter BRI value " << BRI << " out of range [ 1.0e-4, (+inf) [";
6044  }
6045 
6046  // Parameter IBR : [ 0.0, (+inf) [
6047  if ( (!((IBR >=0.0))) )
6048  {
6049  UserError0(*this) << "ADMSbjt504tva: Parameter IBR value " << IBR << " out of range [ 0.0, (+inf) [";
6050  }
6051 
6052  // Parameter XEXT : [ 0.0, 1.0 ]
6053  if ( (!((XEXT >=0.0 && XEXT <=1.0 ))) )
6054  {
6055  UserError0(*this) << "ADMSbjt504tva: Parameter XEXT value " << XEXT << " out of range [ 0.0, 1.0 ]";
6056  }
6057 
6058  // Parameter WAVL : [ 1.0*1.0e-9, (+inf) [
6059  if ( (!((WAVL >=1.0*1.0e-9))) )
6060  {
6061  UserError0(*this) << "ADMSbjt504tva: Parameter WAVL value " << WAVL << " out of range [ 1.0*1.0e-9, (+inf) [";
6062  }
6063 
6064  // Parameter VAVL : [ 0.01, (+inf) [
6065  if ( (!((VAVL >=0.01))) )
6066  {
6067  UserError0(*this) << "ADMSbjt504tva: Parameter VAVL value " << VAVL << " out of range [ 0.01, (+inf) [";
6068  }
6069 
6070  // Parameter SFH : [ 0.0, (+inf) [
6071  if ( (!((SFH >=0.0))) )
6072  {
6073  UserError0(*this) << "ADMSbjt504tva: Parameter SFH value " << SFH << " out of range [ 0.0, (+inf) [";
6074  }
6075 
6076  // Parameter RE : [ 1.0*1.0e-3, (+inf) [
6077  if ( (!((RE >=1.0*1.0e-3))) )
6078  {
6079  UserError0(*this) << "ADMSbjt504tva: Parameter RE value " << RE << " out of range [ 1.0*1.0e-3, (+inf) [";
6080  }
6081 
6082  // Parameter RBC : [ 1.0*1.0e-3, (+inf) [
6083  if ( (!((RBC >=1.0*1.0e-3))) )
6084  {
6085  UserError0(*this) << "ADMSbjt504tva: Parameter RBC value " << RBC << " out of range [ 1.0*1.0e-3, (+inf) [";
6086  }
6087 
6088  // Parameter RBV : [ 1.0*1.0e-3, (+inf) [
6089  if ( (!((RBV >=1.0*1.0e-3))) )
6090  {
6091  UserError0(*this) << "ADMSbjt504tva: Parameter RBV value " << RBV << " out of range [ 1.0*1.0e-3, (+inf) [";
6092  }
6093 
6094  // Parameter RCC : [ 1.0*1.0e-3, (+inf) [
6095  if ( (!((RCC >=1.0*1.0e-3))) )
6096  {
6097  UserError0(*this) << "ADMSbjt504tva: Parameter RCC value " << RCC << " out of range [ 1.0*1.0e-3, (+inf) [";
6098  }
6099 
6100  // Parameter RCV : [ 1.0*1.0e-3, (+inf) [
6101  if ( (!((RCV >=1.0*1.0e-3))) )
6102  {
6103  UserError0(*this) << "ADMSbjt504tva: Parameter RCV value " << RCV << " out of range [ 1.0*1.0e-3, (+inf) [";
6104  }
6105 
6106  // Parameter SCRCV : [ 1.0*1.0e-3, (+inf) [
6107  if ( (!((SCRCV >=1.0*1.0e-3))) )
6108  {
6109  UserError0(*this) << "ADMSbjt504tva: Parameter SCRCV value " << SCRCV << " out of range [ 1.0*1.0e-3, (+inf) [";
6110  }
6111 
6112  // Parameter IHC : [ 1.0*1.0e-12, (+inf) [
6113  if ( (!((IHC >=1.0*1.0e-12))) )
6114  {
6115  UserError0(*this) << "ADMSbjt504tva: Parameter IHC value " << IHC << " out of range [ 1.0*1.0e-12, (+inf) [";
6116  }
6117 
6118  // Parameter AXI : [ 0.02, (+inf) [
6119  if ( (!((AXI >=0.02))) )
6120  {
6121  UserError0(*this) << "ADMSbjt504tva: Parameter AXI value " << AXI << " out of range [ 0.02, (+inf) [";
6122  }
6123 
6124  // Parameter CJE : [ 0.0, (+inf) [
6125  if ( (!((CJE >=0.0))) )
6126  {
6127  UserError0(*this) << "ADMSbjt504tva: Parameter CJE value " << CJE << " out of range [ 0.0, (+inf) [";
6128  }
6129 
6130  // Parameter VDE : [ 0.05, (+inf) [
6131  if ( (!((VDE >=0.05))) )
6132  {
6133  UserError0(*this) << "ADMSbjt504tva: Parameter VDE value " << VDE << " out of range [ 0.05, (+inf) [";
6134  }
6135 
6136  // Parameter PE : [ 0.01, 0.99 [
6137  if ( (!((PE >=0.01 && PE <0.99 ))) )
6138  {
6139  UserError0(*this) << "ADMSbjt504tva: Parameter PE value " << PE << " out of range [ 0.01, 0.99 [";
6140  }
6141 
6142  // Parameter XCJE : [ 0.0, 1.0 ]
6143  if ( (!((XCJE >=0.0 && XCJE <=1.0 ))) )
6144  {
6145  UserError0(*this) << "ADMSbjt504tva: Parameter XCJE value " << XCJE << " out of range [ 0.0, 1.0 ]";
6146  }
6147 
6148  // Parameter CBEO : [ 0.0, (+inf) [
6149  if ( (!((CBEO >=0.0))) )
6150  {
6151  UserError0(*this) << "ADMSbjt504tva: Parameter CBEO value " << CBEO << " out of range [ 0.0, (+inf) [";
6152  }
6153 
6154  // Parameter CJC : [ 0.0, (+inf) [
6155  if ( (!((CJC >=0.0))) )
6156  {
6157  UserError0(*this) << "ADMSbjt504tva: Parameter CJC value " << CJC << " out of range [ 0.0, (+inf) [";
6158  }
6159 
6160  // Parameter VDC : [ 0.05, (+inf) [
6161  if ( (!((VDC >=0.05))) )
6162  {
6163  UserError0(*this) << "ADMSbjt504tva: Parameter VDC value " << VDC << " out of range [ 0.05, (+inf) [";
6164  }
6165 
6166  // Parameter PC : [ 0.01, 0.99 [
6167  if ( (!((PC >=0.01 && PC <0.99 ))) )
6168  {
6169  UserError0(*this) << "ADMSbjt504tva: Parameter PC value " << PC << " out of range [ 0.01, 0.99 [";
6170  }
6171 
6172  // Parameter XP : [ 0.0, 0.99 [
6173  if ( (!((XP >=0.0 && XP <0.99 ))) )
6174  {
6175  UserError0(*this) << "ADMSbjt504tva: Parameter XP value " << XP << " out of range [ 0.0, 0.99 [";
6176  }
6177 
6178  // Parameter MC : [ 0.0, 1.0 [
6179  if ( (!((MC >=0.0 && MC <1.0 ))) )
6180  {
6181  UserError0(*this) << "ADMSbjt504tva: Parameter MC value " << MC << " out of range [ 0.0, 1.0 [";
6182  }
6183 
6184  // Parameter XCJC : [ 0.0, 1.0 ]
6185  if ( (!((XCJC >=0.0 && XCJC <=1.0 ))) )
6186  {
6187  UserError0(*this) << "ADMSbjt504tva: Parameter XCJC value " << XCJC << " out of range [ 0.0, 1.0 ]";
6188  }
6189 
6190  // Parameter RCBLX : [ 0.0, (+inf) [
6191  if ( (!((RCBLX >=0.0))) )
6192  {
6193  UserError0(*this) << "ADMSbjt504tva: Parameter RCBLX value " << RCBLX << " out of range [ 0.0, (+inf) [";
6194  }
6195 
6196  // Parameter RCBLI : [ 0.0, (+inf) [
6197  if ( (!((RCBLI >=0.0))) )
6198  {
6199  UserError0(*this) << "ADMSbjt504tva: Parameter RCBLI value " << RCBLI << " out of range [ 0.0, (+inf) [";
6200  }
6201 
6202  // Parameter CBCO : [ 0.0, (+inf) [
6203  if ( (!((CBCO >=0.0))) )
6204  {
6205  UserError0(*this) << "ADMSbjt504tva: Parameter CBCO value " << CBCO << " out of range [ 0.0, (+inf) [";
6206  }
6207 
6208  // Parameter MTAU : [ 0.1, (+inf) [
6209  if ( (!((MTAU >=0.1))) )
6210  {
6211  UserError0(*this) << "ADMSbjt504tva: Parameter MTAU value " << MTAU << " out of range [ 0.1, (+inf) [";
6212  }
6213 
6214  // Parameter TAUE : [ 0.0, (+inf) [
6215  if ( (!((TAUE >=0.0))) )
6216  {
6217  UserError0(*this) << "ADMSbjt504tva: Parameter TAUE value " << TAUE << " out of range [ 0.0, (+inf) [";
6218  }
6219 
6220  // Parameter TAUB : ] 0.0, (+inf) [
6221  if ( (!((TAUB >0.0))) )
6222  {
6223  UserError0(*this) << "ADMSbjt504tva: Parameter TAUB value " << TAUB << " out of range ] 0.0, (+inf) [";
6224  }
6225 
6226  // Parameter TEPI : [ 0.0, (+inf) [
6227  if ( (!((TEPI >=0.0))) )
6228  {
6229  UserError0(*this) << "ADMSbjt504tva: Parameter TEPI value " << TEPI << " out of range [ 0.0, (+inf) [";
6230  }
6231 
6232  // Parameter TAUR : [ 0.0, (+inf) [
6233  if ( (!((TAUR >=0.0))) )
6234  {
6235  UserError0(*this) << "ADMSbjt504tva: Parameter TAUR value " << TAUR << " out of range [ 0.0, (+inf) [";
6236  }
6237 
6238  // Parameter XREC : [ 0.0, (+inf) [
6239  if ( (!((XREC >=0.0))) )
6240  {
6241  UserError0(*this) << "ADMSbjt504tva: Parameter XREC value " << XREC << " out of range [ 0.0, (+inf) [";
6242  }
6243 
6244  // Parameter ACBL : [ 0.0, (+inf) [
6245  if ( (!((ACBL >=0.0))) )
6246  {
6247  UserError0(*this) << "ADMSbjt504tva: Parameter ACBL value " << ACBL << " out of range [ 0.0, (+inf) [";
6248  }
6249 
6250  // Parameter VGB : [ 0.1, (+inf) [
6251  if ( (!((VGB >=0.1))) )
6252  {
6253  UserError0(*this) << "ADMSbjt504tva: Parameter VGB value " << VGB << " out of range [ 0.1, (+inf) [";
6254  }
6255 
6256  // Parameter VGC : [ 0.1, (+inf) [
6257  if ( (!((VGC >=0.1))) )
6258  {
6259  UserError0(*this) << "ADMSbjt504tva: Parameter VGC value " << VGC << " out of range [ 0.1, (+inf) [";
6260  }
6261 
6262  // Parameter VGJ : [ 0.1, (+inf) [
6263  if ( (!((VGJ >=0.1))) )
6264  {
6265  UserError0(*this) << "ADMSbjt504tva: Parameter VGJ value " << VGJ << " out of range [ 0.1, (+inf) [";
6266  }
6267 
6268  // Parameter VGZEB : [ 0.1, (+inf) [
6269  if ( (!((VGZEB >=0.1))) )
6270  {
6271  UserError0(*this) << "ADMSbjt504tva: Parameter VGZEB value " << VGZEB << " out of range [ 0.1, (+inf) [";
6272  }
6273 
6274  // Parameter AVGEB : ] (-inf) (+inf) [
6275 
6276  // Parameter TVGEB : [ 0.0, (+inf) [
6277  if ( (!((TVGEB >=0.0))) )
6278  {
6279  UserError0(*this) << "ADMSbjt504tva: Parameter TVGEB value " << TVGEB << " out of range [ 0.0, (+inf) [";
6280  }
6281 
6282  // Parameter AF : [ 0.01, (+inf) [
6283  if ( (!((AF >=0.01))) )
6284  {
6285  UserError0(*this) << "ADMSbjt504tva: Parameter AF value " << AF << " out of range [ 0.01, (+inf) [";
6286  }
6287 
6288  // Parameter KF : [ 0.0, (+inf) [
6289  if ( (!((KF >=0.0))) )
6290  {
6291  UserError0(*this) << "ADMSbjt504tva: Parameter KF value " << KF << " out of range [ 0.0, (+inf) [";
6292  }
6293 
6294  // Parameter KFN : [ 0.0, (+inf) [
6295  if ( (!((KFN >=0.0))) )
6296  {
6297  UserError0(*this) << "ADMSbjt504tva: Parameter KFN value " << KFN << " out of range [ 0.0, (+inf) [";
6298  }
6299 
6300  // Parameter KAVL : [ 0, 1 ]
6301  if ( (!((KAVL >=0 && KAVL <=1 ))) )
6302  {
6303  UserError0(*this) << "ADMSbjt504tva: Parameter KAVL value " << KAVL << " out of range [ 0, 1 ]";
6304  }
6305 
6306  // Parameter ISS : [ 0.0, (+inf) [
6307  if ( (!((ISS >=0.0))) )
6308  {
6309  UserError0(*this) << "ADMSbjt504tva: Parameter ISS value " << ISS << " out of range [ 0.0, (+inf) [";
6310  }
6311 
6312  // Parameter ICSS : ] (-inf) (+inf) [
6313 
6314  // Parameter IKS : [ 1.0*1.0e-12, (+inf) [
6315  if ( (!((IKS >=1.0*1.0e-12))) )
6316  {
6317  UserError0(*this) << "ADMSbjt504tva: Parameter IKS value " << IKS << " out of range [ 1.0*1.0e-12, (+inf) [";
6318  }
6319 
6320  // Parameter CJS : [ 0, (+inf) [
6321  if ( (!((CJS >=0))) )
6322  {
6323  UserError0(*this) << "ADMSbjt504tva: Parameter CJS value " << CJS << " out of range [ 0, (+inf) [";
6324  }
6325 
6326  // Parameter VDS : ] 0.05, (+inf) [
6327  if ( (!((VDS >0.05))) )
6328  {
6329  UserError0(*this) << "ADMSbjt504tva: Parameter VDS value " << VDS << " out of range ] 0.05, (+inf) [";
6330  }
6331 
6332  // Parameter PS : ] 0.01, 0.99 [
6333  if ( (!((PS >0.01 && PS <0.99 ))) )
6334  {
6335  UserError0(*this) << "ADMSbjt504tva: Parameter PS value " << PS << " out of range ] 0.01, 0.99 [";
6336  }
6337 
6338  // Parameter VGS : [ 0.1, (+inf) [
6339  if ( (!((VGS >=0.1))) )
6340  {
6341  UserError0(*this) << "ADMSbjt504tva: Parameter VGS value " << VGS << " out of range [ 0.1, (+inf) [";
6342  }
6343 
6344  // Parameter RTH : ] 0.0, (+inf) [
6345  if ( (!((RTH >0.0))) )
6346  {
6347  UserError0(*this) << "ADMSbjt504tva: Parameter RTH value " << RTH << " out of range ] 0.0, (+inf) [";
6348  }
6349 
6350  // Parameter CTH : [ 0.0, (+inf) [
6351  if ( (!((CTH >=0.0))) )
6352  {
6353  UserError0(*this) << "ADMSbjt504tva: Parameter CTH value " << CTH << " out of range [ 0.0, (+inf) [";
6354  }
6355 
6356  // Parameter MULT : ] 0.0, (+inf) [
6357  if ( (!((MULT >0.0))) )
6358  {
6359  UserError0(*this) << "ADMSbjt504tva: Parameter MULT value " << MULT << " out of range ] 0.0, (+inf) [";
6360  }
6361 
6362  // Parameter TYPE : [ (-1), 1 ]
6363  if ( (!((TYPE >=(-1) && TYPE <=1 ))) )
6364  {
6365  UserError0(*this) << "ADMSbjt504tva: Parameter TYPE value " << TYPE << " out of range [ (-1), 1 ]";
6366  }
6367 
6368  // Parameter GMIN : ] 0, 1e-10 ]
6369  if ( (!((GMIN >0 && GMIN <=1e-10 ))) )
6370  {
6371  UserError0(*this) << "ADMSbjt504tva: Parameter GMIN value " << GMIN << " out of range ] 0, 1e-10 ]";
6372  }
6373 
6374 
6375  // and of course, this routine is where we should put the initial_model
6376  // stuff
6377 
6378 
6379  return true;
6380 }
6381 //----------------------------------------------------------------------------
6382 // Function : Model::processInstanceParams
6383 // Purpose :
6384 // Special Notes :
6385 // Scope : public
6386 // Creator :
6387 // Creation Date :
6388 //----------------------------------------------------------------------------
6390 {
6391 
6392  std::vector<Instance*>::iterator iter;
6393  std::vector<Instance*>::iterator first = instanceContainer.begin();
6394  std::vector<Instance*>::iterator last = instanceContainer.end();
6395 
6396  for (iter=first; iter!=last; ++iter)
6397  {
6398  (*iter)->processParams();
6399  }
6400 
6401  return true;
6402 }
6403 
6404 //-----------------------------------------------------------------------------
6405 // Function : Model::Model
6406 // Purpose : model block constructor
6407 // Special Notes :
6408 // Scope : public
6409 // Creator :
6410 // Creation Date :
6411 //-----------------------------------------------------------------------------
6413  const Configuration & configuration,
6414  const ModelBlock & model_block,
6415  const FactoryBlock & factory_block)
6416  : DeviceModel(model_block, configuration.getModelParameters(), factory_block),
6417  LEVEL(504),
6418  TREF(25.0),
6419  DTA(0.0),
6420  EXMOD(1),
6421  EXPHI(1),
6422  EXAVL(0),
6423  EXSUB(0),
6424  IS(22.0*1.0e-18),
6425  IK(0.1),
6426  VER(2.5),
6427  VEF(44.0),
6428  BF(215.0),
6429  IBF(2.7*1.0e-15),
6430  MLF(2.0),
6431  XIBI(0.0),
6432  IZEB(0.0),
6433  NZEB(22.0),
6434  BRI(7.0),
6435  IBR(1.0*1.0e-15),
6436  VLR(0.2),
6437  XEXT(0.63),
6438  WAVL(1.1*1.0e-6),
6439  VAVL(3.0),
6440  SFH(0.3),
6441  RE(5.0),
6442  RBC(23.0),
6443  RBV(18.0),
6444  RCC(12.0),
6445  RCV(150.0),
6446  SCRCV(1250.0),
6447  IHC(4.0*1.0e-3),
6448  AXI(0.3),
6449  CJE(73.0*1.0e-15),
6450  VDE(0.95),
6451  PE(0.4),
6452  XCJE(0.4),
6453  CBEO(0.0),
6454  CJC(78.0*1.0e-15),
6455  VDC(0.68),
6456  PC(0.5),
6457  XP(0.35),
6458  MC(0.5),
6459  XCJC(32.0*1.0e-3),
6460  RCBLX(0.0),
6461  RCBLI(0.0),
6462  CBCO(0.0),
6463  MTAU(1.0),
6464  TAUE(2.0*1.0e-12),
6465  TAUB(4.2*1.0e-12),
6466  TEPI(41.0*1.0e-12),
6467  TAUR(520.0*1.0e-12),
6468  DEG(0.0),
6469  XREC(0.0),
6470  AQBO(0.3),
6471  AE(0.0),
6472  AB(1.0),
6473  AEPI(2.5),
6474  AEX(0.62),
6475  AC(2.0),
6476  ACBL(2.0),
6477  DVGBF(50.0*1.0e-3),
6478  DVGBR(45.0*1.0e-3),
6479  VGB(1.17),
6480  VGC(1.18),
6481  VGJ(1.15),
6482  VGZEB(1.15),
6483  AVGEB(4.73e-4),
6484  TVGEB(636.0),
6485  DVGTE(0.05),
6486  DAIS(0.0),
6487  AF(2.0),
6488  KF(20.0*1.0e-12),
6489  KFN(20.0*1.0e-12),
6490  KAVL(0),
6491  ISS(48.0*1.0e-18),
6492  ICSS((-1.0)),
6493  IKS(250.0*1.0e-6),
6494  CJS(315.0*1.0e-15),
6495  VDS(0.62),
6496  PS(0.34),
6497  VGS(1.20),
6498  AS(1.58),
6499  ASUB(2.0),
6500  RTH(300.0),
6501  CTH(3.0*1.0e-9),
6502  ATH(0.0),
6503  MULT(1.0),
6504  TYPE(1),
6505  GMIN(1.0e-13)
6506 {
6507  // Set params to constant default values (from parTable):
6508  setDefaultParams();
6509 
6510  // Set params according to .model line and constant defaults from metadata:
6511  setModParams(model_block.params);
6512 
6513  // Set any non-constant parameter defaults:
6514  // Set any parameters that were not given and whose defaults depend on other
6515  // parameters:
6516 
6517 
6518  if (!given("XYCEADMSMODTEMP"))
6519  admsModTemp=getDeviceOptions().temp.getImmutableValue<double>();
6520 
6521  // Calculate any parameters specified as expressions:
6522 
6524 
6525  // set internal model type based on model card type
6526  if (getType() == "pnp" || getType() == "PNP")
6527  TYPE = -1;
6528 
6529  // calculate dependent (ie computed) params and check for errors:
6530  processParams();
6531 }
6532 
6533 //-----------------------------------------------------------------------------
6534 // Function : Model::~Model
6535 // Purpose : destructor
6536 // Special Notes :
6537 // Scope : public
6538 // Creator :
6539 // Creation Date :
6540 //-----------------------------------------------------------------------------
6542 {
6543  std::vector<Instance*>::iterator iterI;
6544  std::vector<Instance*>::iterator firstI = instanceContainer.begin ();
6545  std::vector<Instance*>::iterator lastI = instanceContainer.end ();
6546 
6547  // loop over instances:
6548  for (iterI = firstI; iterI != lastI; ++iterI)
6549  {
6550  delete (*iterI);
6551  }
6552 }
6553 
6554 //-----------------------------------------------------------------------------
6555 // Function : Model::printOutInstances
6556 // Purpose : debugging tool.
6557 // Special Notes :
6558 // Scope : public
6559 // Creator :
6560 // Creation Date :
6561 //-----------------------------------------------------------------------------
6562 std::ostream &Model::printOutInstances(std::ostream &os) const
6563 {
6564  std::vector<Instance*>::const_iterator iter;
6565  std::vector<Instance*>::const_iterator first = instanceContainer.begin();
6566  std::vector<Instance*>::const_iterator last = instanceContainer.end();
6567 
6568  int i;
6569  os << std::endl;
6570  os << " name model name Parameters" << std::endl;
6571  for (i=0, iter=first; iter!=last; ++iter, ++i)
6572  {
6573  os << " " << i << ": " << (*iter)->getName() << " ";
6574  os << getName();
6575 
6576  os << std::endl;
6577  os << "MULT = " << (*iter)->MULT << std::endl;
6578  os << std::endl;
6579  }
6580 
6581  os << std::endl;
6582 
6583  return os;
6584 }
6585 
6586 //-----------------------------------------------------------------------------
6587 // Function : Model::forEachInstance
6588 // Purpose :
6589 // Special Notes :
6590 // Scope : public
6591 // Creator : David Baur
6592 // Creation Date : 2/4/2014
6593 //-----------------------------------------------------------------------------
6594 /// Apply a device instance "op" to all instances associated with this
6595 /// model
6596 ///
6597 /// @param[in] op Operator to apply to all instances.
6598 ///
6599 ///
6600 void Model::forEachInstance(DeviceInstanceOp &op) const /* override */
6601 {
6602  for (std::vector<Instance *>::const_iterator it = instanceContainer.begin(); it != instanceContainer.end(); ++it)
6603  op(*it);
6604 }
6605 
6606 Device *Traits::factory(const Configuration &configuration, const FactoryBlock &factory_block)
6607 {
6608  return new DeviceMaster<Traits>(configuration, factory_block, factory_block.solverState_, factory_block.deviceOptions_);
6609 }
6610 
6612 {
6614  .registerDevice("q", 505)
6615  .registerModelType("npn", 505)
6616  .registerModelType("pnp", 505);
6617 }
6618 
6619 
6620 
6621 #ifdef Xyce_ADMS_SENSITIVITIES
6622 //-----------------------------------------------------------------------------
6623 // Function : evaluateInitialInstance
6624 // Purpose : Evaluate the statements in the initial_instance block
6625 // Special Notes : specific for sensitivity use
6626 // Scope : public
6627 // Creator : admsXml
6628 // Creation Date :
6629 //-----------------------------------------------------------------------------
6630 void evaluateInitialInstance(
6631  // instance parameters
6632  // reals
6633  AdmsSensFadType & instancePar_MULT,
6634  bool instancePar_given_MULT,
6635  // instance variables
6636  // reals
6637  AdmsSensFadType & instanceVar_Tk,
6638  AdmsSensFadType & instanceVar_Izteb,
6639  AdmsSensFadType & instanceVar_RE_TM,
6640  AdmsSensFadType & instanceVar_RBC_TM,
6641  AdmsSensFadType & instanceVar_GCCxx_TM,
6642  AdmsSensFadType & instanceVar_GCCex_TM,
6643  AdmsSensFadType & instanceVar_GCCin_TM,
6644  AdmsSensFadType & instanceVar_KF_M,
6645  AdmsSensFadType & instanceVar_KFN_M,
6646  AdmsSensFadType & instanceVar_qBI,
6647  AdmsSensFadType & instanceVar_Ir,
6648  AdmsSensFadType & instanceVar_If,
6649  AdmsSensFadType & instanceVar_Ib1,
6650  AdmsSensFadType & instanceVar_Ib1_s,
6651  AdmsSensFadType & instanceVar_Ib2,
6652  AdmsSensFadType & instanceVar_Ib3,
6653  AdmsSensFadType & instanceVar_Iex,
6654  AdmsSensFadType & instanceVar_XIex,
6655  AdmsSensFadType & instanceVar_Isub,
6656  AdmsSensFadType & instanceVar_XIsub,
6657  AdmsSensFadType & instanceVar_Rb2,
6658  AdmsSensFadType & instanceVar_Gem,
6659  AdmsSensFadType & instanceVar_eVb1b2,
6660  // model parameters
6661  // reals
6662  AdmsSensFadType & modelPar_TREF,
6663  bool modelPar_given_TREF,
6664  AdmsSensFadType & modelPar_DTA,
6665  bool modelPar_given_DTA,
6666  AdmsSensFadType & modelPar_IS,
6667  bool modelPar_given_IS,
6668  AdmsSensFadType & modelPar_IK,
6669  bool modelPar_given_IK,
6670  AdmsSensFadType & modelPar_VER,
6671  bool modelPar_given_VER,
6672  AdmsSensFadType & modelPar_VEF,
6673  bool modelPar_given_VEF,
6674  AdmsSensFadType & modelPar_BF,
6675  bool modelPar_given_BF,
6676  AdmsSensFadType & modelPar_IBF,
6677  bool modelPar_given_IBF,
6678  AdmsSensFadType & modelPar_MLF,
6679  bool modelPar_given_MLF,
6680  AdmsSensFadType & modelPar_XIBI,
6681  bool modelPar_given_XIBI,
6682  AdmsSensFadType & modelPar_IZEB,
6683  bool modelPar_given_IZEB,
6684  AdmsSensFadType & modelPar_NZEB,
6685  bool modelPar_given_NZEB,
6686  AdmsSensFadType & modelPar_BRI,
6687  bool modelPar_given_BRI,
6688  AdmsSensFadType & modelPar_IBR,
6689  bool modelPar_given_IBR,
6690  AdmsSensFadType & modelPar_VLR,
6691  bool modelPar_given_VLR,
6692  AdmsSensFadType & modelPar_XEXT,
6693  bool modelPar_given_XEXT,
6694  AdmsSensFadType & modelPar_WAVL,
6695  bool modelPar_given_WAVL,
6696  AdmsSensFadType & modelPar_VAVL,
6697  bool modelPar_given_VAVL,
6698  AdmsSensFadType & modelPar_SFH,
6699  bool modelPar_given_SFH,
6700  AdmsSensFadType & modelPar_RE,
6701  bool modelPar_given_RE,
6702  AdmsSensFadType & modelPar_RBC,
6703  bool modelPar_given_RBC,
6704  AdmsSensFadType & modelPar_RBV,
6705  bool modelPar_given_RBV,
6706  AdmsSensFadType & modelPar_RCC,
6707  bool modelPar_given_RCC,
6708  AdmsSensFadType & modelPar_RCV,
6709  bool modelPar_given_RCV,
6710  AdmsSensFadType & modelPar_SCRCV,
6711  bool modelPar_given_SCRCV,
6712  AdmsSensFadType & modelPar_IHC,
6713  bool modelPar_given_IHC,
6714  AdmsSensFadType & modelPar_AXI,
6715  bool modelPar_given_AXI,
6716  AdmsSensFadType & modelPar_CJE,
6717  bool modelPar_given_CJE,
6718  AdmsSensFadType & modelPar_VDE,
6719  bool modelPar_given_VDE,
6720  AdmsSensFadType & modelPar_PE,
6721  bool modelPar_given_PE,
6722  AdmsSensFadType & modelPar_XCJE,
6723  bool modelPar_given_XCJE,
6724  AdmsSensFadType & modelPar_CBEO,
6725  bool modelPar_given_CBEO,
6726  AdmsSensFadType & modelPar_CJC,
6727  bool modelPar_given_CJC,
6728  AdmsSensFadType & modelPar_VDC,
6729  bool modelPar_given_VDC,
6730  AdmsSensFadType & modelPar_PC,
6731  bool modelPar_given_PC,
6732  AdmsSensFadType & modelPar_XP,
6733  bool modelPar_given_XP,
6734  AdmsSensFadType & modelPar_MC,
6735  bool modelPar_given_MC,
6736  AdmsSensFadType & modelPar_XCJC,
6737  bool modelPar_given_XCJC,
6738  AdmsSensFadType & modelPar_RCBLX,
6739  bool modelPar_given_RCBLX,
6740  AdmsSensFadType & modelPar_RCBLI,
6741  bool modelPar_given_RCBLI,
6742  AdmsSensFadType & modelPar_CBCO,
6743  bool modelPar_given_CBCO,
6744  AdmsSensFadType & modelPar_MTAU,
6745  bool modelPar_given_MTAU,
6746  AdmsSensFadType & modelPar_TAUE,
6747  bool modelPar_given_TAUE,
6748  AdmsSensFadType & modelPar_TAUB,
6749  bool modelPar_given_TAUB,
6750  AdmsSensFadType & modelPar_TEPI,
6751  bool modelPar_given_TEPI,
6752  AdmsSensFadType & modelPar_TAUR,
6753  bool modelPar_given_TAUR,
6754  AdmsSensFadType & modelPar_DEG,
6755  bool modelPar_given_DEG,
6756  AdmsSensFadType & modelPar_XREC,
6757  bool modelPar_given_XREC,
6758  AdmsSensFadType & modelPar_AQBO,
6759  bool modelPar_given_AQBO,
6760  AdmsSensFadType & modelPar_AE,
6761  bool modelPar_given_AE,
6762  AdmsSensFadType & modelPar_AB,
6763  bool modelPar_given_AB,
6764  AdmsSensFadType & modelPar_AEPI,
6765  bool modelPar_given_AEPI,
6766  AdmsSensFadType & modelPar_AEX,
6767  bool modelPar_given_AEX,
6768  AdmsSensFadType & modelPar_AC,
6769  bool modelPar_given_AC,
6770  AdmsSensFadType & modelPar_ACBL,
6771  bool modelPar_given_ACBL,
6772  AdmsSensFadType & modelPar_DVGBF,
6773  bool modelPar_given_DVGBF,
6774  AdmsSensFadType & modelPar_DVGBR,
6775  bool modelPar_given_DVGBR,
6776  AdmsSensFadType & modelPar_VGB,
6777  bool modelPar_given_VGB,
6778  AdmsSensFadType & modelPar_VGC,
6779  bool modelPar_given_VGC,
6780  AdmsSensFadType & modelPar_VGJ,
6781  bool modelPar_given_VGJ,
6782  AdmsSensFadType & modelPar_VGZEB,
6783  bool modelPar_given_VGZEB,
6784  AdmsSensFadType & modelPar_AVGEB,
6785  bool modelPar_given_AVGEB,
6786  AdmsSensFadType & modelPar_TVGEB,
6787  bool modelPar_given_TVGEB,
6788  AdmsSensFadType & modelPar_DVGTE,
6789  bool modelPar_given_DVGTE,
6790  AdmsSensFadType & modelPar_DAIS,
6791  bool modelPar_given_DAIS,
6792  AdmsSensFadType & modelPar_AF,
6793  bool modelPar_given_AF,
6794  AdmsSensFadType & modelPar_KF,
6795  bool modelPar_given_KF,
6796  AdmsSensFadType & modelPar_KFN,
6797  bool modelPar_given_KFN,
6798  AdmsSensFadType & modelPar_ISS,
6799  bool modelPar_given_ISS,
6800  AdmsSensFadType & modelPar_ICSS,
6801  bool modelPar_given_ICSS,
6802  AdmsSensFadType & modelPar_IKS,
6803  bool modelPar_given_IKS,
6804  AdmsSensFadType & modelPar_CJS,
6805  bool modelPar_given_CJS,
6806  AdmsSensFadType & modelPar_VDS,
6807  bool modelPar_given_VDS,
6808  AdmsSensFadType & modelPar_PS,
6809  bool modelPar_given_PS,
6810  AdmsSensFadType & modelPar_VGS,
6811  bool modelPar_given_VGS,
6812  AdmsSensFadType & modelPar_AS,
6813  bool modelPar_given_AS,
6814  AdmsSensFadType & modelPar_ASUB,
6815  bool modelPar_given_ASUB,
6816  AdmsSensFadType & modelPar_RTH,
6817  bool modelPar_given_RTH,
6818  AdmsSensFadType & modelPar_CTH,
6819  bool modelPar_given_CTH,
6820  AdmsSensFadType & modelPar_ATH,
6821  bool modelPar_given_ATH,
6822  AdmsSensFadType & modelPar_MULT,
6823  bool modelPar_given_MULT,
6824  AdmsSensFadType & modelPar_GMIN,
6825  bool modelPar_given_GMIN,
6826  // non-reals (including hidden)
6827  int modelPar_LEVEL,
6828  bool modelPar_given_LEVEL,
6829  int modelPar_EXMOD,
6830  bool modelPar_given_EXMOD,
6831  int modelPar_EXPHI,
6832  bool modelPar_given_EXPHI,
6833  int modelPar_EXAVL,
6834  bool modelPar_given_EXAVL,
6835  int modelPar_EXSUB,
6836  bool modelPar_given_EXSUB,
6837  int modelPar_KAVL,
6838  bool modelPar_given_KAVL,
6839  int modelPar_TYPE,
6840  bool modelPar_given_TYPE,
6841  double admsTemperature, double adms_vt_nom)
6842 {
6843 }
6844 
6845 
6846 
6847 //-----------------------------------------------------------------------------
6848 // Function : evaluateInitialModel
6849 // Purpose : Evaluate the statements in the initial_model block
6850 // Special Notes : specific for sensitivity use
6851 // Scope : public
6852 // Creator : admsXml
6853 // Creation Date :
6854 //-----------------------------------------------------------------------------
6855 void evaluateInitialModel(
6856  // model parameters
6857  // reals
6858  AdmsSensFadType & modelPar_TREF,
6859  bool modelPar_given_TREF,
6860  AdmsSensFadType & modelPar_DTA,
6861  bool modelPar_given_DTA,
6862  AdmsSensFadType & modelPar_IS,
6863  bool modelPar_given_IS,
6864  AdmsSensFadType & modelPar_IK,
6865  bool modelPar_given_IK,
6866  AdmsSensFadType & modelPar_VER,
6867  bool modelPar_given_VER,
6868  AdmsSensFadType & modelPar_VEF,
6869  bool modelPar_given_VEF,
6870  AdmsSensFadType & modelPar_BF,
6871  bool modelPar_given_BF,
6872  AdmsSensFadType & modelPar_IBF,
6873  bool modelPar_given_IBF,
6874  AdmsSensFadType & modelPar_MLF,
6875  bool modelPar_given_MLF,
6876  AdmsSensFadType & modelPar_XIBI,
6877  bool modelPar_given_XIBI,
6878  AdmsSensFadType & modelPar_IZEB,
6879  bool modelPar_given_IZEB,
6880  AdmsSensFadType & modelPar_NZEB,
6881  bool modelPar_given_NZEB,
6882  AdmsSensFadType & modelPar_BRI,
6883  bool modelPar_given_BRI,
6884  AdmsSensFadType & modelPar_IBR,
6885  bool modelPar_given_IBR,
6886  AdmsSensFadType & modelPar_VLR,
6887  bool modelPar_given_VLR,
6888  AdmsSensFadType & modelPar_XEXT,
6889  bool modelPar_given_XEXT,
6890  AdmsSensFadType & modelPar_WAVL,
6891  bool modelPar_given_WAVL,
6892  AdmsSensFadType & modelPar_VAVL,
6893  bool modelPar_given_VAVL,
6894  AdmsSensFadType & modelPar_SFH,
6895  bool modelPar_given_SFH,
6896  AdmsSensFadType & modelPar_RE,
6897  bool modelPar_given_RE,
6898  AdmsSensFadType & modelPar_RBC,
6899  bool modelPar_given_RBC,
6900  AdmsSensFadType & modelPar_RBV,
6901  bool modelPar_given_RBV,
6902  AdmsSensFadType & modelPar_RCC,
6903  bool modelPar_given_RCC,
6904  AdmsSensFadType & modelPar_RCV,
6905  bool modelPar_given_RCV,
6906  AdmsSensFadType & modelPar_SCRCV,
6907  bool modelPar_given_SCRCV,
6908  AdmsSensFadType & modelPar_IHC,
6909  bool modelPar_given_IHC,
6910  AdmsSensFadType & modelPar_AXI,
6911  bool modelPar_given_AXI,
6912  AdmsSensFadType & modelPar_CJE,
6913  bool modelPar_given_CJE,
6914  AdmsSensFadType & modelPar_VDE,
6915  bool modelPar_given_VDE,
6916  AdmsSensFadType & modelPar_PE,
6917  bool modelPar_given_PE,
6918  AdmsSensFadType & modelPar_XCJE,
6919  bool modelPar_given_XCJE,
6920  AdmsSensFadType & modelPar_CBEO,
6921  bool modelPar_given_CBEO,
6922  AdmsSensFadType & modelPar_CJC,
6923  bool modelPar_given_CJC,
6924  AdmsSensFadType & modelPar_VDC,
6925  bool modelPar_given_VDC,
6926  AdmsSensFadType & modelPar_PC,
6927  bool modelPar_given_PC,
6928  AdmsSensFadType & modelPar_XP,
6929  bool modelPar_given_XP,
6930  AdmsSensFadType & modelPar_MC,
6931  bool modelPar_given_MC,
6932  AdmsSensFadType & modelPar_XCJC,
6933  bool modelPar_given_XCJC,
6934  AdmsSensFadType & modelPar_RCBLX,
6935  bool modelPar_given_RCBLX,
6936  AdmsSensFadType & modelPar_RCBLI,
6937  bool modelPar_given_RCBLI,
6938  AdmsSensFadType & modelPar_CBCO,
6939  bool modelPar_given_CBCO,
6940  AdmsSensFadType & modelPar_MTAU,
6941  bool modelPar_given_MTAU,
6942  AdmsSensFadType & modelPar_TAUE,
6943  bool modelPar_given_TAUE,
6944  AdmsSensFadType & modelPar_TAUB,
6945  bool modelPar_given_TAUB,
6946  AdmsSensFadType & modelPar_TEPI,
6947  bool modelPar_given_TEPI,
6948  AdmsSensFadType & modelPar_TAUR,
6949  bool modelPar_given_TAUR,
6950  AdmsSensFadType & modelPar_DEG,
6951  bool modelPar_given_DEG,
6952  AdmsSensFadType & modelPar_XREC,
6953  bool modelPar_given_XREC,
6954  AdmsSensFadType & modelPar_AQBO,
6955  bool modelPar_given_AQBO,
6956  AdmsSensFadType & modelPar_AE,
6957  bool modelPar_given_AE,
6958  AdmsSensFadType & modelPar_AB,
6959  bool modelPar_given_AB,
6960  AdmsSensFadType & modelPar_AEPI,
6961  bool modelPar_given_AEPI,
6962  AdmsSensFadType & modelPar_AEX,
6963  bool modelPar_given_AEX,
6964  AdmsSensFadType & modelPar_AC,
6965  bool modelPar_given_AC,
6966  AdmsSensFadType & modelPar_ACBL,
6967  bool modelPar_given_ACBL,
6968  AdmsSensFadType & modelPar_DVGBF,
6969  bool modelPar_given_DVGBF,
6970  AdmsSensFadType & modelPar_DVGBR,
6971  bool modelPar_given_DVGBR,
6972  AdmsSensFadType & modelPar_VGB,
6973  bool modelPar_given_VGB,
6974  AdmsSensFadType & modelPar_VGC,
6975  bool modelPar_given_VGC,
6976  AdmsSensFadType & modelPar_VGJ,
6977  bool modelPar_given_VGJ,
6978  AdmsSensFadType & modelPar_VGZEB,
6979  bool modelPar_given_VGZEB,
6980  AdmsSensFadType & modelPar_AVGEB,
6981  bool modelPar_given_AVGEB,
6982  AdmsSensFadType & modelPar_TVGEB,
6983  bool modelPar_given_TVGEB,
6984  AdmsSensFadType & modelPar_DVGTE,
6985  bool modelPar_given_DVGTE,
6986  AdmsSensFadType & modelPar_DAIS,
6987  bool modelPar_given_DAIS,
6988  AdmsSensFadType & modelPar_AF,
6989  bool modelPar_given_AF,
6990  AdmsSensFadType & modelPar_KF,
6991  bool modelPar_given_KF,
6992  AdmsSensFadType & modelPar_KFN,
6993  bool modelPar_given_KFN,
6994  AdmsSensFadType & modelPar_ISS,
6995  bool modelPar_given_ISS,
6996  AdmsSensFadType & modelPar_ICSS,
6997  bool modelPar_given_ICSS,
6998  AdmsSensFadType & modelPar_IKS,
6999  bool modelPar_given_IKS,
7000  AdmsSensFadType & modelPar_CJS,
7001  bool modelPar_given_CJS,
7002  AdmsSensFadType & modelPar_VDS,
7003  bool modelPar_given_VDS,
7004  AdmsSensFadType & modelPar_PS,
7005  bool modelPar_given_PS,
7006  AdmsSensFadType & modelPar_VGS,
7007  bool modelPar_given_VGS,
7008  AdmsSensFadType & modelPar_AS,
7009  bool modelPar_given_AS,
7010  AdmsSensFadType & modelPar_ASUB,
7011  bool modelPar_given_ASUB,
7012  AdmsSensFadType & modelPar_RTH,
7013  bool modelPar_given_RTH,
7014  AdmsSensFadType & modelPar_CTH,
7015  bool modelPar_given_CTH,
7016  AdmsSensFadType & modelPar_ATH,
7017  bool modelPar_given_ATH,
7018  AdmsSensFadType & modelPar_MULT,
7019  bool modelPar_given_MULT,
7020  AdmsSensFadType & modelPar_GMIN,
7021  bool modelPar_given_GMIN,
7022  // non-reals (including hidden)
7023  int modelPar_LEVEL,
7024  bool modelPar_given_LEVEL,
7025  int modelPar_EXMOD,
7026  bool modelPar_given_EXMOD,
7027  int modelPar_EXPHI,
7028  bool modelPar_given_EXPHI,
7029  int modelPar_EXAVL,
7030  bool modelPar_given_EXAVL,
7031  int modelPar_EXSUB,
7032  bool modelPar_given_EXSUB,
7033  int modelPar_KAVL,
7034  bool modelPar_given_KAVL,
7035  int modelPar_TYPE,
7036  bool modelPar_given_TYPE,
7037  double admsTemperature)
7038 {
7039 }
7040 
7041 
7042 
7043 //-----------------------------------------------------------------------------
7044 // Function : evaluateModelEquations
7045 // Purpose : Evaluate the main module block. Similar to
7046 // updateIntermediateVars, but takes all instance and model
7047 // parameters and variables as arguments instead of using
7048 // the ones stored in the objects.
7049 // Special Notes : specific for sensitivity use
7050 // Scope : public
7051 // Creator : admsXml
7052 // Creation Date :
7053 //-----------------------------------------------------------------------------
7054 void evaluateModelEquations(
7055  std::vector <double> & probeVars,
7056  // probe constants
7057  const int admsProbeID_V_noi_e1,
7058  const int admsProbeID_V_c3_c1,
7059  const int admsProbeID_V_c3_c4,
7060  const int admsProbeID_V_c4_c1,
7061  const int admsProbeID_V_b_c,
7062  const int admsProbeID_V_b_e,
7063  const int admsProbeID_V_b_b1,
7064  const int admsProbeID_V_e_e1,
7065  const int admsProbeID_V_c1_c2,
7066  const int admsProbeID_V_s_c1,
7067  const int admsProbeID_V_b1_b2,
7068  const int admsProbeID_V_b1_e1,
7069  const int admsProbeID_V_b2_e1,
7070  const int admsProbeID_V_b2_c2,
7071  const int admsProbeID_V_b2_c1,
7072  const int admsProbeID_V_dt_GND,
7073  // node constants
7074  const int admsNodeID_c,
7075  const int admsNodeID_b,
7076  const int admsNodeID_e,
7077  const int admsNodeID_s,
7078  const int admsNodeID_dt,
7079  const int admsNodeID_e1,
7080  const int admsNodeID_b1,
7081  const int admsNodeID_b2,
7082  const int admsNodeID_c3,
7083  const int admsNodeID_c4,
7084  const int admsNodeID_c2,
7085  const int admsNodeID_c1,
7086  const int admsNodeID_noi,
7087  // instance parameters
7088  // reals
7089  AdmsSensFadType & instancePar_MULT,
7090  bool instancePar_given_MULT,
7091  // instance variables
7092  // reals
7093  AdmsSensFadType & instanceVar_Tk,
7094  AdmsSensFadType & instanceVar_Izteb,
7095  AdmsSensFadType & instanceVar_RE_TM,
7096  AdmsSensFadType & instanceVar_RBC_TM,
7097  AdmsSensFadType & instanceVar_GCCxx_TM,
7098  AdmsSensFadType & instanceVar_GCCex_TM,
7099  AdmsSensFadType & instanceVar_GCCin_TM,
7100  AdmsSensFadType & instanceVar_KF_M,
7101  AdmsSensFadType & instanceVar_KFN_M,
7102  AdmsSensFadType & instanceVar_qBI,
7103  AdmsSensFadType & instanceVar_Ir,
7104  AdmsSensFadType & instanceVar_If,
7105  AdmsSensFadType & instanceVar_Ib1,
7106  AdmsSensFadType & instanceVar_Ib1_s,
7107  AdmsSensFadType & instanceVar_Ib2,
7108  AdmsSensFadType & instanceVar_Ib3,
7109  AdmsSensFadType & instanceVar_Iex,
7110  AdmsSensFadType & instanceVar_XIex,
7111  AdmsSensFadType & instanceVar_Isub,
7112  AdmsSensFadType & instanceVar_XIsub,
7113  AdmsSensFadType & instanceVar_Rb2,
7114  AdmsSensFadType & instanceVar_Gem,
7115  AdmsSensFadType & instanceVar_eVb1b2,
7116  // model parameters
7117  // reals
7118  AdmsSensFadType & modelPar_TREF,
7119  bool modelPar_given_TREF,
7120  AdmsSensFadType & modelPar_DTA,
7121  bool modelPar_given_DTA,
7122  AdmsSensFadType & modelPar_IS,
7123  bool modelPar_given_IS,
7124  AdmsSensFadType & modelPar_IK,
7125  bool modelPar_given_IK,
7126  AdmsSensFadType & modelPar_VER,
7127  bool modelPar_given_VER,
7128  AdmsSensFadType & modelPar_VEF,
7129  bool modelPar_given_VEF,
7130  AdmsSensFadType & modelPar_BF,
7131  bool modelPar_given_BF,
7132  AdmsSensFadType & modelPar_IBF,
7133  bool modelPar_given_IBF,
7134  AdmsSensFadType & modelPar_MLF,
7135  bool modelPar_given_MLF,
7136  AdmsSensFadType & modelPar_XIBI,
7137  bool modelPar_given_XIBI,
7138  AdmsSensFadType & modelPar_IZEB,
7139  bool modelPar_given_IZEB,
7140  AdmsSensFadType & modelPar_NZEB,
7141  bool modelPar_given_NZEB,
7142  AdmsSensFadType & modelPar_BRI,
7143  bool modelPar_given_BRI,
7144  AdmsSensFadType & modelPar_IBR,
7145  bool modelPar_given_IBR,
7146  AdmsSensFadType & modelPar_VLR,
7147  bool modelPar_given_VLR,
7148  AdmsSensFadType & modelPar_XEXT,
7149  bool modelPar_given_XEXT,
7150  AdmsSensFadType & modelPar_WAVL,
7151  bool modelPar_given_WAVL,
7152  AdmsSensFadType & modelPar_VAVL,
7153  bool modelPar_given_VAVL,
7154  AdmsSensFadType & modelPar_SFH,
7155  bool modelPar_given_SFH,
7156  AdmsSensFadType & modelPar_RE,
7157  bool modelPar_given_RE,
7158  AdmsSensFadType & modelPar_RBC,
7159  bool modelPar_given_RBC,
7160  AdmsSensFadType & modelPar_RBV,
7161  bool modelPar_given_RBV,
7162  AdmsSensFadType & modelPar_RCC,
7163  bool modelPar_given_RCC,
7164  AdmsSensFadType & modelPar_RCV,
7165  bool modelPar_given_RCV,
7166  AdmsSensFadType & modelPar_SCRCV,
7167  bool modelPar_given_SCRCV,
7168  AdmsSensFadType & modelPar_IHC,
7169  bool modelPar_given_IHC,
7170  AdmsSensFadType & modelPar_AXI,
7171  bool modelPar_given_AXI,
7172  AdmsSensFadType & modelPar_CJE,
7173  bool modelPar_given_CJE,
7174  AdmsSensFadType & modelPar_VDE,
7175  bool modelPar_given_VDE,
7176  AdmsSensFadType & modelPar_PE,
7177  bool modelPar_given_PE,
7178  AdmsSensFadType & modelPar_XCJE,
7179  bool modelPar_given_XCJE,
7180  AdmsSensFadType & modelPar_CBEO,
7181  bool modelPar_given_CBEO,
7182  AdmsSensFadType & modelPar_CJC,
7183  bool modelPar_given_CJC,
7184  AdmsSensFadType & modelPar_VDC,
7185  bool modelPar_given_VDC,
7186  AdmsSensFadType & modelPar_PC,
7187  bool modelPar_given_PC,
7188  AdmsSensFadType & modelPar_XP,
7189  bool modelPar_given_XP,
7190  AdmsSensFadType & modelPar_MC,
7191  bool modelPar_given_MC,
7192  AdmsSensFadType & modelPar_XCJC,
7193  bool modelPar_given_XCJC,
7194  AdmsSensFadType & modelPar_RCBLX,
7195  bool modelPar_given_RCBLX,
7196  AdmsSensFadType & modelPar_RCBLI,
7197  bool modelPar_given_RCBLI,
7198  AdmsSensFadType & modelPar_CBCO,
7199  bool modelPar_given_CBCO,
7200  AdmsSensFadType & modelPar_MTAU,
7201  bool modelPar_given_MTAU,
7202  AdmsSensFadType & modelPar_TAUE,
7203  bool modelPar_given_TAUE,
7204  AdmsSensFadType & modelPar_TAUB,
7205  bool modelPar_given_TAUB,
7206  AdmsSensFadType & modelPar_TEPI,
7207  bool modelPar_given_TEPI,
7208  AdmsSensFadType & modelPar_TAUR,
7209  bool modelPar_given_TAUR,
7210  AdmsSensFadType & modelPar_DEG,
7211  bool modelPar_given_DEG,
7212  AdmsSensFadType & modelPar_XREC,
7213  bool modelPar_given_XREC,
7214  AdmsSensFadType & modelPar_AQBO,
7215  bool modelPar_given_AQBO,
7216  AdmsSensFadType & modelPar_AE,
7217  bool modelPar_given_AE,
7218  AdmsSensFadType & modelPar_AB,
7219  bool modelPar_given_AB,
7220  AdmsSensFadType & modelPar_AEPI,
7221  bool modelPar_given_AEPI,
7222  AdmsSensFadType & modelPar_AEX,
7223  bool modelPar_given_AEX,
7224  AdmsSensFadType & modelPar_AC,
7225  bool modelPar_given_AC,
7226  AdmsSensFadType & modelPar_ACBL,
7227  bool modelPar_given_ACBL,
7228  AdmsSensFadType & modelPar_DVGBF,
7229  bool modelPar_given_DVGBF,
7230  AdmsSensFadType & modelPar_DVGBR,
7231  bool modelPar_given_DVGBR,
7232  AdmsSensFadType & modelPar_VGB,
7233  bool modelPar_given_VGB,
7234  AdmsSensFadType & modelPar_VGC,
7235  bool modelPar_given_VGC,
7236  AdmsSensFadType & modelPar_VGJ,
7237  bool modelPar_given_VGJ,
7238  AdmsSensFadType & modelPar_VGZEB,
7239  bool modelPar_given_VGZEB,
7240  AdmsSensFadType & modelPar_AVGEB,
7241  bool modelPar_given_AVGEB,
7242  AdmsSensFadType & modelPar_TVGEB,
7243  bool modelPar_given_TVGEB,
7244  AdmsSensFadType & modelPar_DVGTE,
7245  bool modelPar_given_DVGTE,
7246  AdmsSensFadType & modelPar_DAIS,
7247  bool modelPar_given_DAIS,
7248  AdmsSensFadType & modelPar_AF,
7249  bool modelPar_given_AF,
7250  AdmsSensFadType & modelPar_KF,
7251  bool modelPar_given_KF,
7252  AdmsSensFadType & modelPar_KFN,
7253  bool modelPar_given_KFN,
7254  AdmsSensFadType & modelPar_ISS,
7255  bool modelPar_given_ISS,
7256  AdmsSensFadType & modelPar_ICSS,
7257  bool modelPar_given_ICSS,
7258  AdmsSensFadType & modelPar_IKS,
7259  bool modelPar_given_IKS,
7260  AdmsSensFadType & modelPar_CJS,
7261  bool modelPar_given_CJS,
7262  AdmsSensFadType & modelPar_VDS,
7263  bool modelPar_given_VDS,
7264  AdmsSensFadType & modelPar_PS,
7265  bool modelPar_given_PS,
7266  AdmsSensFadType & modelPar_VGS,
7267  bool modelPar_given_VGS,
7268  AdmsSensFadType & modelPar_AS,
7269  bool modelPar_given_AS,
7270  AdmsSensFadType & modelPar_ASUB,
7271  bool modelPar_given_ASUB,
7272  AdmsSensFadType & modelPar_RTH,
7273  bool modelPar_given_RTH,
7274  AdmsSensFadType & modelPar_CTH,
7275  bool modelPar_given_CTH,
7276  AdmsSensFadType & modelPar_ATH,
7277  bool modelPar_given_ATH,
7278  AdmsSensFadType & modelPar_MULT,
7279  bool modelPar_given_MULT,
7280  AdmsSensFadType & modelPar_GMIN,
7281  bool modelPar_given_GMIN,
7282  // non-reals (including hidden)
7283  int modelPar_LEVEL,
7284  bool modelPar_given_LEVEL,
7285  int modelPar_EXMOD,
7286  bool modelPar_given_EXMOD,
7287  int modelPar_EXPHI,
7288  bool modelPar_given_EXPHI,
7289  int modelPar_EXAVL,
7290  bool modelPar_given_EXAVL,
7291  int modelPar_EXSUB,
7292  bool modelPar_given_EXSUB,
7293  int modelPar_KAVL,
7294  bool modelPar_given_KAVL,
7295  int modelPar_TYPE,
7296  bool modelPar_given_TYPE,
7297  // basic variables
7298  double admsTemperature, double adms_vt_nom, double gmin, std::vector <AdmsSensFadType> & staticContributions, std::vector <AdmsSensFadType> & dynamicContributions, const Instance & theInstance)
7299 {
7300 
7301  // Local variables
7302  AdmsSensFadType common;
7303  AdmsSensFadType powerREC;
7304  AdmsSensFadType powerRBC;
7305  AdmsSensFadType powerRCCxx;
7306  AdmsSensFadType powerRCCex;
7307  AdmsSensFadType powerRCCin;
7308  AdmsSensFadType powerRBV;
7309  AdmsSensFadType powerCCS;
7310  AdmsSensFadType powerFBCS;
7311  AdmsSensFadType powerFBC1fB1;
7312  AdmsSensFadType exponentFBC1fB2;
7313  AdmsSensFadType powerFBC1fB2;
7314  AdmsSensFadType powerEBSCS;
7315  AdmsSensFadType powerEBSC1f;
7316  AdmsSensFadType powerRBCS;
7317  AdmsSensFadType powerRBC1f;
7318  AdmsSensFadType powerExCS;
7319  AdmsSensFadType powerExC1f;
7320  AdmsSensFadType powerExCSMOD;
7321  AdmsSensFadType powerExC1fMOD;
7322  AdmsSensFadType powerSubsCS_B1S;
7323  AdmsSensFadType powerSubsCS_BS;
7324  AdmsSensFadType twoqIavl;
7325  AdmsSensFadType powerCCS_A;
7326  AdmsSensFadType Vb2c1;
7327  AdmsSensFadType Vb2c2;
7328  AdmsSensFadType Vb2e1;
7329  AdmsSensFadType Vb1e1;
7330  AdmsSensFadType Vb1b2;
7331  AdmsSensFadType Vsc1;
7332  AdmsSensFadType Vc1c2;
7333  AdmsSensFadType Vee1;
7334  AdmsSensFadType Vbb1;
7335  AdmsSensFadType Vbe;
7336  AdmsSensFadType Vbc;
7337  AdmsSensFadType Vc4c1;
7338  AdmsSensFadType Vc3c4;
7339  AdmsSensFadType Vb1c4;
7340  AdmsSensFadType Vcc3;
7341  AdmsSensFadType Vbc3;
7342  AdmsSensFadType Vsc4;
7343  AdmsSensFadType Vsc3;
7344  double expl;
7345  AdmsSensFadType eVb2c2;
7346  AdmsSensFadType eVb2e1;
7347  AdmsSensFadType eVb1e1;
7348  AdmsSensFadType eVb1c4;
7349  AdmsSensFadType eVbc3;
7350  AdmsSensFadType eVsc1;
7351  AdmsSensFadType eVsc3;
7352  AdmsSensFadType eVsc4;
7353  AdmsSensFadType eVbc3VDC;
7354  AdmsSensFadType eVb1c4VDC;
7355  AdmsSensFadType eVb2c2VDC;
7356  AdmsSensFadType eVb2c1VDC;
7357  AdmsSensFadType K0;
7358  AdmsSensFadType Kw;
7359  AdmsSensFadType pW;
7360  AdmsSensFadType Ec;
7361  AdmsSensFadType Ic1c2;
7362  AdmsSensFadType pav;
7363  AdmsSensFadType tmpV;
7364  AdmsSensFadType Vqs_th;
7365  AdmsSensFadType eps_VDC;
7366  AdmsSensFadType eps2;
7367  AdmsSensFadType x2;
7368  AdmsSensFadType Vqs;
7369  AdmsSensFadType Iqs;
7370  AdmsSensFadType Ic1c2_Iqs;
7371  AdmsSensFadType alpha1;
7372  AdmsSensFadType alpha;
7373  AdmsSensFadType vyi;
7374  AdmsSensFadType yi;
7375  AdmsSensFadType xi_w;
7376  AdmsSensFadType gp0;
7377  AdmsSensFadType gp0_help;
7378  AdmsSensFadType gp02;
7379  AdmsSensFadType sqr_arg;
7380  AdmsSensFadType p0star;
7381  AdmsSensFadType eVb2c2star;
7382  AdmsSensFadType B1;
7383  AdmsSensFadType B2;
7384  AdmsSensFadType Vxi0;
7385  AdmsSensFadType Vch;
7386  AdmsSensFadType Icap;
7387  AdmsSensFadType Icap_IHC;
7388  AdmsSensFadType Vfe;
7389  AdmsSensFadType a_VDE;
7390  AdmsSensFadType Vje;
7391  AdmsSensFadType E0BE;
7392  AdmsSensFadType Vte;
7393  AdmsSensFadType Vjunc;
7394  AdmsSensFadType bjc;
7395  AdmsSensFadType Vfc;
7396  AdmsSensFadType Vjc;
7397  AdmsSensFadType fI;
7398  AdmsSensFadType Vcv;
7399  AdmsSensFadType Vtc;
7400  AdmsSensFadType If0;
7401  AdmsSensFadType f1;
7402  AdmsSensFadType n0;
7403  AdmsSensFadType f2;
7404  AdmsSensFadType nB;
7405  AdmsSensFadType termE;
7406  AdmsSensFadType termC;
7407  AdmsSensFadType q0I;
7408  AdmsSensFadType q1I;
7409  AdmsSensFadType In;
7410  AdmsSensFadType Ibf0;
7411  AdmsSensFadType tmpExp;
7412  AdmsSensFadType eZEB;
7413  AdmsSensFadType x;
7414  AdmsSensFadType dE0BE;
7415  AdmsSensFadType edZEB;
7416  AdmsSensFadType DZEB;
7417  AdmsSensFadType g1;
7418  AdmsSensFadType g2;
7419  AdmsSensFadType nBex;
7420  AdmsSensFadType pWex;
7421  AdmsSensFadType Isf;
7422  AdmsSensFadType Xg1;
7423  AdmsSensFadType XnBex;
7424  AdmsSensFadType XIMex;
7425  AdmsSensFadType XIMsub;
7426  AdmsSensFadType Vex_bias;
7427  AdmsSensFadType Vex;
7428  AdmsSensFadType vdif;
7429  AdmsSensFadType VBex;
7430  AdmsSensFadType Fex;
7431  AdmsSensFadType q0Q;
7432  AdmsSensFadType q1Q;
7433  AdmsSensFadType qBQ;
7434  AdmsSensFadType Ib1b2;
7435  AdmsSensFadType Iavl;
7436  AdmsSensFadType dEdx0;
7437  AdmsSensFadType xd;
7438  AdmsSensFadType xi_w1;
7439  AdmsSensFadType Weff;
7440  AdmsSensFadType Wd;
7441  AdmsSensFadType Eav;
7442  AdmsSensFadType E0;
7443  AdmsSensFadType SHw;
7444  AdmsSensFadType Efi;
7445  AdmsSensFadType Ew;
7446  AdmsSensFadType Em;
7447  AdmsSensFadType EmEav_Em;
7448  AdmsSensFadType lambda;
7449  AdmsSensFadType Gmax;
7450  AdmsSensFadType Vb2c2star;
7451  AdmsSensFadType power;
7452  AdmsSensFadType Qte;
7453  AdmsSensFadType Vje_s;
7454  AdmsSensFadType Qte_s;
7455  AdmsSensFadType Qtc;
7456  AdmsSensFadType Qb0;
7457  AdmsSensFadType Qbe_qs;
7458  AdmsSensFadType Qbc_qs;
7459  AdmsSensFadType a_VDC;
7460  AdmsSensFadType Vjcex;
7461  AdmsSensFadType Vtexv;
7462  AdmsSensFadType Qtex;
7463  AdmsSensFadType XVjcex;
7464  AdmsSensFadType XVtexv;
7465  AdmsSensFadType XQtex;
7466  AdmsSensFadType a_VDS;
7467  AdmsSensFadType Vfs;
7468  AdmsSensFadType Vjs;
7469  AdmsSensFadType Qts;
7470  AdmsSensFadType Qe0;
7471  AdmsSensFadType Qe;
7472  AdmsSensFadType Qepi0;
7473  AdmsSensFadType Qepi;
7474  AdmsSensFadType Qex;
7475  AdmsSensFadType XQex;
7476  AdmsSensFadType Xg2;
7477  AdmsSensFadType XpWex;
7478  AdmsSensFadType Qb1b2;
7479  AdmsSensFadType dVteVje;
7480  AdmsSensFadType Vb2e1Vfe;
7481  AdmsSensFadType dVjeVb2e1;
7482  AdmsSensFadType dVteVb2e1;
7483  AdmsSensFadType dQteVb2e1;
7484  AdmsSensFadType dn0Vb2e1;
7485  AdmsSensFadType dQbeVb2e1;
7486  AdmsSensFadType dQeVb2e1;
7487  AdmsSensFadType Qbc;
7488  AdmsSensFadType Qbe;
7489  AdmsSensFadType cor_exp_1;
7490  AdmsSensFadType cor_exp_2;
7491  AdmsSensFadType RTH_Tamb_M;
7492  AdmsSensFadType RCV_TM;
7493  AdmsSensFadType RCCin_TM;
7494  AdmsSensFadType RCCex_TM;
7495  AdmsSensFadType RCCxx_TM;
7496  AdmsSensFadType RBV_TM;
7497  AdmsSensFadType CJS_TM;
7498  AdmsSensFadType CJC_TM;
7499  AdmsSensFadType CJE_TM;
7500  AdmsSensFadType IKS_TM;
7501  AdmsSensFadType ICSS_TM;
7502  AdmsSensFadType ISS_TM;
7503  AdmsSensFadType IHC_M;
7504  AdmsSensFadType IZEB_TM;
7505  AdmsSensFadType IBR_TM;
7506  AdmsSensFadType IBF_TM;
7507  AdmsSensFadType IK_TM;
7508  AdmsSensFadType IS_TM;
7509  AdmsSensFadType RTH_Tamb;
7510  AdmsSensFadType DEG_T;
7511  AdmsSensFadType BnT;
7512  AdmsSensFadType Tk300;
7513  AdmsSensFadType TAUR_T;
7514  AdmsSensFadType TEPI_T;
7515  AdmsSensFadType TAUB_T;
7516  AdmsSensFadType TAUE_T;
7517  AdmsSensFadType IKS_T;
7518  AdmsSensFadType ICSS_T;
7519  AdmsSensFadType ISS_T;
7520  AdmsSensFadType VER_T;
7521  AdmsSensFadType VEF_T;
7522  AdmsSensFadType IZEB_T;
7523  AdmsSensFadType nZEB_T;
7524  AdmsSensFadType y;
7525  AdmsSensFadType tempx;
7526  AdmsSensFadType IBR_T;
7527  AdmsSensFadType IBF_T;
7528  AdmsSensFadType IK_T;
7529  AdmsSensFadType IS_T;
7530  AdmsSensFadType BRI_T;
7531  AdmsSensFadType BF_T;
7532  AdmsSensFadType RCV_T;
7533  AdmsSensFadType RCCin_T;
7534  AdmsSensFadType RCCex_T;
7535  AdmsSensFadType RCCxx_T;
7536  AdmsSensFadType RBC_T;
7537  AdmsSensFadType RBV_T;
7538  AdmsSensFadType RE_T;
7539  AdmsSensFadType XP_T;
7540  AdmsSensFadType CJC_T;
7541  AdmsSensFadType CJCscaleINV;
7542  AdmsSensFadType CJCscale;
7543  AdmsSensFadType CJS_T;
7544  AdmsSensFadType CJE_T;
7545  AdmsSensFadType CJE_T_div_CJE;
7546  AdmsSensFadType inv_VDE_T;
7547  AdmsSensFadType VDS_T;
7548  AdmsSensFadType UdsT;
7549  AdmsSensFadType VDC_T;
7550  AdmsSensFadType UdcT;
7551  AdmsSensFadType VDE_T;
7552  AdmsSensFadType UdeT;
7553  AdmsSensFadType VGZEB_T;
7554  AdmsSensFadType lntN;
7555  AdmsSensFadType VdtINV;
7556  AdmsSensFadType VtrINV;
7557  AdmsSensFadType VtINV;
7558  AdmsSensFadType Vtr;
7560  AdmsSensFadType tN;
7561  AdmsSensFadType Tamb;
7562  double Vdt;
7563  double Tki;
7564  AdmsSensFadType inv_VDE;
7565  AdmsSensFadType inv_VGZEB_Tr;
7566  AdmsSensFadType VGZEB_Tr;
7567  AdmsSensFadType VGZEBOK;
7568  AdmsSensFadType Trk;
7569  AdmsSensFadType pow2_PEm2;
7570  AdmsSensFadType pow2_2mPE;
7571  AdmsSensFadType SCRCV_M;
7572  AdmsSensFadType invMULT;
7573  AdmsSensFadType CBCO_M;
7574  AdmsSensFadType CBEO_M;
7575  AdmsSensFadType CTH_M;
7576  AdmsSensFadType Xext1;
7577  double Bn;
7578  double An;
7579 
7580 
7581  // -- code converted from analog/code block
7582  if ((modelPar_TYPE==1))
7583  {
7584  An = 7.03e7;
7585  Bn = 1.23e8;
7586  }
7587  else
7588  {
7589  An = 1.58e8;
7590  Bn = 2.04e8;
7591  }
7592  Xext1 = (1.0-modelPar_XEXT);
7593  CTH_M = (modelPar_CTH*instancePar_MULT);
7594  CBEO_M = (modelPar_CBEO*instancePar_MULT);
7595  CBCO_M = (modelPar_CBCO*instancePar_MULT);
7596  invMULT = (1.0/instancePar_MULT);
7597  SCRCV_M = (modelPar_SCRCV*invMULT);
7598  instanceVar_KF_M = (modelPar_KF*pow(instancePar_MULT,(1.0-modelPar_AF)));
7599  instanceVar_KFN_M = (modelPar_KFN*pow(instancePar_MULT,(1.0-((2.0*(modelPar_MLF-1.0))+(modelPar_AF*(2.0-modelPar_MLF))))));
7600  pow2_2mPE = pow(2.0,(2.0-modelPar_PE));
7601  pow2_PEm2 = (1.0/pow2_2mPE);
7602  Trk = (modelPar_TREF+273.15);
7603  {
7604  //Block-local variables for block
7605  AdmsSensFadType dxa;
7606  //End of Block-local variables
7607  dxa = (((modelPar_VGZEB+(((modelPar_AVGEB*Trk)*Trk)/(Trk+modelPar_TVGEB)))-0.05)/0.1);
7608  if (((modelPar_VGZEB+(((modelPar_AVGEB*Trk)*Trk)/(Trk+modelPar_TVGEB)))<0.05))
7609  {
7610  VGZEBOK = (0.05+(0.1*log((1.0+exp(dxa)))));
7611  }
7612  else
7613  {
7614  VGZEBOK = ((modelPar_VGZEB+(((modelPar_AVGEB*Trk)*Trk)/(Trk+modelPar_TVGEB)))+(0.1*log((1.0+exp((-dxa))))));
7615  }
7616  VGZEBOK = VGZEBOK;
7617  }
7618  VGZEB_Tr = modelPar_VGZEB;
7619  inv_VGZEB_Tr = (1.0/VGZEB_Tr);
7620  inv_VDE = (1.0/modelPar_VDE);
7621  Tki = (probeVars[admsProbeID_V_dt_GND]);
7622  if ((Tki<0.0))
7623  {
7624  Tki = (-log((1.0-Tki)));
7625  }
7626  if ((Tki<200.0))
7627  {
7628  Vdt = Tki;
7629  }
7630  else
7631  {
7632  Vdt = (200.0+log((1.0+(Tki-200.0))));
7633  }
7634  Vdt = Vdt;
7635  instanceVar_Tk = ((admsTemperature+modelPar_DTA)+Vdt);
7636  Tamb = (admsTemperature+modelPar_DTA);
7637  tN = (instanceVar_Tk/Trk);
7638  Vt = (8.61708691805812512584e-5*instanceVar_Tk);
7639  Vtr = (8.61708691805812512584e-5*Trk);
7640  VtINV = (1.0/Vt);
7641  VtrINV = (1.0/Vtr);
7642  VdtINV = (VtINV-VtrINV);
7643  lntN = log(tN);
7644  {
7645  //Block-local variables for block
7646  AdmsSensFadType dxa;
7647  //End of Block-local variables
7648  dxa = (((VGZEBOK-(((modelPar_AVGEB*instanceVar_Tk)*instanceVar_Tk)/(instanceVar_Tk+modelPar_TVGEB)))-0.05)/0.1);
7649  if (((VGZEBOK-(((modelPar_AVGEB*instanceVar_Tk)*instanceVar_Tk)/(instanceVar_Tk+modelPar_TVGEB)))<0.05))
7650  {
7651  VGZEB_T = (0.05+(0.1*log((1.0+exp(dxa)))));
7652  }
7653  else
7654  {
7655  VGZEB_T = ((VGZEBOK-(((modelPar_AVGEB*instanceVar_Tk)*instanceVar_Tk)/(instanceVar_Tk+modelPar_TVGEB)))+(0.1*log((1.0+exp((-dxa))))));
7656  }
7657  VGZEB_T = VGZEB_T;
7658  }
7659  UdeT = (((((-3.0)*Vt)*log(tN))+(modelPar_VDE*tN))+((1.0-tN)*modelPar_VGB));
7660  {
7661  //Block-local variables for block
7662  AdmsSensFadType dxa;
7663  //End of Block-local variables
7664  dxa = ((0.05-UdeT)/Vt);
7665  if ((0.05<UdeT))
7666  {
7667  VDE_T = (UdeT+(Vt*log((1.0+exp(dxa)))));
7668  }
7669  else
7670  {
7671  VDE_T = (0.05+(Vt*log((1.0+exp((-dxa))))));
7672  }
7673  VDE_T = VDE_T;
7674  }
7675  UdcT = (((((-3.0)*Vt)*log(tN))+(modelPar_VDC*tN))+((1.0-tN)*modelPar_VGC));
7676  {
7677  //Block-local variables for block
7678  AdmsSensFadType dxa;
7679  //End of Block-local variables
7680  dxa = ((0.05-UdcT)/Vt);
7681  if ((0.05<UdcT))
7682  {
7683  VDC_T = (UdcT+(Vt*log((1.0+exp(dxa)))));
7684  }
7685  else
7686  {
7687  VDC_T = (0.05+(Vt*log((1.0+exp((-dxa))))));
7688  }
7689  VDC_T = VDC_T;
7690  }
7691  UdsT = (((((-3.0)*Vt)*log(tN))+(modelPar_VDS*tN))+((1.0-tN)*modelPar_VGS));
7692  {
7693  //Block-local variables for block
7694  AdmsSensFadType dxa;
7695  //End of Block-local variables
7696  dxa = ((0.05-UdsT)/Vt);
7697  if ((0.05<UdsT))
7698  {
7699  VDS_T = (UdsT+(Vt*log((1.0+exp(dxa)))));
7700  }
7701  else
7702  {
7703  VDS_T = (0.05+(Vt*log((1.0+exp((-dxa))))));
7704  }
7705  VDS_T = VDS_T;
7706  }
7707  inv_VDE_T = (1.0/VDE_T);
7708  CJE_T_div_CJE = pow((modelPar_VDE*inv_VDE_T),modelPar_PE);
7709  CJE_T = (modelPar_CJE*CJE_T_div_CJE);
7710  CJS_T = (modelPar_CJS*pow((modelPar_VDS/VDS_T),modelPar_PS));
7711  CJCscale = (((1.0-modelPar_XP)*pow((modelPar_VDC/VDC_T),modelPar_PC))+modelPar_XP);
7712  CJCscaleINV = (1.0/CJCscale);
7713  CJC_T = (modelPar_CJC*CJCscale);
7714  XP_T = (modelPar_XP*CJCscaleINV);
7715  RE_T = (modelPar_RE*exp((lntN*modelPar_AE)));
7716  RBV_T = (modelPar_RBV*exp((lntN*(modelPar_AB-modelPar_AQBO))));
7717  RBC_T = (modelPar_RBC*exp((lntN*modelPar_AEX)));
7718  RCCxx_T = (modelPar_RCC*exp((lntN*modelPar_AC)));
7719  RCCex_T = (modelPar_RCBLX*exp((lntN*modelPar_ACBL)));
7720  RCCin_T = (modelPar_RCBLI*exp((lntN*modelPar_ACBL)));
7721  RCV_T = (modelPar_RCV*exp((lntN*modelPar_AEPI)));
7722  BF_T = ((modelPar_BF*exp((lntN*((modelPar_AE-modelPar_AB)-modelPar_AQBO))))*exp(((-modelPar_DVGBF)*VdtINV)));
7723  BRI_T = (modelPar_BRI*exp(((-modelPar_DVGBR)*VdtINV)));
7724  IS_T = ((modelPar_IS*exp((lntN*(((4.0-modelPar_AB)-modelPar_AQBO)+modelPar_DAIS))))*exp(((-modelPar_VGB)*VdtINV)));
7725  IK_T = (modelPar_IK*exp((lntN*(1.0-modelPar_AB))));
7726  IBF_T = ((modelPar_IBF*exp((lntN*(6.0-(2.0*modelPar_MLF)))))*exp((((-modelPar_VGJ)*VdtINV)/modelPar_MLF)));
7727  IBR_T = (((modelPar_IBR*tN)*tN)*exp((((-modelPar_VGC)*VdtINV)/2.0)));
7728  tempx = pow((VGZEB_T*inv_VGZEB_Tr),(-0.5));
7729  y = (1.0/CJE_T_div_CJE);
7730  nZEB_T = ((((((((modelPar_NZEB*VGZEB_T)*VGZEB_T)*tempx)*y)*modelPar_VDE)*inv_VDE_T)*inv_VGZEB_Tr)*inv_VGZEB_Tr);
7731  IZEB_T = (((((((modelPar_IZEB*tempx)*VDE_T)*VDE_T)*inv_VDE)*inv_VDE)*CJE_T_div_CJE)*exp((modelPar_NZEB-nZEB_T)));
7732  tempx = exp((lntN*modelPar_AQBO));
7733  VEF_T = ((modelPar_VEF*tempx)*CJCscaleINV);
7734  VER_T = ((modelPar_VER*tempx)*y);
7735  ISS_T = ((modelPar_ISS*exp((lntN*(4.0-modelPar_AS))))*exp(((-modelPar_VGS)*VdtINV)));
7736  ICSS_T = ((modelPar_ICSS*exp((lntN*(3.5-(0.5*modelPar_ASUB)))))*exp(((-modelPar_VGS)*VdtINV)));
7737  if ((ISS_T>0.0))
7738  {
7739  IKS_T = (((modelPar_IKS*exp((lntN*(1.0-modelPar_AS))))*(IS_T/modelPar_IS))*(modelPar_ISS/ISS_T));
7740  }
7741  else
7742  {
7743  IKS_T = (modelPar_IKS*exp((lntN*(1.0-modelPar_AS))));
7744  }
7745  TAUE_T = ((modelPar_TAUE*exp((lntN*(modelPar_AB-2.0))))*exp(((-modelPar_DVGTE)*VdtINV)));
7746  TAUB_T = (modelPar_TAUB*exp((lntN*((modelPar_AQBO+modelPar_AB)-1.0))));
7747  TEPI_T = (modelPar_TEPI*exp((lntN*(modelPar_AEPI-1.0))));
7748  TAUR_T = ((modelPar_TAUR*(TAUB_T+TEPI_T))/(modelPar_TAUB+modelPar_TEPI));
7749  Tk300 = (instanceVar_Tk-300.0);
7750  if ((instanceVar_Tk<525.0))
7751  {
7752  BnT = (Bn*((1.0+(7.2e-4*Tk300))-((1.6e-6*Tk300)*Tk300)));
7753  }
7754  else
7755  {
7756  BnT = (Bn*1.081);
7757  }
7758  DEG_T = (modelPar_DEG*exp((lntN*modelPar_AQBO)));
7759  RTH_Tamb = (modelPar_RTH*pow((Tamb/Trk),modelPar_ATH));
7760  IS_TM = (IS_T*instancePar_MULT);
7761  IK_TM = (IK_T*instancePar_MULT);
7762  IBF_TM = (IBF_T*instancePar_MULT);
7763  IBR_TM = (IBR_T*instancePar_MULT);
7764  IZEB_TM = (IZEB_T*instancePar_MULT);
7765  IHC_M = (modelPar_IHC*instancePar_MULT);
7766  ISS_TM = (ISS_T*instancePar_MULT);
7767  ICSS_TM = (ICSS_T*instancePar_MULT);
7768  IKS_TM = (IKS_T*instancePar_MULT);
7769  CJE_TM = (CJE_T*instancePar_MULT);
7770  CJC_TM = (CJC_T*instancePar_MULT);
7771  CJS_TM = (CJS_T*instancePar_MULT);
7772  instanceVar_RE_TM = (RE_T*invMULT);
7773  instanceVar_RBC_TM = (RBC_T*invMULT);
7774  RBV_TM = (RBV_T*invMULT);
7775  RCCxx_TM = (RCCxx_T*invMULT);
7776  RCCex_TM = (RCCex_T*invMULT);
7777  RCCin_TM = (RCCin_T*invMULT);
7778  RCV_TM = (RCV_T*invMULT);
7779  if ((modelPar_RCC>0.0))
7780  {
7781  instanceVar_GCCxx_TM = (1.0/RCCxx_TM);
7782  }
7783  else
7784  {
7785  instanceVar_GCCxx_TM = 0;
7786  }
7787  if ((modelPar_RCBLX>0.0))
7788  {
7789  instanceVar_GCCex_TM = (1.0/RCCex_TM);
7790  }
7791  else
7792  {
7793  instanceVar_GCCex_TM = 0;
7794  }
7795  if ((modelPar_RCBLI>0.0))
7796  {
7797  instanceVar_GCCin_TM = (1.0/RCCin_TM);
7798  }
7799  else
7800  {
7801  instanceVar_GCCin_TM = 0;
7802  }
7803  RTH_Tamb_M = (RTH_Tamb*invMULT);
7804  {
7805  Vb2c1 = probeVars[admsProbeID_V_b2_c1];
7806 
7807  Vb2c2 = probeVars[admsProbeID_V_b2_c2];
7808 
7809  Vb2e1 = (modelPar_TYPE*(probeVars[admsProbeID_V_b2_e1]));
7810  Vb1e1 = probeVars[admsProbeID_V_b1_e1];
7811 
7812  Vb1b2 = probeVars[admsProbeID_V_b1_b2];
7813 
7814  Vsc1 = (modelPar_TYPE*(probeVars[admsProbeID_V_s_c1]));
7815  Vc1c2 = (modelPar_TYPE*(probeVars[admsProbeID_V_c1_c2]));
7816  Vee1 = (modelPar_TYPE*(probeVars[admsProbeID_V_e_e1]));
7817  Vbb1 = (modelPar_TYPE*(probeVars[admsProbeID_V_b_b1]));
7818  Vbe = (modelPar_TYPE*(probeVars[admsProbeID_V_b_e]));
7819  Vbc = (modelPar_TYPE*(probeVars[admsProbeID_V_b_c]));
7820  if ((modelPar_RCBLX>0.0))
7821  {
7822  if ((modelPar_RCBLI>0.0))
7823  {
7824  Vc4c1 = (modelPar_TYPE*(probeVars[admsProbeID_V_c4_c1]));
7825  Vc3c4 = (modelPar_TYPE*(probeVars[admsProbeID_V_c3_c4]));
7826  }
7827  else
7828  {
7829  Vc4c1 = 0;
7830  Vc3c4 = (modelPar_TYPE*(probeVars[admsProbeID_V_c3_c1]));
7831  }
7832  }
7833  else
7834  {
7835  if ((modelPar_RCBLI>0.0))
7836  {
7837  Vc4c1 = (modelPar_TYPE*(probeVars[admsProbeID_V_c4_c1]));
7838  Vc3c4 = 0;
7839  }
7840  else
7841  {
7842  Vc4c1 = 0;
7843  Vc3c4 = 0;
7844  }
7845  }
7846  Vb1c4 = (((Vb1b2+Vb2c2)-Vc1c2)-Vc4c1);
7847  Vcc3 = ((((-Vbc)+Vbb1)+Vb1c4)-Vc3c4);
7848  Vbc3 = (Vbc+Vcc3);
7849  Vsc4 = (Vsc1-Vc4c1);
7850  Vsc3 = (Vsc4-Vc3c4);
7851  if (((Vb2c2*VtINV)<400.0))
7852  {
7853  eVb2c2 = exp((Vb2c2*VtINV));
7854  }
7855  else
7856  {
7857  expl = exp(400.0);
7858  eVb2c2 = (expl*(1.0+((Vb2c2*VtINV)-400.0)));
7859  }
7860  if (((Vb2e1*VtINV)<400.0))
7861  {
7862  eVb2e1 = exp((Vb2e1*VtINV));
7863  }
7864  else
7865  {
7866  expl = exp(400.0);
7867  eVb2e1 = (expl*(1.0+((Vb2e1*VtINV)-400.0)));
7868  }
7869  if (((Vb1e1*VtINV)<400.0))
7870  {
7871  eVb1e1 = exp((Vb1e1*VtINV));
7872  }
7873  else
7874  {
7875  expl = exp(400.0);
7876  eVb1e1 = (expl*(1.0+((Vb1e1*VtINV)-400.0)));
7877  }
7878  if (((Vb1c4*VtINV)<400.0))
7879  {
7880  eVb1c4 = exp((Vb1c4*VtINV));
7881  }
7882  else
7883  {
7884  expl = exp(400.0);
7885  eVb1c4 = (expl*(1.0+((Vb1c4*VtINV)-400.0)));
7886  }
7887  if (((Vb1b2*VtINV)<400.0))
7888  {
7889  instanceVar_eVb1b2 = exp((Vb1b2*VtINV));
7890  }
7891  else
7892  {
7893  expl = exp(400.0);
7894  instanceVar_eVb1b2 = (expl*(1.0+((Vb1b2*VtINV)-400.0)));
7895  }
7896  if (((Vbc3*VtINV)<400.0))
7897  {
7898  eVbc3 = exp((Vbc3*VtINV));
7899  }
7900  else
7901  {
7902  expl = exp(400.0);
7903  eVbc3 = (expl*(1.0+((Vbc3*VtINV)-400.0)));
7904  }
7905  if (((Vsc1*VtINV)<400.0))
7906  {
7907  eVsc1 = exp((Vsc1*VtINV));
7908  }
7909  else
7910  {
7911  expl = exp(400.0);
7912  eVsc1 = (expl*(1.0+((Vsc1*VtINV)-400.0)));
7913  }
7914  if (((Vsc3*VtINV)<400.0))
7915  {
7916  eVsc3 = exp((Vsc3*VtINV));
7917  }
7918  else
7919  {
7920  expl = exp(400.0);
7921  eVsc3 = (expl*(1.0+((Vsc3*VtINV)-400.0)));
7922  }
7923  if (((Vsc4*VtINV)<400.0))
7924  {
7925  eVsc4 = exp((Vsc4*VtINV));
7926  }
7927  else
7928  {
7929  expl = exp(400.0);
7930  eVsc4 = (expl*(1.0+((Vsc4*VtINV)-400.0)));
7931  }
7932  if ((((Vbc3-VDC_T)*VtINV)<400.0))
7933  {
7934  eVbc3VDC = exp(((Vbc3-VDC_T)*VtINV));
7935  }
7936  else
7937  {
7938  expl = exp(400.0);
7939  eVbc3VDC = (expl*(1.0+(((Vbc3-VDC_T)*VtINV)-400.0)));
7940  }
7941  if ((((Vb1c4-VDC_T)*VtINV)<400.0))
7942  {
7943  eVb1c4VDC = exp(((Vb1c4-VDC_T)*VtINV));
7944  }
7945  else
7946  {
7947  expl = exp(400.0);
7948  eVb1c4VDC = (expl*(1.0+(((Vb1c4-VDC_T)*VtINV)-400.0)));
7949  }
7950  if ((((Vb2c2-VDC_T)*VtINV)<400.0))
7951  {
7952  eVb2c2VDC = exp(((Vb2c2-VDC_T)*VtINV));
7953  }
7954  else
7955  {
7956  expl = exp(400.0);
7957  eVb2c2VDC = (expl*(1.0+(((Vb2c2-VDC_T)*VtINV)-400.0)));
7958  }
7959  if ((((Vb2c1-VDC_T)*VtINV)<400.0))
7960  {
7961  eVb2c1VDC = exp(((Vb2c1-VDC_T)*VtINV));
7962  }
7963  else
7964  {
7965  expl = exp(400.0);
7966  eVb2c1VDC = (expl*(1.0+(((Vb2c1-VDC_T)*VtINV)-400.0)));
7967  }
7968  K0 = sqrt((1.0+(4.0*eVb2c2VDC)));
7969  Kw = sqrt((1.0+(4.0*eVb2c1VDC)));
7970  pW = ((2.0*eVb2c1VDC)/(1.0+Kw));
7971  if ((pW<1.0e-40))
7972  {
7973  pW = 0;
7974  }
7975  Ec = (Vt*((K0-Kw)-log(((K0+1.0)/(Kw+1.0)))));
7976  Ic1c2 = ((Ec+Vc1c2)/RCV_TM);
7977  if ((Ic1c2>0.0))
7978  {
7979  if ((Vb2c1<100.0))
7980  {
7981  tmpV = Vb2c1;
7982  }
7983  else
7984  {
7985  tmpV = (100.0+log((1.0+(Vb2c1-100.0))));
7986  }
7987  tmpV = tmpV;
7988  Vqs_th = ((VDC_T+((2.0*Vt)*log(((((0.5*Ic1c2)*RCV_TM)*VtINV)+1.0))))-tmpV);
7989  eps_VDC = (0.2*VDC_T);
7990  eps2 = (eps_VDC*eps_VDC);
7991  x2 = (Vqs_th*Vqs_th);
7992  if ((Vqs_th<0.0))
7993  {
7994  Vqs = ((0.5*eps2)/(sqrt((x2+eps2))-Vqs_th));
7995  }
7996  else
7997  {
7998  Vqs = (0.5*(sqrt((x2+eps2))+Vqs_th));
7999  }
8000  Vqs = Vqs;
8001  Iqs = ((Vqs*(Vqs+(IHC_M*SCRCV_M)))/(SCRCV_M*(Vqs+(IHC_M*RCV_TM))));
8002  Ic1c2_Iqs = (Ic1c2/Iqs);
8003  {
8004  //Block-local variables for block
8005  AdmsSensFadType dxa;
8006  //End of Block-local variables
8007  dxa = ((Ic1c2_Iqs-1.0)/modelPar_AXI);
8008  if ((Ic1c2_Iqs<1.0))
8009  {
8010  alpha1 = (1.0+(modelPar_AXI*log((1.0+exp(dxa)))));
8011  }
8012  else
8013  {
8014  alpha1 = (Ic1c2_Iqs+(modelPar_AXI*log((1.0+exp((-dxa))))));
8015  }
8016  alpha1 = alpha1;
8017  }
8018  alpha = (alpha1/(1.0+(modelPar_AXI*log((1.0+exp(((-1.0)/modelPar_AXI)))))));
8019  vyi = (Vqs/(IHC_M*SCRCV_M));
8020  yi = ((1.0+sqrt((1.0+(((4.0*alpha)*vyi)*(1.0+vyi)))))/((2.0*alpha)*(1.0+vyi)));
8021  xi_w = (1.0-(yi/(1.0+(pW*yi))));
8022  gp0 = ((((0.5*Ic1c2)*RCV_TM)*xi_w)*VtINV);
8023  gp0_help = ((2.0*gp0)+(pW*((pW+gp0)+1.0)));
8024  gp02 = (0.5*(gp0-1.0));
8025  sqr_arg = ((gp02*gp02)+gp0_help);
8026  if ((gp0>=1.0))
8027  {
8028  p0star = (gp02+sqrt(sqr_arg));
8029  }
8030  else
8031  {
8032  p0star = (gp0_help/(sqrt(sqr_arg)-gp02));
8033  }
8034  if ((p0star<1.0e-40))
8035  {
8036  p0star = 0.0;
8037  }
8038  eVb2c2star = ((p0star*(p0star+1.0))*exp((VDC_T*VtINV)));
8039  B1 = ((0.5*SCRCV_M)*(Ic1c2-IHC_M));
8040  B2 = (((SCRCV_M*RCV_TM)*IHC_M)*Ic1c2);
8041  Vxi0 = (B1+sqrt(((B1*B1)+B2)));
8042  Vch = (VDC_T*(0.1+((2.0*Ic1c2)/(Ic1c2+Iqs))));
8043  Icap = ((IHC_M*Ic1c2)/(IHC_M+Ic1c2));
8044  Icap_IHC = (IHC_M/(IHC_M+Ic1c2));
8045  }
8046  else
8047  {
8048  Iqs = 0.0;
8049  p0star = ((2.0*eVb2c2VDC)/(1.0+K0));
8050  eVb2c2star = eVb2c2;
8051  if (((fabs(Vc1c2)<(1.0e-5*Vt))||(fabs(Ec)<((1.0e-40*Vt)*(K0+Kw)))))
8052  {
8053  pav = (0.5*(p0star+pW));
8054  xi_w = (pav/(pav+1.0));
8055  }
8056  else
8057  {
8058  xi_w = (Ec/((Ec+Vb2c2)-Vb2c1));
8059  }
8060  Vxi0 = Vc1c2;
8061  Vch = (0.1*VDC_T);
8062  Icap = Ic1c2;
8063  Icap_IHC = (1.0-(Icap/IHC_M));
8064  }
8065  Vfe = (VDE_T*(1.0-pow(3.0,((-1.0)/modelPar_PE))));
8066  a_VDE = (0.1*VDE_T);
8067  {
8068  //Block-local variables for block
8069  AdmsSensFadType dxa;
8070  //End of Block-local variables
8071  dxa = ((Vb2e1-Vfe)/a_VDE);
8072  if ((Vb2e1<Vfe))
8073  {
8074  Vje = (Vb2e1-(a_VDE*log((1.0+exp(dxa)))));
8075  }
8076  else
8077  {
8078  Vje = (Vfe-(a_VDE*log((1.0+exp((-dxa))))));
8079  }
8080  Vje = Vje;
8081  }
8082  E0BE = pow((1.0-(Vje*inv_VDE_T)),(1.0-modelPar_PE));
8083  Vte = (((VDE_T/(1.0-modelPar_PE))*(1.0-E0BE))+(3.0*(Vb2e1-Vje)));
8084  Vjunc = (Vb2c1+Vxi0);
8085  bjc = ((2.0-XP_T)/(1.0-XP_T));
8086  Vfc = (VDC_T*(1.0-pow(bjc,((-1.0)/modelPar_PC))));
8087  {
8088  //Block-local variables for block
8089  AdmsSensFadType dxa;
8090  //End of Block-local variables
8091  dxa = ((Vjunc-Vfc)/Vch);
8092  if ((Vjunc<Vfc))
8093  {
8094  Vjc = (Vjunc-(Vch*log((1.0+exp(dxa)))));
8095  }
8096  else
8097  {
8098  Vjc = (Vfc-(Vch*log((1.0+exp((-dxa))))));
8099  }
8100  Vjc = Vjc;
8101  }
8102  fI = pow(Icap_IHC,modelPar_MC);
8103  Vcv = (((VDC_T/(1.0-modelPar_PC))*(1.0-(fI*pow((1.0-(Vjc/VDC_T)),(1.0-modelPar_PC)))))+((fI*bjc)*(Vjunc-Vjc)));
8104  Vtc = (((1.0-XP_T)*Vcv)+(XP_T*Vb2c1));
8105  If0 = ((4.0*IS_TM)/IK_TM);
8106  f1 = (If0*eVb2e1);
8107  n0 = (f1/(1.0+sqrt((1.0+f1))));
8108  f2 = (If0*eVb2c2star);
8109  nB = (f2/(1.0+sqrt((1.0+f2))));
8110  if ((modelPar_DEG==0.0))
8111  {
8112  q0I = ((1.0+(Vte/VER_T))+(Vtc/VEF_T));
8113  }
8114  else
8115  {
8116  termE = ((((Vte/VER_T)+1.0)*DEG_T)*VtINV);
8117  termC = ((((-Vtc)/VEF_T)*DEG_T)*VtINV);
8118  q0I = ((exp(termE)-exp(termC))/(exp((DEG_T*VtINV))-1.0));
8119  }
8120  eps2 = (0.1*0.1);
8121  x2 = (q0I*q0I);
8122  if ((q0I<0.0))
8123  {
8124  q1I = ((0.5*eps2)/(sqrt((x2+eps2))-q0I));
8125  }
8126  else
8127  {
8128  q1I = (0.5*(sqrt((x2+eps2))+q0I));
8129  }
8130  q1I = q1I;
8131  instanceVar_qBI = (q1I*(1.0+(0.5*(n0+nB))));
8132  instanceVar_Ir = (IS_TM*eVb2c2star);
8133  instanceVar_If = (IS_TM*eVb2e1);
8134  In = ((instanceVar_If-instanceVar_Ir)/instanceVar_qBI);
8135  Ibf0 = (IS_TM/BF_T);
8136  if ((modelPar_XREC==0.0))
8137  {
8138  instanceVar_Ib1 = (((1.0-modelPar_XIBI)*Ibf0)*(eVb2e1-1.0));
8139  }
8140  else
8141  {
8142  instanceVar_Ib1 = (((1.0-modelPar_XIBI)*Ibf0)*(((1.0-modelPar_XREC)*(eVb2e1-1.0))+((modelPar_XREC*((eVb2e1+eVb2c2star)-2.0))*(1.0+(Vtc/VEF_T)))));
8143  }
8144  instanceVar_Ib1_s = ((modelPar_XIBI*Ibf0)*(eVb1e1-1.0));
8145  if ((((Vb2e1*VtINV)/modelPar_MLF)<400.0))
8146  {
8147  tmpExp = exp(((Vb2e1*VtINV)/modelPar_MLF));
8148  }
8149  else
8150  {
8151  expl = exp(400.0);
8152  tmpExp = (expl*(1.0+(((Vb2e1*VtINV)/modelPar_MLF)-400.0)));
8153  }
8154  instanceVar_Ib2 = ((IBF_TM*(tmpExp-1.0))+(modelPar_GMIN*Vb2e1));
8155  if ((((0.5*Vb1c4)*VtINV)<400.0))
8156  {
8157  tmpExp = exp(((0.5*Vb1c4)*VtINV));
8158  }
8159  else
8160  {
8161  expl = exp(400.0);
8162  tmpExp = (expl*(1.0+(((0.5*Vb1c4)*VtINV)-400.0)));
8163  }
8164  instanceVar_Ib3 = (((IBR_TM*(eVb1c4-1.0))/(tmpExp+exp(((0.5*modelPar_VLR)*VtINV))))+(modelPar_GMIN*Vb1c4));
8165  if ((((modelPar_IZEB>0.0)&&(modelPar_NZEB>0.0))&&(Vb2e1<0)))
8166  {
8167  if (((nZEB_T*(1-(pow2_2mPE/(2.0*E0BE))))<400.0))
8168  {
8169  eZEB = exp((nZEB_T*(1-(pow2_2mPE/(2.0*E0BE)))));
8170  }
8171  else
8172  {
8173  expl = exp(400.0);
8174  eZEB = (expl*(1.0+((nZEB_T*(1-(pow2_2mPE/(2.0*E0BE))))-400.0)));
8175  }
8176  x = (Vb2e1*inv_VDE_T);
8177  dE0BE = ((pow((-x),((-2.0)-modelPar_PE))*((modelPar_PE*((1-(modelPar_PE*modelPar_PE))-((3*x)*(modelPar_PE-1))))-(((6*x)*x)*((modelPar_PE-1)+x))))*0.16666666666666666667);
8178  if (((((Vb2e1*pow2_2mPE)*nZEB_T)/(VGZEB_T*dE0BE))<400.0))
8179  {
8180  edZEB = exp((((Vb2e1*pow2_2mPE)*nZEB_T)/(VGZEB_T*dE0BE)));
8181  }
8182  else
8183  {
8184  expl = exp(400.0);
8185  edZEB = (expl*(1.0+((((Vb2e1*pow2_2mPE)*nZEB_T)/(VGZEB_T*dE0BE))-400.0)));
8186  }
8187  DZEB = ((-Vb2e1)-(((VGZEB_T*dE0BE)*(1-edZEB))/(pow2_2mPE*nZEB_T)));
8188  instanceVar_Izteb = ((((((2.0*IZEB_TM)*DZEB)*E0BE)*eZEB)*inv_VDE_T)*pow2_PEm2);
8189  }
8190  else
8191  {
8192  DZEB = 0;
8193  instanceVar_Izteb = 0;
8194  }
8195  g1 = (If0*eVb1c4);
8196  g2 = (4.0*eVb1c4VDC);
8197  nBex = ((g1-If0)/(1.0+sqrt((1.0+g1))));
8198  pWex = (g2/(1.0+sqrt((1.0+g2))));
8199  instanceVar_Iex = ((IK_TM*nBex)/(2.0*BRI_T));
8200  if ((modelPar_EXSUB==1.0))
8201  {
8202  instanceVar_Isub = (((2.0*ISS_TM)*(eVb1c4-eVsc4))/(1.0+sqrt((1.0+((4.0*(IS_TM/IKS_TM))*eVb1c4)))));
8203  }
8204  else
8205  {
8206  instanceVar_Isub = (((2.0*ISS_TM)*(eVb1c4-1.0))/(1.0+sqrt((1.0+((4.0*(IS_TM/IKS_TM))*eVb1c4)))));
8207  }
8208  if ((modelPar_ICSS<0.0))
8209  {
8210  Isf = (ISS_TM*(eVsc1-1.0));
8211  }
8212  else
8213  {
8214  Isf = (ICSS_TM*(eVsc1-1.0));
8215  }
8216  instanceVar_XIex = 0.0;
8217  instanceVar_XIsub = 0.0;
8218  if (((modelPar_EXMOD==1)||(modelPar_EXMOD==2)))
8219  {
8220  instanceVar_Iex = (instanceVar_Iex*Xext1);
8221  instanceVar_Isub = (instanceVar_Isub*Xext1);
8222  Xg1 = (If0*eVbc3);
8223  XnBex = ((Xg1-If0)/(1.0+sqrt((1.0+Xg1))));
8224  XIMex = ((((modelPar_XEXT*0.5)*IK_TM)*XnBex)/BRI_T);
8225  if ((modelPar_EXSUB==1.0))
8226  {
8227  XIMsub = ((((modelPar_XEXT*2.0)*ISS_TM)*(eVbc3-eVsc3))/(1.0+sqrt((1.0+(((4.0*IS_T)/IKS_T)*eVbc3)))));
8228  }
8229  else
8230  {
8231  XIMsub = ((((modelPar_XEXT*2.0)*ISS_TM)*(eVbc3-1.0))/(1.0+sqrt((1.0+(((4.0*IS_T)/IKS_T)*eVbc3)))));
8232  }
8233  if ((modelPar_EXMOD==1))
8234  {
8235  Vex_bias = ((modelPar_XEXT*((IS_TM/BRI_T)+ISS_TM))*RCCxx_TM);
8236  Vex = (Vt*(2.0-log((Vex_bias*VtINV))));
8237  vdif = (Vbc3-Vex);
8238  eps2 = (0.11*0.11);
8239  x2 = (vdif*vdif);
8240  if ((vdif<0.0))
8241  {
8242  VBex = ((0.5*eps2)/(sqrt((x2+eps2))-vdif));
8243  }
8244  else
8245  {
8246  VBex = (0.5*(sqrt((x2+eps2))+vdif));
8247  }
8248  VBex = VBex;
8249  Fex = (VBex/((Vex_bias+((XIMex+XIMsub)*RCCxx_TM))+VBex));
8250  }
8251  else
8252  {
8253  Vex = 0.0;
8254  vdif = 0.0;
8255  VBex = 0.0;
8256  Fex = 1.0;
8257  }
8258  instanceVar_XIex = (Fex*XIMex);
8259  instanceVar_XIsub = (Fex*XIMsub);
8260  }
8261  else
8262  {
8263  Fex = 0;
8264  XnBex = 0;
8265  }
8266  q0Q = ((1.0+(Vte/VER_T))+(Vtc/VEF_T));
8267  eps2 = (0.1*0.1);
8268  x2 = (q0Q*q0Q);
8269  if ((q0Q<0.0))
8270  {
8271  q1Q = ((0.5*eps2)/(sqrt((x2+eps2))-q0Q));
8272  }
8273  else
8274  {
8275  q1Q = (0.5*(sqrt((x2+eps2))+q0Q));
8276  }
8277  q1Q = q1Q;
8278  qBQ = (q1Q*(1.0+(0.5*(n0+nB))));
8279  instanceVar_Rb2 = ((3.0*RBV_TM)/qBQ);
8280  Ib1b2 = ((((2.0*Vt)*(instanceVar_eVb1b2-1.0))+Vb1b2)/instanceVar_Rb2);
8281  Iavl = 0.0;
8282  instanceVar_Gem = 0.0;
8283  if (((Ic1c2>0.0)&&(Vb2c1<VDC_T)))
8284  {
8285  dEdx0 = ((2.0*modelPar_VAVL)/(modelPar_WAVL*modelPar_WAVL));
8286  sqr_arg = ((VDC_T-Vb2c1)/Icap_IHC);
8287  xd = sqrt(((2.0*sqr_arg)/dEdx0));
8288  if ((modelPar_EXAVL==0.0))
8289  {
8290  Weff = modelPar_WAVL;
8291  }
8292  else
8293  {
8294  xi_w1 = (1.0-(0.5*xi_w));
8295  Weff = ((modelPar_WAVL*xi_w1)*xi_w1);
8296  }
8297  Wd = ((xd*Weff)/sqrt(((xd*xd)+(Weff*Weff))));
8298  Eav = ((VDC_T-Vb2c1)/Wd);
8299  E0 = (Eav+(((0.5*Wd)*dEdx0)*Icap_IHC));
8300  if ((modelPar_EXAVL==0))
8301  {
8302  Em = E0;
8303  }
8304  else
8305  {
8306  SHw = (1.0+((2.0*modelPar_SFH)*(1.0+(2.0*xi_w))));
8307  Efi = ((1.0+modelPar_SFH)/(1.0+(2.0*modelPar_SFH)));
8308  Ew = (Eav-(((0.5*Wd)*dEdx0)*(Efi-(Ic1c2/(IHC_M*SHw)))));
8309  sqr_arg = (((Ew-E0)*(Ew-E0))+((((0.1*Eav)*Eav)*Icap)/IHC_M));
8310  Em = (0.5*((Ew+E0)+sqrt(sqr_arg)));
8311  }
8312  EmEav_Em = ((Em-Eav)/Em);
8313  if ((fabs(EmEav_Em)>1.0e-7))
8314  {
8315  lambda = ((0.5*Wd)/EmEav_Em);
8316  instanceVar_Gem = ((((An/BnT)*Em)*lambda)*(exp(((-BnT)/Em))-exp((((-BnT)/Em)*(1.0+(Weff/lambda))))));
8317  }
8318  else
8319  {
8320  instanceVar_Gem = ((An*Weff)*exp(((-BnT)/Em)));
8321  }
8322  Gmax = (((Vt/(Ic1c2*(instanceVar_RBC_TM+instanceVar_Rb2)))+(instanceVar_qBI/BF_T))+(instanceVar_RE_TM/(instanceVar_RBC_TM+instanceVar_Rb2)));
8323  Iavl = ((Ic1c2*instanceVar_Gem)/((instanceVar_Gem+(instanceVar_Gem/Gmax))+1.0));
8324  }
8325  if ((eVb2c2star>0.0))
8326  {
8327  Vb2c2star = (Vt*log(eVb2c2star));
8328  }
8329  else
8330  {
8331  Vb2c2star = Vb2c2;
8332  }
8333  power = ((((((((((((((((In*(Vb2e1-Vb2c2star))+(Ic1c2*(Vb2c2star-Vb2c1)))-(Iavl*Vb2c2star))+((Vee1*Vee1)/instanceVar_RE_TM))+((Vcc3*Vcc3)*instanceVar_GCCxx_TM))+((Vc3c4*Vc3c4)*instanceVar_GCCex_TM))+((Vc4c1*Vc4c1)*instanceVar_GCCin_TM))+((Vbb1*Vbb1)/instanceVar_RBC_TM))+(Ib1b2*Vb1b2))+(((instanceVar_Ib1+instanceVar_Ib2)-instanceVar_Izteb)*Vb2e1))+(instanceVar_Ib1_s*Vb1e1))+((instanceVar_Iex+instanceVar_Ib3)*Vb1c4))+(instanceVar_XIex*Vbc3))+(instanceVar_Isub*(Vb1c4-Vsc4)))+(instanceVar_XIsub*(Vbc3-Vsc3)))+(Isf*Vsc1));
8334  Qte = (((1.0-modelPar_XCJE)*CJE_TM)*Vte);
8335  {
8336  //Block-local variables for block
8337  AdmsSensFadType dxa;
8338  //End of Block-local variables
8339  dxa = ((Vb1e1-Vfe)/a_VDE);
8340  if ((Vb1e1<Vfe))
8341  {
8342  Vje_s = (Vb1e1-(a_VDE*log((1.0+exp(dxa)))));
8343  }
8344  else
8345  {
8346  Vje_s = (Vfe-(a_VDE*log((1.0+exp((-dxa))))));
8347  }
8348  Vje_s = Vje_s;
8349  }
8350  Qte_s = ((modelPar_XCJE*CJE_TM)*(((VDE_T/(1.0-modelPar_PE))*(1.0-pow((1.0-(Vje_s*inv_VDE_T)),(1.0-modelPar_PE))))+(3.0*(Vb1e1-Vje_s))));
8351  Qtc = ((modelPar_XCJC*CJC_TM)*Vtc);
8352  Qb0 = (TAUB_T*IK_TM);
8353  Qbe_qs = (((0.5*Qb0)*n0)*q1Q);
8354  Qbc_qs = (((0.5*Qb0)*nB)*q1Q);
8355  a_VDC = (0.1*VDC_T);
8356  {
8357  //Block-local variables for block
8358  AdmsSensFadType dxa;
8359  //End of Block-local variables
8360  dxa = ((Vb1c4-Vfc)/a_VDC);
8361  if ((Vb1c4<Vfc))
8362  {
8363  Vjcex = (Vb1c4-(a_VDC*log((1.0+exp(dxa)))));
8364  }
8365  else
8366  {
8367  Vjcex = (Vfc-(a_VDC*log((1.0+exp((-dxa))))));
8368  }
8369  Vjcex = Vjcex;
8370  }
8371  Vtexv = (((VDC_T/(1.0-modelPar_PC))*(1.0-pow((1.0-(Vjcex/VDC_T)),(1.0-modelPar_PC))))+(bjc*(Vb1c4-Vjcex)));
8372  Qtex = (((CJC_TM*(((1.0-XP_T)*Vtexv)+(XP_T*Vb1c4)))*(1.0-modelPar_XCJC))*(1.0-modelPar_XEXT));
8373  {
8374  //Block-local variables for block
8375  AdmsSensFadType dxa;
8376  //End of Block-local variables
8377  dxa = ((Vbc3-Vfc)/a_VDC);
8378  if ((Vbc3<Vfc))
8379  {
8380  XVjcex = (Vbc3-(a_VDC*log((1.0+exp(dxa)))));
8381  }
8382  else
8383  {
8384  XVjcex = (Vfc-(a_VDC*log((1.0+exp((-dxa))))));
8385  }
8386  XVjcex = XVjcex;
8387  }
8388  XVtexv = (((VDC_T/(1.0-modelPar_PC))*(1.0-pow((1.0-(XVjcex/VDC_T)),(1.0-modelPar_PC))))+(bjc*(Vbc3-XVjcex)));
8389  XQtex = (((CJC_TM*(((1.0-XP_T)*XVtexv)+(XP_T*Vbc3)))*(1.0-modelPar_XCJC))*modelPar_XEXT);
8390  a_VDS = (0.1*VDS_T);
8391  Vfs = (VDS_T*(1.0-pow(2.0,((-1.0)/modelPar_PS))));
8392  {
8393  //Block-local variables for block
8394  AdmsSensFadType dxa;
8395  //End of Block-local variables
8396  dxa = ((Vsc1-Vfs)/a_VDS);
8397  if ((Vsc1<Vfs))
8398  {
8399  Vjs = (Vsc1-(a_VDS*log((1.0+exp(dxa)))));
8400  }
8401  else
8402  {
8403  Vjs = (Vfs-(a_VDS*log((1.0+exp((-dxa))))));
8404  }
8405  Vjs = Vjs;
8406  }
8407  Qts = (CJS_TM*(((VDS_T/(1.0-modelPar_PS))*(1.0-pow((1.0-(Vjs/VDS_T)),(1.0-modelPar_PS))))+(2.0*(Vsc1-Vjs))));
8408  Qe0 = ((TAUE_T*IK_TM)*pow((IS_TM/IK_TM),(1.0/modelPar_MTAU)));
8409  if (((Vb2e1/(modelPar_MTAU*Vt))<400.0))
8410  {
8411  tmpExp = exp((Vb2e1/(modelPar_MTAU*Vt)));
8412  }
8413  else
8414  {
8415  expl = exp(400.0);
8416  tmpExp = (expl*(1.0+((Vb2e1/(modelPar_MTAU*Vt))-400.0)));
8417  }
8418  Qe = (Qe0*(tmpExp-1.0));
8419  Qepi0 = (((4.0*TEPI_T)*Vt)/RCV_TM);
8420  Qepi = (((0.5*Qepi0)*xi_w)*((p0star+pW)+2.0));
8421  Qex = (((TAUR_T*0.5)*((Qb0*nBex)+(Qepi0*pWex)))/(TAUB_T+TEPI_T));
8422  XQex = 0.0;
8423  if ((modelPar_EXMOD==1))
8424  {
8425  Qex = (Qex*(1.0-modelPar_XEXT));
8426  Xg2 = (4.0*eVbc3VDC);
8427  XpWex = (Xg2/(1.0+sqrt((1.0+Xg2))));
8428  XQex = (((((0.5*Fex)*modelPar_XEXT)*TAUR_T)*((Qb0*XnBex)+(Qepi0*XpWex)))/(TAUB_T+TEPI_T));
8429  }
8430  Qb1b2 = 0.0;
8431  if ((modelPar_EXPHI==1))
8432  {
8433  dVteVje = (pow((1.0-(Vje*inv_VDE_T)),(-modelPar_PE))-3.0);
8434  Vb2e1Vfe = ((Vb2e1-Vfe)/a_VDE);
8435  if ((Vb2e1Vfe<0.0))
8436  {
8437  dVjeVb2e1 = (1.0/(1.0+exp(Vb2e1Vfe)));
8438  }
8439  else
8440  {
8441  dVjeVb2e1 = (exp((-Vb2e1Vfe))/(1.0+exp((-Vb2e1Vfe))));
8442  }
8443  dVteVb2e1 = ((dVteVje*dVjeVb2e1)+3.0);
8444  dQteVb2e1 = (((1.0-modelPar_XCJE)*CJE_TM)*dVteVb2e1);
8445  dn0Vb2e1 = (((If0*eVb2e1)*VtINV)*(0.5/sqrt((1.0+f1))));
8446  dQbeVb2e1 = (((0.5*Qb0)*q1Q)*dn0Vb2e1);
8447  dQeVb2e1 = ((Qe+Qe0)/(modelPar_MTAU*Vt));
8448  Qb1b2 = ((0.2*Vb1b2)*((dQteVb2e1+dQbeVb2e1)+dQeVb2e1));
8449  Qbc = ((Qbe_qs*0.33333333333333333333)+Qbc_qs);
8450  Qbe = ((2.0*Qbe_qs)*0.33333333333333333333);
8451  }
8452  else
8453  {
8454  Qbe = Qbe_qs;
8455  Qbc = Qbc_qs;
8456  }
8457  // I(c1,c2) <+ ((TYPE*Ic1c2))
8458  staticContributions[admsNodeID_c1] += (modelPar_TYPE*Ic1c2);
8459  staticContributions[admsNodeID_c2] -= (modelPar_TYPE*Ic1c2);
8460  // I(c2,e1) <+ ((TYPE*In))
8461  staticContributions[admsNodeID_c2] += (modelPar_TYPE*In);
8462  staticContributions[admsNodeID_e1] -= (modelPar_TYPE*In);
8463  // I(b1,e1) <+ ((TYPE*Ib1_s))
8464  staticContributions[admsNodeID_b1] += (modelPar_TYPE*instanceVar_Ib1_s);
8465  staticContributions[admsNodeID_e1] -= (modelPar_TYPE*instanceVar_Ib1_s);
8466  // I(b2,e1) <+ ((TYPE*((Ib1+Ib2)-Izteb)))
8467  staticContributions[admsNodeID_b2] += (modelPar_TYPE*((instanceVar_Ib1+instanceVar_Ib2)-instanceVar_Izteb));
8468  staticContributions[admsNodeID_e1] -= (modelPar_TYPE*((instanceVar_Ib1+instanceVar_Ib2)-instanceVar_Izteb));
8469  // I(b1,s) <+ ((TYPE*Isub))
8470  staticContributions[admsNodeID_b1] += (modelPar_TYPE*instanceVar_Isub);
8471  staticContributions[admsNodeID_s] -= (modelPar_TYPE*instanceVar_Isub);
8472  // I(b,s) <+ ((TYPE*XIsub))
8473  staticContributions[admsNodeID_b] += (modelPar_TYPE*instanceVar_XIsub);
8474  staticContributions[admsNodeID_s] -= (modelPar_TYPE*instanceVar_XIsub);
8475  // I(s,c1) <+ ((TYPE*Isf))
8476  staticContributions[admsNodeID_s] += (modelPar_TYPE*Isf);
8477  staticContributions[admsNodeID_c1] -= (modelPar_TYPE*Isf);
8478  // I(b1,b2) <+ ((TYPE*Ib1b2))
8479  staticContributions[admsNodeID_b1] += (modelPar_TYPE*Ib1b2);
8480  staticContributions[admsNodeID_b2] -= (modelPar_TYPE*Ib1b2);
8481  // I(b2,c2) <+ ((TYPE*((-1.0)*Iavl)))
8482  staticContributions[admsNodeID_b2] += (modelPar_TYPE*((-1.0)*Iavl));
8483  staticContributions[admsNodeID_c2] -= (modelPar_TYPE*((-1.0)*Iavl));
8484  // I(e,e1) <+ (((TYPE*Vee1)/RE_TM))
8485  staticContributions[admsNodeID_e] += ((modelPar_TYPE*Vee1)/instanceVar_RE_TM);
8486  staticContributions[admsNodeID_e1] -= ((modelPar_TYPE*Vee1)/instanceVar_RE_TM);
8487  // I(b,b1) <+ (((TYPE*Vbb1)/RBC_TM))
8488  staticContributions[admsNodeID_b] += ((modelPar_TYPE*Vbb1)/instanceVar_RBC_TM);
8489  staticContributions[admsNodeID_b1] -= ((modelPar_TYPE*Vbb1)/instanceVar_RBC_TM);
8490  // I(dt,GND) <+ ((V(dt,GND)/RTH_Tamb_M))
8491  staticContributions[admsNodeID_dt] += ((probeVars[admsProbeID_V_dt_GND])/RTH_Tamb_M);
8492  // I(dt,GND) <+ (ddt((CTH_M*V(dt,GND))))
8493  dynamicContributions[admsNodeID_dt] += ((CTH_M*(probeVars[admsProbeID_V_dt_GND])));
8494  // I(dt,GND) <+ (((-1.0)*power))
8495  staticContributions[admsNodeID_dt] += ((-1.0)*power);
8496  // I(noi,e1) <+ (V(noi,e1))
8497  staticContributions[admsNodeID_noi] += (probeVars[admsProbeID_V_noi_e1]);
8498  staticContributions[admsNodeID_e1] -= (probeVars[admsProbeID_V_noi_e1]);
8499  cor_exp_1 = (sqrt((1.0+(2.0*instanceVar_Gem)))*(probeVars[admsProbeID_V_noi_e1]));
8500  // I(b2,e1) <+ (cor_exp_1)
8501  staticContributions[admsNodeID_b2] += cor_exp_1;
8502  staticContributions[admsNodeID_e1] -= cor_exp_1;
8503  cor_exp_2 = (((2.0+(2.0*instanceVar_Gem))/sqrt((1.0+(2.0*instanceVar_Gem))))*(probeVars[admsProbeID_V_noi_e1]));
8504  // I(e1,c2) <+ (cor_exp_2)
8505  staticContributions[admsNodeID_e1] += cor_exp_2;
8506  staticContributions[admsNodeID_c2] -= cor_exp_2;
8507  // I(b2,e1) <+ (ddt((TYPE*((Qte+Qbe)+Qe))))
8508  dynamicContributions[admsNodeID_b2] += ((modelPar_TYPE*((Qte+Qbe)+Qe)));
8509  dynamicContributions[admsNodeID_e1] -= ((modelPar_TYPE*((Qte+Qbe)+Qe)));
8510  // I(b1,e1) <+ (ddt((TYPE*Qte_s)))
8511  dynamicContributions[admsNodeID_b1] += ((modelPar_TYPE*Qte_s));
8512  dynamicContributions[admsNodeID_e1] -= ((modelPar_TYPE*Qte_s));
8513  // I(b2,c2) <+ (ddt((TYPE*((Qtc+Qbc)+Qepi))))
8514  dynamicContributions[admsNodeID_b2] += ((modelPar_TYPE*((Qtc+Qbc)+Qepi)));
8515  dynamicContributions[admsNodeID_c2] -= ((modelPar_TYPE*((Qtc+Qbc)+Qepi)));
8516  // I(s,c1) <+ (ddt((TYPE*Qts)))
8517  dynamicContributions[admsNodeID_s] += ((modelPar_TYPE*Qts));
8518  dynamicContributions[admsNodeID_c1] -= ((modelPar_TYPE*Qts));
8519  // I(b1,b2) <+ (ddt((TYPE*Qb1b2)))
8520  dynamicContributions[admsNodeID_b1] += ((modelPar_TYPE*Qb1b2));
8521  dynamicContributions[admsNodeID_b2] -= ((modelPar_TYPE*Qb1b2));
8522  // I(b,e) <+ (ddt(((TYPE*CBEO_M)*Vbe)))
8523  dynamicContributions[admsNodeID_b] += (((modelPar_TYPE*CBEO_M)*Vbe));
8524  dynamicContributions[admsNodeID_e] -= (((modelPar_TYPE*CBEO_M)*Vbe));
8525  // I(b,c) <+ (ddt(((TYPE*CBCO_M)*Vbc)))
8526  dynamicContributions[admsNodeID_b] += (((modelPar_TYPE*CBCO_M)*Vbc));
8527  dynamicContributions[admsNodeID_c] -= (((modelPar_TYPE*CBCO_M)*Vbc));
8528  }
8529  if ((modelPar_RCBLX>0.0))
8530  {
8531  // I(b,c3) <+ ((TYPE*XIex))
8532  staticContributions[admsNodeID_b] += (modelPar_TYPE*instanceVar_XIex);
8533  staticContributions[admsNodeID_c3] -= (modelPar_TYPE*instanceVar_XIex);
8534  // I(c,c3) <+ (((TYPE*Vcc3)*GCCxx_TM))
8535  staticContributions[admsNodeID_c] += ((modelPar_TYPE*Vcc3)*instanceVar_GCCxx_TM);
8536  staticContributions[admsNodeID_c3] -= ((modelPar_TYPE*Vcc3)*instanceVar_GCCxx_TM);
8537  // I(b,c3) <+ (ddt((TYPE*(XQtex+XQex))))
8538  dynamicContributions[admsNodeID_b] += ((modelPar_TYPE*(XQtex+XQex)));
8539  dynamicContributions[admsNodeID_c3] -= ((modelPar_TYPE*(XQtex+XQex)));
8540  if ((modelPar_RCBLI>0.0))
8541  {
8542  // I(c4,c1) <+ (((TYPE*Vc4c1)*GCCin_TM))
8543  staticContributions[admsNodeID_c4] += ((modelPar_TYPE*Vc4c1)*instanceVar_GCCin_TM);
8544  staticContributions[admsNodeID_c1] -= ((modelPar_TYPE*Vc4c1)*instanceVar_GCCin_TM);
8545  // I(b1,c4) <+ ((TYPE*(Ib3+Iex)))
8546  staticContributions[admsNodeID_b1] += (modelPar_TYPE*(instanceVar_Ib3+instanceVar_Iex));
8547  staticContributions[admsNodeID_c4] -= (modelPar_TYPE*(instanceVar_Ib3+instanceVar_Iex));
8548  // I(c3,c4) <+ (((TYPE*Vc3c4)*GCCex_TM))
8549  staticContributions[admsNodeID_c3] += ((modelPar_TYPE*Vc3c4)*instanceVar_GCCex_TM);
8550  staticContributions[admsNodeID_c4] -= ((modelPar_TYPE*Vc3c4)*instanceVar_GCCex_TM);
8551  // I(b1,c4) <+ (ddt((TYPE*(Qtex+Qex))))
8552  dynamicContributions[admsNodeID_b1] += ((modelPar_TYPE*(Qtex+Qex)));
8553  dynamicContributions[admsNodeID_c4] -= ((modelPar_TYPE*(Qtex+Qex)));
8554  }
8555  else
8556  {
8557  // V(c4,c1) <+ (0.0)
8558  // do nothing at all
8559  // I(b1,c1) <+ ((TYPE*(Ib3+Iex)))
8560  staticContributions[admsNodeID_b1] += (modelPar_TYPE*(instanceVar_Ib3+instanceVar_Iex));
8561  staticContributions[admsNodeID_c1] -= (modelPar_TYPE*(instanceVar_Ib3+instanceVar_Iex));
8562  // I(b1,c1) <+ (ddt((TYPE*(Qtex+Qex))))
8563  dynamicContributions[admsNodeID_b1] += ((modelPar_TYPE*(Qtex+Qex)));
8564  dynamicContributions[admsNodeID_c1] -= ((modelPar_TYPE*(Qtex+Qex)));
8565  // I(c3,c1) <+ (((TYPE*Vc3c4)*GCCex_TM))
8566  staticContributions[admsNodeID_c3] += ((modelPar_TYPE*Vc3c4)*instanceVar_GCCex_TM);
8567  staticContributions[admsNodeID_c1] -= ((modelPar_TYPE*Vc3c4)*instanceVar_GCCex_TM);
8568  }
8569  }
8570  else
8571  {
8572  // V(c3,c4) <+ (0)
8573  // do nothing at all
8574  if ((modelPar_RCBLI>0.0))
8575  {
8576  // I(b,c4) <+ ((TYPE*XIex))
8577  staticContributions[admsNodeID_b] += (modelPar_TYPE*instanceVar_XIex);
8578  staticContributions[admsNodeID_c4] -= (modelPar_TYPE*instanceVar_XIex);
8579  // I(c,c4) <+ (((TYPE*Vcc3)*GCCxx_TM))
8580  staticContributions[admsNodeID_c] += ((modelPar_TYPE*Vcc3)*instanceVar_GCCxx_TM);
8581  staticContributions[admsNodeID_c4] -= ((modelPar_TYPE*Vcc3)*instanceVar_GCCxx_TM);
8582  // I(c4,c1) <+ (((TYPE*Vc4c1)*GCCin_TM))
8583  staticContributions[admsNodeID_c4] += ((modelPar_TYPE*Vc4c1)*instanceVar_GCCin_TM);
8584  staticContributions[admsNodeID_c1] -= ((modelPar_TYPE*Vc4c1)*instanceVar_GCCin_TM);
8585  // I(b1,c4) <+ ((TYPE*(Ib3+Iex)))
8586  staticContributions[admsNodeID_b1] += (modelPar_TYPE*(instanceVar_Ib3+instanceVar_Iex));
8587  staticContributions[admsNodeID_c4] -= (modelPar_TYPE*(instanceVar_Ib3+instanceVar_Iex));
8588  // I(b1,c4) <+ (ddt((TYPE*(Qtex+Qex))))
8589  dynamicContributions[admsNodeID_b1] += ((modelPar_TYPE*(Qtex+Qex)));
8590  dynamicContributions[admsNodeID_c4] -= ((modelPar_TYPE*(Qtex+Qex)));
8591  // I(b,c4) <+ (ddt((TYPE*(XQtex+XQex))))
8592  dynamicContributions[admsNodeID_b] += ((modelPar_TYPE*(XQtex+XQex)));
8593  dynamicContributions[admsNodeID_c4] -= ((modelPar_TYPE*(XQtex+XQex)));
8594  }
8595  else
8596  {
8597  // I(b,c1) <+ ((TYPE*XIex))
8598  staticContributions[admsNodeID_b] += (modelPar_TYPE*instanceVar_XIex);
8599  staticContributions[admsNodeID_c1] -= (modelPar_TYPE*instanceVar_XIex);
8600  // I(c,c1) <+ (((TYPE*Vcc3)*GCCxx_TM))
8601  staticContributions[admsNodeID_c] += ((modelPar_TYPE*Vcc3)*instanceVar_GCCxx_TM);
8602  staticContributions[admsNodeID_c1] -= ((modelPar_TYPE*Vcc3)*instanceVar_GCCxx_TM);
8603  // V(c4,c1) <+ (0.0)
8604  // do nothing at all
8605  // I(b1,c1) <+ ((TYPE*(Ib3+Iex)))
8606  staticContributions[admsNodeID_b1] += (modelPar_TYPE*(instanceVar_Ib3+instanceVar_Iex));
8607  staticContributions[admsNodeID_c1] -= (modelPar_TYPE*(instanceVar_Ib3+instanceVar_Iex));
8608  // I(b1,c1) <+ (ddt((TYPE*(Qtex+Qex))))
8609  dynamicContributions[admsNodeID_b1] += ((modelPar_TYPE*(Qtex+Qex)));
8610  dynamicContributions[admsNodeID_c1] -= ((modelPar_TYPE*(Qtex+Qex)));
8611  // I(b,c1) <+ (ddt((TYPE*(XQtex+XQex))))
8612  dynamicContributions[admsNodeID_b] += ((modelPar_TYPE*(XQtex+XQex)));
8613  dynamicContributions[admsNodeID_c1] -= ((modelPar_TYPE*(XQtex+XQex)));
8614  // I(c3,c1) <+ (((TYPE*Vc3c4)*GCCex_TM))
8615  staticContributions[admsNodeID_c3] += ((modelPar_TYPE*Vc3c4)*instanceVar_GCCex_TM);
8616  staticContributions[admsNodeID_c1] -= ((modelPar_TYPE*Vc3c4)*instanceVar_GCCex_TM);
8617  }
8618  }
8619  {
8620  }
8621 }
8622 
8623 
8624 
8625 //-----------------------------------------------------------------------------
8626 // Function : InstanceSensitivity::operator()
8627 // Purpose : return sensitivity for a single instance parameter
8628 // Special Notes :
8629 // Scope : public
8630 // Creator : admsXml
8631 // Creation Date :
8632 //-----------------------------------------------------------------------------
8633 /// Compute sensitivity of a device instance's outputs to a specified instance
8634 /// parameter
8635 ///
8636 ///
8637 /// @param[in] entity The device entity that owns the parameter
8638 /// @param[in] name The unadorned parameter name specific to the entity
8639 /// @param[out] dfdp The derivative of the F vector with respect to the parameter
8640 /// @param[out] dqdp The derivative of the Q vector with respect to the parameter
8641 /// @param[out] dbdp The derivative of the B vector with respect to the parameter
8642 /// @param[out] Findices The indices into the F vector corresponding to the elements of dfdp
8643 /// @param[out] Qindices The indices into the Q vector corresponding to the elements of dfdp
8644 /// @param[out] Bindices The indices into the B vector corresponding to the elements of dfdp
8645 ///
8646 ///
8647 void InstanceSensitivity::operator()
8648  (
8649  const ParameterBase &entity,
8650  const std::string &name,
8651  std::vector<double> & dfdp,
8652  std::vector<double> & dqdp,
8653  std::vector<double> & dbdp,
8654  std::vector<int> & Findices,
8655  std::vector<int> & Qindices,
8656  std::vector<int> & Bindices
8657  ) const
8658 {
8659  const ParameterBase * e1 = &entity;
8660  const Instance & in = *(dynamic_cast<const Instance *> (e1));
8661  const Model & mod =in.model_;
8662 
8663  dfdp.resize(13+0);
8664  dqdp.resize(13+0);
8665  Findices.resize(13+0);
8666  Qindices.resize(13+0);
8667 
8668  std::vector <double> probeVars(16);
8669  std::vector <AdmsSensFadType> staticContributions(13+0);
8670  std::vector <AdmsSensFadType> dynamicContributions(13+0);
8671 
8672 
8673  // initialize contributions to zero (automatically sets derivatives to zero)
8674  for (int i=0; i < 13+0 ; ++i)
8675  {
8676  staticContributions[i]=0;
8677  dynamicContributions[i]=0;
8678  }
8679 
8680  // Copy out all the model parameters (doubles) into FAD types
8681  //reals
8682  AdmsSensFadType modelPar_TREF=mod.TREF;
8683  bool modelPar_given_TREF=mod.given("TREF");
8684  AdmsSensFadType modelPar_DTA=mod.DTA;
8685  bool modelPar_given_DTA=mod.given("DTA");
8686  AdmsSensFadType modelPar_IS=mod.IS;
8687  bool modelPar_given_IS=mod.given("IS");
8688  AdmsSensFadType modelPar_IK=mod.IK;
8689  bool modelPar_given_IK=mod.given("IK");
8690  AdmsSensFadType modelPar_VER=mod.VER;
8691  bool modelPar_given_VER=mod.given("VER");
8692  AdmsSensFadType modelPar_VEF=mod.VEF;
8693  bool modelPar_given_VEF=mod.given("VEF");
8694  AdmsSensFadType modelPar_BF=mod.BF;
8695  bool modelPar_given_BF=mod.given("BF");
8696  AdmsSensFadType modelPar_IBF=mod.IBF;
8697  bool modelPar_given_IBF=mod.given("IBF");
8698  AdmsSensFadType modelPar_MLF=mod.MLF;
8699  bool modelPar_given_MLF=mod.given("MLF");
8700  AdmsSensFadType modelPar_XIBI=mod.XIBI;
8701  bool modelPar_given_XIBI=mod.given("XIBI");
8702  AdmsSensFadType modelPar_IZEB=mod.IZEB;
8703  bool modelPar_given_IZEB=mod.given("IZEB");
8704  AdmsSensFadType modelPar_NZEB=mod.NZEB;
8705  bool modelPar_given_NZEB=mod.given("NZEB");
8706  AdmsSensFadType modelPar_BRI=mod.BRI;
8707  bool modelPar_given_BRI=mod.given("BRI");
8708  AdmsSensFadType modelPar_IBR=mod.IBR;
8709  bool modelPar_given_IBR=mod.given("IBR");
8710  AdmsSensFadType modelPar_VLR=mod.VLR;
8711  bool modelPar_given_VLR=mod.given("VLR");
8712  AdmsSensFadType modelPar_XEXT=mod.XEXT;
8713  bool modelPar_given_XEXT=mod.given("XEXT");
8714  AdmsSensFadType modelPar_WAVL=mod.WAVL;
8715  bool modelPar_given_WAVL=mod.given("WAVL");
8716  AdmsSensFadType modelPar_VAVL=mod.VAVL;
8717  bool modelPar_given_VAVL=mod.given("VAVL");
8718  AdmsSensFadType modelPar_SFH=mod.SFH;
8719  bool modelPar_given_SFH=mod.given("SFH");
8720  AdmsSensFadType modelPar_RE=mod.RE;
8721  bool modelPar_given_RE=mod.given("RE");
8722  AdmsSensFadType modelPar_RBC=mod.RBC;
8723  bool modelPar_given_RBC=mod.given("RBC");
8724  AdmsSensFadType modelPar_RBV=mod.RBV;
8725  bool modelPar_given_RBV=mod.given("RBV");
8726  AdmsSensFadType modelPar_RCC=mod.RCC;
8727  bool modelPar_given_RCC=mod.given("RCC");
8728  AdmsSensFadType modelPar_RCV=mod.RCV;
8729  bool modelPar_given_RCV=mod.given("RCV");
8730  AdmsSensFadType modelPar_SCRCV=mod.SCRCV;
8731  bool modelPar_given_SCRCV=mod.given("SCRCV");
8732  AdmsSensFadType modelPar_IHC=mod.IHC;
8733  bool modelPar_given_IHC=mod.given("IHC");
8734  AdmsSensFadType modelPar_AXI=mod.AXI;
8735  bool modelPar_given_AXI=mod.given("AXI");
8736  AdmsSensFadType modelPar_CJE=mod.CJE;
8737  bool modelPar_given_CJE=mod.given("CJE");
8738  AdmsSensFadType modelPar_VDE=mod.VDE;
8739  bool modelPar_given_VDE=mod.given("VDE");
8740  AdmsSensFadType modelPar_PE=mod.PE;
8741  bool modelPar_given_PE=mod.given("PE");
8742  AdmsSensFadType modelPar_XCJE=mod.XCJE;
8743  bool modelPar_given_XCJE=mod.given("XCJE");
8744  AdmsSensFadType modelPar_CBEO=mod.CBEO;
8745  bool modelPar_given_CBEO=mod.given("CBEO");
8746  AdmsSensFadType modelPar_CJC=mod.CJC;
8747  bool modelPar_given_CJC=mod.given("CJC");
8748  AdmsSensFadType modelPar_VDC=mod.VDC;
8749  bool modelPar_given_VDC=mod.given("VDC");
8750  AdmsSensFadType modelPar_PC=mod.PC;
8751  bool modelPar_given_PC=mod.given("PC");
8752  AdmsSensFadType modelPar_XP=mod.XP;
8753  bool modelPar_given_XP=mod.given("XP");
8754  AdmsSensFadType modelPar_MC=mod.MC;
8755  bool modelPar_given_MC=mod.given("MC");
8756  AdmsSensFadType modelPar_XCJC=mod.XCJC;
8757  bool modelPar_given_XCJC=mod.given("XCJC");
8758  AdmsSensFadType modelPar_RCBLX=mod.RCBLX;
8759  bool modelPar_given_RCBLX=mod.given("RCBLX");
8760  AdmsSensFadType modelPar_RCBLI=mod.RCBLI;
8761  bool modelPar_given_RCBLI=mod.given("RCBLI");
8762  AdmsSensFadType modelPar_CBCO=mod.CBCO;
8763  bool modelPar_given_CBCO=mod.given("CBCO");
8764  AdmsSensFadType modelPar_MTAU=mod.MTAU;
8765  bool modelPar_given_MTAU=mod.given("MTAU");
8766  AdmsSensFadType modelPar_TAUE=mod.TAUE;
8767  bool modelPar_given_TAUE=mod.given("TAUE");
8768  AdmsSensFadType modelPar_TAUB=mod.TAUB;
8769  bool modelPar_given_TAUB=mod.given("TAUB");
8770  AdmsSensFadType modelPar_TEPI=mod.TEPI;
8771  bool modelPar_given_TEPI=mod.given("TEPI");
8772  AdmsSensFadType modelPar_TAUR=mod.TAUR;
8773  bool modelPar_given_TAUR=mod.given("TAUR");
8774  AdmsSensFadType modelPar_DEG=mod.DEG;
8775  bool modelPar_given_DEG=mod.given("DEG");
8776  AdmsSensFadType modelPar_XREC=mod.XREC;
8777  bool modelPar_given_XREC=mod.given("XREC");
8778  AdmsSensFadType modelPar_AQBO=mod.AQBO;
8779  bool modelPar_given_AQBO=mod.given("AQBO");
8780  AdmsSensFadType modelPar_AE=mod.AE;
8781  bool modelPar_given_AE=mod.given("AE");
8782  AdmsSensFadType modelPar_AB=mod.AB;
8783  bool modelPar_given_AB=mod.given("AB");
8784  AdmsSensFadType modelPar_AEPI=mod.AEPI;
8785  bool modelPar_given_AEPI=mod.given("AEPI");
8786  AdmsSensFadType modelPar_AEX=mod.AEX;
8787  bool modelPar_given_AEX=mod.given("AEX");
8788  AdmsSensFadType modelPar_AC=mod.AC;
8789  bool modelPar_given_AC=mod.given("AC");
8790  AdmsSensFadType modelPar_ACBL=mod.ACBL;
8791  bool modelPar_given_ACBL=mod.given("ACBL");
8792  AdmsSensFadType modelPar_DVGBF=mod.DVGBF;
8793  bool modelPar_given_DVGBF=mod.given("DVGBF");
8794  AdmsSensFadType modelPar_DVGBR=mod.DVGBR;
8795  bool modelPar_given_DVGBR=mod.given("DVGBR");
8796  AdmsSensFadType modelPar_VGB=mod.VGB;
8797  bool modelPar_given_VGB=mod.given("VGB");
8798  AdmsSensFadType modelPar_VGC=mod.VGC;
8799  bool modelPar_given_VGC=mod.given("VGC");
8800  AdmsSensFadType modelPar_VGJ=mod.VGJ;
8801  bool modelPar_given_VGJ=mod.given("VGJ");
8802  AdmsSensFadType modelPar_VGZEB=mod.VGZEB;
8803  bool modelPar_given_VGZEB=mod.given("VGZEB");
8804  AdmsSensFadType modelPar_AVGEB=mod.AVGEB;
8805  bool modelPar_given_AVGEB=mod.given("AVGEB");
8806  AdmsSensFadType modelPar_TVGEB=mod.TVGEB;
8807  bool modelPar_given_TVGEB=mod.given("TVGEB");
8808  AdmsSensFadType modelPar_DVGTE=mod.DVGTE;
8809  bool modelPar_given_DVGTE=mod.given("DVGTE");
8810  AdmsSensFadType modelPar_DAIS=mod.DAIS;
8811  bool modelPar_given_DAIS=mod.given("DAIS");
8812  AdmsSensFadType modelPar_AF=mod.AF;
8813  bool modelPar_given_AF=mod.given("AF");
8814  AdmsSensFadType modelPar_KF=mod.KF;
8815  bool modelPar_given_KF=mod.given("KF");
8816  AdmsSensFadType modelPar_KFN=mod.KFN;
8817  bool modelPar_given_KFN=mod.given("KFN");
8818  AdmsSensFadType modelPar_ISS=mod.ISS;
8819  bool modelPar_given_ISS=mod.given("ISS");
8820  AdmsSensFadType modelPar_ICSS=mod.ICSS;
8821  bool modelPar_given_ICSS=mod.given("ICSS");
8822  AdmsSensFadType modelPar_IKS=mod.IKS;
8823  bool modelPar_given_IKS=mod.given("IKS");
8824  AdmsSensFadType modelPar_CJS=mod.CJS;
8825  bool modelPar_given_CJS=mod.given("CJS");
8826  AdmsSensFadType modelPar_VDS=mod.VDS;
8827  bool modelPar_given_VDS=mod.given("VDS");
8828  AdmsSensFadType modelPar_PS=mod.PS;
8829  bool modelPar_given_PS=mod.given("PS");
8830  AdmsSensFadType modelPar_VGS=mod.VGS;
8831  bool modelPar_given_VGS=mod.given("VGS");
8832  AdmsSensFadType modelPar_AS=mod.AS;
8833  bool modelPar_given_AS=mod.given("AS");
8834  AdmsSensFadType modelPar_ASUB=mod.ASUB;
8835  bool modelPar_given_ASUB=mod.given("ASUB");
8836  AdmsSensFadType modelPar_RTH=mod.RTH;
8837  bool modelPar_given_RTH=mod.given("RTH");
8838  AdmsSensFadType modelPar_CTH=mod.CTH;
8839  bool modelPar_given_CTH=mod.given("CTH");
8840  AdmsSensFadType modelPar_ATH=mod.ATH;
8841  bool modelPar_given_ATH=mod.given("ATH");
8842  AdmsSensFadType modelPar_MULT=mod.MULT;
8843  bool modelPar_given_MULT=mod.given("MULT");
8844  AdmsSensFadType modelPar_GMIN=mod.GMIN;
8845  bool modelPar_given_GMIN=mod.given("GMIN");
8846 
8847 
8848  // hidden reals
8849 
8850 
8851  // non-reals (including hiddens)
8852  int modelPar_LEVEL=mod.LEVEL;
8853  bool modelPar_given_LEVEL=mod.given("LEVEL");
8854  int modelPar_EXMOD=mod.EXMOD;
8855  bool modelPar_given_EXMOD=mod.given("EXMOD");
8856  int modelPar_EXPHI=mod.EXPHI;
8857  bool modelPar_given_EXPHI=mod.given("EXPHI");
8858  int modelPar_EXAVL=mod.EXAVL;
8859  bool modelPar_given_EXAVL=mod.given("EXAVL");
8860  int modelPar_EXSUB=mod.EXSUB;
8861  bool modelPar_given_EXSUB=mod.given("EXSUB");
8862  int modelPar_KAVL=mod.KAVL;
8863  bool modelPar_given_KAVL=mod.given("KAVL");
8864  int modelPar_TYPE=mod.TYPE;
8865  bool modelPar_given_TYPE=mod.given("TYPE");
8866 
8867 
8868 
8869  // Copy out all the instance parameters (doubles) into FAD types
8870  // Keep a map so we can set the right one to the independent variable
8871  // We do this solely to avoid a big ugly "if/else" block just to find the
8872  // one parameter we're doing sensitivities on.
8873  unordered_map <std::string,AdmsSensFadType*,HashNoCase,EqualNoCase> inParamMap;
8874 
8875  // reals
8876  AdmsSensFadType instancePar_MULT=in.MULT;
8877  bool instancePar_given_MULT=in.given("MULT");
8878  inParamMap["MULT"] = &instancePar_MULT;
8879 
8880 
8881  // Copy all the real hidden instance params into fad types
8882 
8883 
8884 
8885  // Copy all the non-real instance params into vars of their appropriate type:
8886 
8887 
8888  // Set the one parameter whose name was passed in to be the independent
8889  // variable for Sacado purposes. Since we stored variable pointers, this
8890  // makes sure that that ONE variable gets set right.
8891  // FIXME: make this check the name first, otherwise segfault on invalid name!
8892  inParamMap[name]->diff(0,1);
8893 
8894  //make local copies of all instance vars
8895  //reals
8896  AdmsSensFadType instanceVar_Tk=in.Tk;
8897  AdmsSensFadType instanceVar_Izteb=in.Izteb;
8898  AdmsSensFadType instanceVar_RE_TM=in.RE_TM;
8899  AdmsSensFadType instanceVar_RBC_TM=in.RBC_TM;
8900  AdmsSensFadType instanceVar_GCCxx_TM=in.GCCxx_TM;
8901  AdmsSensFadType instanceVar_GCCex_TM=in.GCCex_TM;
8902  AdmsSensFadType instanceVar_GCCin_TM=in.GCCin_TM;
8903  AdmsSensFadType instanceVar_KF_M=in.KF_M;
8904  AdmsSensFadType instanceVar_KFN_M=in.KFN_M;
8905  AdmsSensFadType instanceVar_qBI=in.qBI;
8906  AdmsSensFadType instanceVar_Ir=in.Ir;
8907  AdmsSensFadType instanceVar_If=in.If;
8908  AdmsSensFadType instanceVar_Ib1=in.Ib1;
8909  AdmsSensFadType instanceVar_Ib1_s=in.Ib1_s;
8910  AdmsSensFadType instanceVar_Ib2=in.Ib2;
8911  AdmsSensFadType instanceVar_Ib3=in.Ib3;
8912  AdmsSensFadType instanceVar_Iex=in.Iex;
8913  AdmsSensFadType instanceVar_XIex=in.XIex;
8914  AdmsSensFadType instanceVar_Isub=in.Isub;
8915  AdmsSensFadType instanceVar_XIsub=in.XIsub;
8916  AdmsSensFadType instanceVar_Rb2=in.Rb2;
8917  AdmsSensFadType instanceVar_Gem=in.Gem;
8918  AdmsSensFadType instanceVar_eVb1b2=in.eVb1b2;
8919 
8920 
8921  //non-reals
8922 
8923 
8924  //make local copies of all model vars
8925  //reals
8926 
8927 
8928  // non-reals
8929 
8930 
8931 
8932  Linear::Vector * solVectorPtr = in.extData.nextSolVectorPtr;
8933 
8934  // extract solution variables and set as Fad independent variables.
8935 
8936  probeVars[in.admsProbeID_V_noi_e1] = (*solVectorPtr)[in.li_noi] - (*solVectorPtr)[in.li_e1];
8937  probeVars[in.admsProbeID_V_c3_c1] = (*solVectorPtr)[in.li_c3] - (*solVectorPtr)[in.li_c1];
8938  probeVars[in.admsProbeID_V_c3_c4] = (*solVectorPtr)[in.li_c3] - (*solVectorPtr)[in.li_c4];
8939  probeVars[in.admsProbeID_V_c4_c1] = (*solVectorPtr)[in.li_c4] - (*solVectorPtr)[in.li_c1];
8940  probeVars[in.admsProbeID_V_b_c] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_c];
8941  probeVars[in.admsProbeID_V_b_e] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_e];
8942  probeVars[in.admsProbeID_V_b_b1] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_b1];
8943  probeVars[in.admsProbeID_V_e_e1] = (*solVectorPtr)[in.li_e] - (*solVectorPtr)[in.li_e1];
8944  probeVars[in.admsProbeID_V_c1_c2] = (*solVectorPtr)[in.li_c1] - (*solVectorPtr)[in.li_c2];
8945  probeVars[in.admsProbeID_V_s_c1] = (*solVectorPtr)[in.li_s] - (*solVectorPtr)[in.li_c1];
8946  probeVars[in.admsProbeID_V_b1_b2] = (*solVectorPtr)[in.li_b1] - (*solVectorPtr)[in.li_b2];
8947  probeVars[in.admsProbeID_V_b1_e1] = (*solVectorPtr)[in.li_b1] - (*solVectorPtr)[in.li_e1];
8948  probeVars[in.admsProbeID_V_b2_e1] = (*solVectorPtr)[in.li_b2] - (*solVectorPtr)[in.li_e1];
8949  probeVars[in.admsProbeID_V_b2_c2] = (*solVectorPtr)[in.li_b2] - (*solVectorPtr)[in.li_c2];
8950  probeVars[in.admsProbeID_V_b2_c1] = (*solVectorPtr)[in.li_b2] - (*solVectorPtr)[in.li_c1];
8951  probeVars[in.admsProbeID_V_dt_GND] = (*solVectorPtr)[in.li_dt];
8952 
8953  // pre-multiply any "typed" probes (i.e. those limited with "typedpnjlim")
8954  probeVars[in.admsProbeID_V_b1_b2] *= modelPar_TYPE;
8955  probeVars[in.admsProbeID_V_b1_e1] *= modelPar_TYPE;
8956  probeVars[in.admsProbeID_V_b2_c2] *= modelPar_TYPE;
8957  probeVars[in.admsProbeID_V_b2_c1] *= modelPar_TYPE;
8958 
8959 
8960 
8961  // Now call the function that does the heavy lifting.
8962  evaluateModelEquations(
8963  probeVars,
8964  // probe constants
8965  in.admsProbeID_V_noi_e1,
8966  in.admsProbeID_V_c3_c1,
8967  in.admsProbeID_V_c3_c4,
8968  in.admsProbeID_V_c4_c1,
8969  in.admsProbeID_V_b_c,
8970  in.admsProbeID_V_b_e,
8971  in.admsProbeID_V_b_b1,
8972  in.admsProbeID_V_e_e1,
8973  in.admsProbeID_V_c1_c2,
8974  in.admsProbeID_V_s_c1,
8975  in.admsProbeID_V_b1_b2,
8976  in.admsProbeID_V_b1_e1,
8977  in.admsProbeID_V_b2_e1,
8978  in.admsProbeID_V_b2_c2,
8979  in.admsProbeID_V_b2_c1,
8980  in.admsProbeID_V_dt_GND,
8981 
8982  // node constants
8983  in.admsNodeID_c,
8984  in.admsNodeID_b,
8985  in.admsNodeID_e,
8986  in.admsNodeID_s,
8987  in.admsNodeID_dt,
8988  in.admsNodeID_e1,
8989  in.admsNodeID_b1,
8990  in.admsNodeID_b2,
8991  in.admsNodeID_c3,
8992  in.admsNodeID_c4,
8993  in.admsNodeID_c2,
8994  in.admsNodeID_c1,
8995  in.admsNodeID_noi,
8996  // instance parameters
8997  // reals
8998  instancePar_MULT,
8999  instancePar_given_MULT,
9000  // instance variables
9001  // reals
9002  instanceVar_Tk,
9003  instanceVar_Izteb,
9004  instanceVar_RE_TM,
9005  instanceVar_RBC_TM,
9006  instanceVar_GCCxx_TM,
9007  instanceVar_GCCex_TM,
9008  instanceVar_GCCin_TM,
9009  instanceVar_KF_M,
9010  instanceVar_KFN_M,
9011  instanceVar_qBI,
9012  instanceVar_Ir,
9013  instanceVar_If,
9014  instanceVar_Ib1,
9015  instanceVar_Ib1_s,
9016  instanceVar_Ib2,
9017  instanceVar_Ib3,
9018  instanceVar_Iex,
9019  instanceVar_XIex,
9020  instanceVar_Isub,
9021  instanceVar_XIsub,
9022  instanceVar_Rb2,
9023  instanceVar_Gem,
9024  instanceVar_eVb1b2,
9025  // model parameters
9026  // reals
9027  modelPar_TREF,
9028  modelPar_given_TREF,
9029  modelPar_DTA,
9030  modelPar_given_DTA,
9031  modelPar_IS,
9032  modelPar_given_IS,
9033  modelPar_IK,
9034  modelPar_given_IK,
9035  modelPar_VER,
9036  modelPar_given_VER,
9037  modelPar_VEF,
9038  modelPar_given_VEF,
9039  modelPar_BF,
9040  modelPar_given_BF,
9041  modelPar_IBF,
9042  modelPar_given_IBF,
9043  modelPar_MLF,
9044  modelPar_given_MLF,
9045  modelPar_XIBI,
9046  modelPar_given_XIBI,
9047  modelPar_IZEB,
9048  modelPar_given_IZEB,
9049  modelPar_NZEB,
9050  modelPar_given_NZEB,
9051  modelPar_BRI,
9052  modelPar_given_BRI,
9053  modelPar_IBR,
9054  modelPar_given_IBR,
9055  modelPar_VLR,
9056  modelPar_given_VLR,
9057  modelPar_XEXT,
9058  modelPar_given_XEXT,
9059  modelPar_WAVL,
9060  modelPar_given_WAVL,
9061  modelPar_VAVL,
9062  modelPar_given_VAVL,
9063  modelPar_SFH,
9064  modelPar_given_SFH,
9065  modelPar_RE,
9066  modelPar_given_RE,
9067  modelPar_RBC,
9068  modelPar_given_RBC,
9069  modelPar_RBV,
9070  modelPar_given_RBV,
9071  modelPar_RCC,
9072  modelPar_given_RCC,
9073  modelPar_RCV,
9074  modelPar_given_RCV,
9075  modelPar_SCRCV,
9076  modelPar_given_SCRCV,
9077  modelPar_IHC,
9078  modelPar_given_IHC,
9079  modelPar_AXI,
9080  modelPar_given_AXI,
9081  modelPar_CJE,
9082  modelPar_given_CJE,
9083  modelPar_VDE,
9084  modelPar_given_VDE,
9085  modelPar_PE,
9086  modelPar_given_PE,
9087  modelPar_XCJE,
9088  modelPar_given_XCJE,
9089  modelPar_CBEO,
9090  modelPar_given_CBEO,
9091  modelPar_CJC,
9092  modelPar_given_CJC,
9093  modelPar_VDC,
9094  modelPar_given_VDC,
9095  modelPar_PC,
9096  modelPar_given_PC,
9097  modelPar_XP,
9098  modelPar_given_XP,
9099  modelPar_MC,
9100  modelPar_given_MC,
9101  modelPar_XCJC,
9102  modelPar_given_XCJC,
9103  modelPar_RCBLX,
9104  modelPar_given_RCBLX,
9105  modelPar_RCBLI,
9106  modelPar_given_RCBLI,
9107  modelPar_CBCO,
9108  modelPar_given_CBCO,
9109  modelPar_MTAU,
9110  modelPar_given_MTAU,
9111  modelPar_TAUE,
9112  modelPar_given_TAUE,
9113  modelPar_TAUB,
9114  modelPar_given_TAUB,
9115  modelPar_TEPI,
9116  modelPar_given_TEPI,
9117  modelPar_TAUR,
9118  modelPar_given_TAUR,
9119  modelPar_DEG,
9120  modelPar_given_DEG,
9121  modelPar_XREC,
9122  modelPar_given_XREC,
9123  modelPar_AQBO,
9124  modelPar_given_AQBO,
9125  modelPar_AE,
9126  modelPar_given_AE,
9127  modelPar_AB,
9128  modelPar_given_AB,
9129  modelPar_AEPI,
9130  modelPar_given_AEPI,
9131  modelPar_AEX,
9132  modelPar_given_AEX,
9133  modelPar_AC,
9134  modelPar_given_AC,
9135  modelPar_ACBL,
9136  modelPar_given_ACBL,
9137  modelPar_DVGBF,
9138  modelPar_given_DVGBF,
9139  modelPar_DVGBR,
9140  modelPar_given_DVGBR,
9141  modelPar_VGB,
9142  modelPar_given_VGB,
9143  modelPar_VGC,
9144  modelPar_given_VGC,
9145  modelPar_VGJ,
9146  modelPar_given_VGJ,
9147  modelPar_VGZEB,
9148  modelPar_given_VGZEB,
9149  modelPar_AVGEB,
9150  modelPar_given_AVGEB,
9151  modelPar_TVGEB,
9152  modelPar_given_TVGEB,
9153  modelPar_DVGTE,
9154  modelPar_given_DVGTE,
9155  modelPar_DAIS,
9156  modelPar_given_DAIS,
9157  modelPar_AF,
9158  modelPar_given_AF,
9159  modelPar_KF,
9160  modelPar_given_KF,
9161  modelPar_KFN,
9162  modelPar_given_KFN,
9163  modelPar_ISS,
9164  modelPar_given_ISS,
9165  modelPar_ICSS,
9166  modelPar_given_ICSS,
9167  modelPar_IKS,
9168  modelPar_given_IKS,
9169  modelPar_CJS,
9170  modelPar_given_CJS,
9171  modelPar_VDS,
9172  modelPar_given_VDS,
9173  modelPar_PS,
9174  modelPar_given_PS,
9175  modelPar_VGS,
9176  modelPar_given_VGS,
9177  modelPar_AS,
9178  modelPar_given_AS,
9179  modelPar_ASUB,
9180  modelPar_given_ASUB,
9181  modelPar_RTH,
9182  modelPar_given_RTH,
9183  modelPar_CTH,
9184  modelPar_given_CTH,
9185  modelPar_ATH,
9186  modelPar_given_ATH,
9187  modelPar_MULT,
9188  modelPar_given_MULT,
9189  modelPar_GMIN,
9190  modelPar_given_GMIN,
9191  // non-reals (including hidden)
9192  modelPar_LEVEL,
9193  modelPar_given_LEVEL,
9194  modelPar_EXMOD,
9195  modelPar_given_EXMOD,
9196  modelPar_EXPHI,
9197  modelPar_given_EXPHI,
9198  modelPar_EXAVL,
9199  modelPar_given_EXAVL,
9200  modelPar_EXSUB,
9201  modelPar_given_EXSUB,
9202  modelPar_KAVL,
9203  modelPar_given_KAVL,
9204  modelPar_TYPE,
9205  modelPar_given_TYPE,
9206  in.admsTemperature,
9207  in.adms_vt_nom,
9208  in.getDeviceOptions().gmin,
9209  staticContributions,
9210  dynamicContributions,
9211  in);
9212 
9213 
9214  // We now have the F and Q vector stuff, populate the dependencies:
9215 
9216  dfdp[in.admsNodeID_c] += staticContributions[in.admsNodeID_c].dx(0);
9217  dqdp[in.admsNodeID_c] += dynamicContributions[in.admsNodeID_c].dx(0);
9218  Findices[in.admsNodeID_c] = in.li_c;
9219  Qindices[in.admsNodeID_c] = in.li_c;
9220  dfdp[in.admsNodeID_b] += staticContributions[in.admsNodeID_b].dx(0);
9221  dqdp[in.admsNodeID_b] += dynamicContributions[in.admsNodeID_b].dx(0);
9222  Findices[in.admsNodeID_b] = in.li_b;
9223  Qindices[in.admsNodeID_b] = in.li_b;
9224  dfdp[in.admsNodeID_e] += staticContributions[in.admsNodeID_e].dx(0);
9225  dqdp[in.admsNodeID_e] += dynamicContributions[in.admsNodeID_e].dx(0);
9226  Findices[in.admsNodeID_e] = in.li_e;
9227  Qindices[in.admsNodeID_e] = in.li_e;
9228  dfdp[in.admsNodeID_s] += staticContributions[in.admsNodeID_s].dx(0);
9229  dqdp[in.admsNodeID_s] += dynamicContributions[in.admsNodeID_s].dx(0);
9230  Findices[in.admsNodeID_s] = in.li_s;
9231  Qindices[in.admsNodeID_s] = in.li_s;
9232  dfdp[in.admsNodeID_dt] += staticContributions[in.admsNodeID_dt].dx(0);
9233  dqdp[in.admsNodeID_dt] += dynamicContributions[in.admsNodeID_dt].dx(0);
9234  Findices[in.admsNodeID_dt] = in.li_dt;
9235  Qindices[in.admsNodeID_dt] = in.li_dt;
9236  dfdp[in.admsNodeID_e1] += staticContributions[in.admsNodeID_e1].dx(0);
9237  dqdp[in.admsNodeID_e1] += dynamicContributions[in.admsNodeID_e1].dx(0);
9238  Findices[in.admsNodeID_e1] = in.li_e1;
9239  Qindices[in.admsNodeID_e1] = in.li_e1;
9240  dfdp[in.admsNodeID_b1] += staticContributions[in.admsNodeID_b1].dx(0);
9241  dqdp[in.admsNodeID_b1] += dynamicContributions[in.admsNodeID_b1].dx(0);
9242  Findices[in.admsNodeID_b1] = in.li_b1;
9243  Qindices[in.admsNodeID_b1] = in.li_b1;
9244  dfdp[in.admsNodeID_b2] += staticContributions[in.admsNodeID_b2].dx(0);
9245  dqdp[in.admsNodeID_b2] += dynamicContributions[in.admsNodeID_b2].dx(0);
9246  Findices[in.admsNodeID_b2] = in.li_b2;
9247  Qindices[in.admsNodeID_b2] = in.li_b2;
9248  dfdp[in.admsNodeID_c3] += staticContributions[in.admsNodeID_c3].dx(0);
9249  dqdp[in.admsNodeID_c3] += dynamicContributions[in.admsNodeID_c3].dx(0);
9250  Findices[in.admsNodeID_c3] = in.li_c3;
9251  Qindices[in.admsNodeID_c3] = in.li_c3;
9252  dfdp[in.admsNodeID_c4] += staticContributions[in.admsNodeID_c4].dx(0);
9253  dqdp[in.admsNodeID_c4] += dynamicContributions[in.admsNodeID_c4].dx(0);
9254  Findices[in.admsNodeID_c4] = in.li_c4;
9255  Qindices[in.admsNodeID_c4] = in.li_c4;
9256  dfdp[in.admsNodeID_c2] += staticContributions[in.admsNodeID_c2].dx(0);
9257  dqdp[in.admsNodeID_c2] += dynamicContributions[in.admsNodeID_c2].dx(0);
9258  Findices[in.admsNodeID_c2] = in.li_c2;
9259  Qindices[in.admsNodeID_c2] = in.li_c2;
9260  dfdp[in.admsNodeID_c1] += staticContributions[in.admsNodeID_c1].dx(0);
9261  dqdp[in.admsNodeID_c1] += dynamicContributions[in.admsNodeID_c1].dx(0);
9262  Findices[in.admsNodeID_c1] = in.li_c1;
9263  Qindices[in.admsNodeID_c1] = in.li_c1;
9264  dfdp[in.admsNodeID_noi] += staticContributions[in.admsNodeID_noi].dx(0);
9265  dqdp[in.admsNodeID_noi] += dynamicContributions[in.admsNodeID_noi].dx(0);
9266  Findices[in.admsNodeID_noi] = in.li_noi;
9267  Qindices[in.admsNodeID_noi] = in.li_noi;
9268 
9269 
9270 }
9271 
9272 //-----------------------------------------------------------------------------
9273 // Function : ModelSensitivity::operator()
9274 // Purpose : return sensitivity for a single model parameter
9275 // Special Notes :
9276 // Scope : public
9277 // Creator : admsXml
9278 // Creation Date :
9279 //-----------------------------------------------------------------------------
9280 /// Compute sensitivity to a specified model
9281 /// parameter of all device instances of that model's outputs
9282 ///
9283 ///
9284 /// @param[in] entity The device entity that owns the parameter
9285 /// @param[in] name The unadorned parameter name specific to the entity
9286 /// @param[out] dfdp The derivative of the F vector with respect to the parameter
9287 /// @param[out] dqdp The derivative of the Q vector with respect to the parameter
9288 /// @param[out] dbdp The derivative of the B vector with respect to the parameter
9289 /// @param[out] Findices The indices into the F vector corresponding to the elements of dfdp
9290 /// @param[out] Qindices The indices into the Q vector corresponding to the elements of dfdp
9291 /// @param[out] Bindices The indices into the B vector corresponding to the elements of dfdp
9292 ///
9293 ///
9294 void ModelSensitivity::operator()
9295  (
9296  const ParameterBase &entity,
9297  const std::string &name,
9298  std::vector<double> & dfdp,
9299  std::vector<double> & dqdp,
9300  std::vector<double> & dbdp,
9301  std::vector<int> & Findices,
9302  std::vector<int> & Qindices,
9303  std::vector<int> & Bindices
9304  ) const
9305 {
9306  const ParameterBase * e1 = &entity;
9307  const Model & mod = *(dynamic_cast<const Model *> (e1));
9308  int sizeInstance = mod.instanceContainer.size();
9309 
9310  dfdp.resize((13+0)*sizeInstance);
9311  dqdp.resize((13+0)*sizeInstance);
9312  Findices.resize((13+0)*sizeInstance);
9313  Qindices.resize((13+0)*sizeInstance);
9314 
9315  std::vector <double> probeVars(16);
9316  std::vector <AdmsSensFadType> staticContributions(13+0);
9317  std::vector <AdmsSensFadType> dynamicContributions(13+0);
9318 
9319 
9320  // Copy out all the model parameters (doubles) into FAD types
9321  // Keep a map so we can set the right one to the independent variable
9322  // We do this solely to avoid a big ugly "if/else" block just to find the
9323  // one parameter we're doing sensitivities on.
9324  unordered_map <std::string,AdmsSensFadType*,HashNoCase,EqualNoCase> modParamMap;
9325 
9326  // reals
9327  AdmsSensFadType modelPar_TREF=mod.TREF;
9328  bool modelPar_given_TREF=mod.given("TREF");
9329  modParamMap["TREF"] = &modelPar_TREF;
9330  AdmsSensFadType modelPar_DTA=mod.DTA;
9331  bool modelPar_given_DTA=mod.given("DTA");
9332  modParamMap["DTA"] = &modelPar_DTA;
9333  AdmsSensFadType modelPar_IS=mod.IS;
9334  bool modelPar_given_IS=mod.given("IS");
9335  modParamMap["IS"] = &modelPar_IS;
9336  AdmsSensFadType modelPar_IK=mod.IK;
9337  bool modelPar_given_IK=mod.given("IK");
9338  modParamMap["IK"] = &modelPar_IK;
9339  AdmsSensFadType modelPar_VER=mod.VER;
9340  bool modelPar_given_VER=mod.given("VER");
9341  modParamMap["VER"] = &modelPar_VER;
9342  AdmsSensFadType modelPar_VEF=mod.VEF;
9343  bool modelPar_given_VEF=mod.given("VEF");
9344  modParamMap["VEF"] = &modelPar_VEF;
9345  AdmsSensFadType modelPar_BF=mod.BF;
9346  bool modelPar_given_BF=mod.given("BF");
9347  modParamMap["BF"] = &modelPar_BF;
9348  AdmsSensFadType modelPar_IBF=mod.IBF;
9349  bool modelPar_given_IBF=mod.given("IBF");
9350  modParamMap["IBF"] = &modelPar_IBF;
9351  AdmsSensFadType modelPar_MLF=mod.MLF;
9352  bool modelPar_given_MLF=mod.given("MLF");
9353  modParamMap["MLF"] = &modelPar_MLF;
9354  AdmsSensFadType modelPar_XIBI=mod.XIBI;
9355  bool modelPar_given_XIBI=mod.given("XIBI");
9356  modParamMap["XIBI"] = &modelPar_XIBI;
9357  AdmsSensFadType modelPar_IZEB=mod.IZEB;
9358  bool modelPar_given_IZEB=mod.given("IZEB");
9359  modParamMap["IZEB"] = &modelPar_IZEB;
9360  AdmsSensFadType modelPar_NZEB=mod.NZEB;
9361  bool modelPar_given_NZEB=mod.given("NZEB");
9362  modParamMap["NZEB"] = &modelPar_NZEB;
9363  AdmsSensFadType modelPar_BRI=mod.BRI;
9364  bool modelPar_given_BRI=mod.given("BRI");
9365  modParamMap["BRI"] = &modelPar_BRI;
9366  AdmsSensFadType modelPar_IBR=mod.IBR;
9367  bool modelPar_given_IBR=mod.given("IBR");
9368  modParamMap["IBR"] = &modelPar_IBR;
9369  AdmsSensFadType modelPar_VLR=mod.VLR;
9370  bool modelPar_given_VLR=mod.given("VLR");
9371  modParamMap["VLR"] = &modelPar_VLR;
9372  AdmsSensFadType modelPar_XEXT=mod.XEXT;
9373  bool modelPar_given_XEXT=mod.given("XEXT");
9374  modParamMap["XEXT"] = &modelPar_XEXT;
9375  AdmsSensFadType modelPar_WAVL=mod.WAVL;
9376  bool modelPar_given_WAVL=mod.given("WAVL");
9377  modParamMap["WAVL"] = &modelPar_WAVL;
9378  AdmsSensFadType modelPar_VAVL=mod.VAVL;
9379  bool modelPar_given_VAVL=mod.given("VAVL");
9380  modParamMap["VAVL"] = &modelPar_VAVL;
9381  AdmsSensFadType modelPar_SFH=mod.SFH;
9382  bool modelPar_given_SFH=mod.given("SFH");
9383  modParamMap["SFH"] = &modelPar_SFH;
9384  AdmsSensFadType modelPar_RE=mod.RE;
9385  bool modelPar_given_RE=mod.given("RE");
9386  modParamMap["RE"] = &modelPar_RE;
9387  AdmsSensFadType modelPar_RBC=mod.RBC;
9388  bool modelPar_given_RBC=mod.given("RBC");
9389  modParamMap["RBC"] = &modelPar_RBC;
9390  AdmsSensFadType modelPar_RBV=mod.RBV;
9391  bool modelPar_given_RBV=mod.given("RBV");
9392  modParamMap["RBV"] = &modelPar_RBV;
9393  AdmsSensFadType modelPar_RCC=mod.RCC;
9394  bool modelPar_given_RCC=mod.given("RCC");
9395  modParamMap["RCC"] = &modelPar_RCC;
9396  AdmsSensFadType modelPar_RCV=mod.RCV;
9397  bool modelPar_given_RCV=mod.given("RCV");
9398  modParamMap["RCV"] = &modelPar_RCV;
9399  AdmsSensFadType modelPar_SCRCV=mod.SCRCV;
9400  bool modelPar_given_SCRCV=mod.given("SCRCV");
9401  modParamMap["SCRCV"] = &modelPar_SCRCV;
9402  AdmsSensFadType modelPar_IHC=mod.IHC;
9403  bool modelPar_given_IHC=mod.given("IHC");
9404  modParamMap["IHC"] = &modelPar_IHC;
9405  AdmsSensFadType modelPar_AXI=mod.AXI;
9406  bool modelPar_given_AXI=mod.given("AXI");
9407  modParamMap["AXI"] = &modelPar_AXI;
9408  AdmsSensFadType modelPar_CJE=mod.CJE;
9409  bool modelPar_given_CJE=mod.given("CJE");
9410  modParamMap["CJE"] = &modelPar_CJE;
9411  AdmsSensFadType modelPar_VDE=mod.VDE;
9412  bool modelPar_given_VDE=mod.given("VDE");
9413  modParamMap["VDE"] = &modelPar_VDE;
9414  AdmsSensFadType modelPar_PE=mod.PE;
9415  bool modelPar_given_PE=mod.given("PE");
9416  modParamMap["PE"] = &modelPar_PE;
9417  AdmsSensFadType modelPar_XCJE=mod.XCJE;
9418  bool modelPar_given_XCJE=mod.given("XCJE");
9419  modParamMap["XCJE"] = &modelPar_XCJE;
9420  AdmsSensFadType modelPar_CBEO=mod.CBEO;
9421  bool modelPar_given_CBEO=mod.given("CBEO");
9422  modParamMap["CBEO"] = &modelPar_CBEO;
9423  AdmsSensFadType modelPar_CJC=mod.CJC;
9424  bool modelPar_given_CJC=mod.given("CJC");
9425  modParamMap["CJC"] = &modelPar_CJC;
9426  AdmsSensFadType modelPar_VDC=mod.VDC;
9427  bool modelPar_given_VDC=mod.given("VDC");
9428  modParamMap["VDC"] = &modelPar_VDC;
9429  AdmsSensFadType modelPar_PC=mod.PC;
9430  bool modelPar_given_PC=mod.given("PC");
9431  modParamMap["PC"] = &modelPar_PC;
9432  AdmsSensFadType modelPar_XP=mod.XP;
9433  bool modelPar_given_XP=mod.given("XP");
9434  modParamMap["XP"] = &modelPar_XP;
9435  AdmsSensFadType modelPar_MC=mod.MC;
9436  bool modelPar_given_MC=mod.given("MC");
9437  modParamMap["MC"] = &modelPar_MC;
9438  AdmsSensFadType modelPar_XCJC=mod.XCJC;
9439  bool modelPar_given_XCJC=mod.given("XCJC");
9440  modParamMap["XCJC"] = &modelPar_XCJC;
9441  AdmsSensFadType modelPar_RCBLX=mod.RCBLX;
9442  bool modelPar_given_RCBLX=mod.given("RCBLX");
9443  modParamMap["RCBLX"] = &modelPar_RCBLX;
9444  AdmsSensFadType modelPar_RCBLI=mod.RCBLI;
9445  bool modelPar_given_RCBLI=mod.given("RCBLI");
9446  modParamMap["RCBLI"] = &modelPar_RCBLI;
9447  AdmsSensFadType modelPar_CBCO=mod.CBCO;
9448  bool modelPar_given_CBCO=mod.given("CBCO");
9449  modParamMap["CBCO"] = &modelPar_CBCO;
9450  AdmsSensFadType modelPar_MTAU=mod.MTAU;
9451  bool modelPar_given_MTAU=mod.given("MTAU");
9452  modParamMap["MTAU"] = &modelPar_MTAU;
9453  AdmsSensFadType modelPar_TAUE=mod.TAUE;
9454  bool modelPar_given_TAUE=mod.given("TAUE");
9455  modParamMap["TAUE"] = &modelPar_TAUE;
9456  AdmsSensFadType modelPar_TAUB=mod.TAUB;
9457  bool modelPar_given_TAUB=mod.given("TAUB");
9458  modParamMap["TAUB"] = &modelPar_TAUB;
9459  AdmsSensFadType modelPar_TEPI=mod.TEPI;
9460  bool modelPar_given_TEPI=mod.given("TEPI");
9461  modParamMap["TEPI"] = &modelPar_TEPI;
9462  AdmsSensFadType modelPar_TAUR=mod.TAUR;
9463  bool modelPar_given_TAUR=mod.given("TAUR");
9464  modParamMap["TAUR"] = &modelPar_TAUR;
9465  AdmsSensFadType modelPar_DEG=mod.DEG;
9466  bool modelPar_given_DEG=mod.given("DEG");
9467  modParamMap["DEG"] = &modelPar_DEG;
9468  AdmsSensFadType modelPar_XREC=mod.XREC;
9469  bool modelPar_given_XREC=mod.given("XREC");
9470  modParamMap["XREC"] = &modelPar_XREC;
9471  AdmsSensFadType modelPar_AQBO=mod.AQBO;
9472  bool modelPar_given_AQBO=mod.given("AQBO");
9473  modParamMap["AQBO"] = &modelPar_AQBO;
9474  AdmsSensFadType modelPar_AE=mod.AE;
9475  bool modelPar_given_AE=mod.given("AE");
9476  modParamMap["AE"] = &modelPar_AE;
9477  AdmsSensFadType modelPar_AB=mod.AB;
9478  bool modelPar_given_AB=mod.given("AB");
9479  modParamMap["AB"] = &modelPar_AB;
9480  AdmsSensFadType modelPar_AEPI=mod.AEPI;
9481  bool modelPar_given_AEPI=mod.given("AEPI");
9482  modParamMap["AEPI"] = &modelPar_AEPI;
9483  AdmsSensFadType modelPar_AEX=mod.AEX;
9484  bool modelPar_given_AEX=mod.given("AEX");
9485  modParamMap["AEX"] = &modelPar_AEX;
9486  AdmsSensFadType modelPar_AC=mod.AC;
9487  bool modelPar_given_AC=mod.given("AC");
9488  modParamMap["AC"] = &modelPar_AC;
9489  AdmsSensFadType modelPar_ACBL=mod.ACBL;
9490  bool modelPar_given_ACBL=mod.given("ACBL");
9491  modParamMap["ACBL"] = &modelPar_ACBL;
9492  AdmsSensFadType modelPar_DVGBF=mod.DVGBF;
9493  bool modelPar_given_DVGBF=mod.given("DVGBF");
9494  modParamMap["DVGBF"] = &modelPar_DVGBF;
9495  AdmsSensFadType modelPar_DVGBR=mod.DVGBR;
9496  bool modelPar_given_DVGBR=mod.given("DVGBR");
9497  modParamMap["DVGBR"] = &modelPar_DVGBR;
9498  AdmsSensFadType modelPar_VGB=mod.VGB;
9499  bool modelPar_given_VGB=mod.given("VGB");
9500  modParamMap["VGB"] = &modelPar_VGB;
9501  AdmsSensFadType modelPar_VGC=mod.VGC;
9502  bool modelPar_given_VGC=mod.given("VGC");
9503  modParamMap["VGC"] = &modelPar_VGC;
9504  AdmsSensFadType modelPar_VGJ=mod.VGJ;
9505  bool modelPar_given_VGJ=mod.given("VGJ");
9506  modParamMap["VGJ"] = &modelPar_VGJ;
9507  AdmsSensFadType modelPar_VGZEB=mod.VGZEB;
9508  bool modelPar_given_VGZEB=mod.given("VGZEB");
9509  modParamMap["VGZEB"] = &modelPar_VGZEB;
9510  AdmsSensFadType modelPar_AVGEB=mod.AVGEB;
9511  bool modelPar_given_AVGEB=mod.given("AVGEB");
9512  modParamMap["AVGEB"] = &modelPar_AVGEB;
9513  AdmsSensFadType modelPar_TVGEB=mod.TVGEB;
9514  bool modelPar_given_TVGEB=mod.given("TVGEB");
9515  modParamMap["TVGEB"] = &modelPar_TVGEB;
9516  AdmsSensFadType modelPar_DVGTE=mod.DVGTE;
9517  bool modelPar_given_DVGTE=mod.given("DVGTE");
9518  modParamMap["DVGTE"] = &modelPar_DVGTE;
9519  AdmsSensFadType modelPar_DAIS=mod.DAIS;
9520  bool modelPar_given_DAIS=mod.given("DAIS");
9521  modParamMap["DAIS"] = &modelPar_DAIS;
9522  AdmsSensFadType modelPar_AF=mod.AF;
9523  bool modelPar_given_AF=mod.given("AF");
9524  modParamMap["AF"] = &modelPar_AF;
9525  AdmsSensFadType modelPar_KF=mod.KF;
9526  bool modelPar_given_KF=mod.given("KF");
9527  modParamMap["KF"] = &modelPar_KF;
9528  AdmsSensFadType modelPar_KFN=mod.KFN;
9529  bool modelPar_given_KFN=mod.given("KFN");
9530  modParamMap["KFN"] = &modelPar_KFN;
9531  AdmsSensFadType modelPar_ISS=mod.ISS;
9532  bool modelPar_given_ISS=mod.given("ISS");
9533  modParamMap["ISS"] = &modelPar_ISS;
9534  AdmsSensFadType modelPar_ICSS=mod.ICSS;
9535  bool modelPar_given_ICSS=mod.given("ICSS");
9536  modParamMap["ICSS"] = &modelPar_ICSS;
9537  AdmsSensFadType modelPar_IKS=mod.IKS;
9538  bool modelPar_given_IKS=mod.given("IKS");
9539  modParamMap["IKS"] = &modelPar_IKS;
9540  AdmsSensFadType modelPar_CJS=mod.CJS;
9541  bool modelPar_given_CJS=mod.given("CJS");
9542  modParamMap["CJS"] = &modelPar_CJS;
9543  AdmsSensFadType modelPar_VDS=mod.VDS;
9544  bool modelPar_given_VDS=mod.given("VDS");
9545  modParamMap["VDS"] = &modelPar_VDS;
9546  AdmsSensFadType modelPar_PS=mod.PS;
9547  bool modelPar_given_PS=mod.given("PS");
9548  modParamMap["PS"] = &modelPar_PS;
9549  AdmsSensFadType modelPar_VGS=mod.VGS;
9550  bool modelPar_given_VGS=mod.given("VGS");
9551  modParamMap["VGS"] = &modelPar_VGS;
9552  AdmsSensFadType modelPar_AS=mod.AS;
9553  bool modelPar_given_AS=mod.given("AS");
9554  modParamMap["AS"] = &modelPar_AS;
9555  AdmsSensFadType modelPar_ASUB=mod.ASUB;
9556  bool modelPar_given_ASUB=mod.given("ASUB");
9557  modParamMap["ASUB"] = &modelPar_ASUB;
9558  AdmsSensFadType modelPar_RTH=mod.RTH;
9559  bool modelPar_given_RTH=mod.given("RTH");
9560  modParamMap["RTH"] = &modelPar_RTH;
9561  AdmsSensFadType modelPar_CTH=mod.CTH;
9562  bool modelPar_given_CTH=mod.given("CTH");
9563  modParamMap["CTH"] = &modelPar_CTH;
9564  AdmsSensFadType modelPar_ATH=mod.ATH;
9565  bool modelPar_given_ATH=mod.given("ATH");
9566  modParamMap["ATH"] = &modelPar_ATH;
9567  AdmsSensFadType modelPar_MULT=mod.MULT;
9568  bool modelPar_given_MULT=mod.given("MULT");
9569  modParamMap["MULT"] = &modelPar_MULT;
9570  AdmsSensFadType modelPar_GMIN=mod.GMIN;
9571  bool modelPar_given_GMIN=mod.given("GMIN");
9572  modParamMap["GMIN"] = &modelPar_GMIN;
9573 
9574 
9575  // hidden reals
9576 
9577 
9578  // non-reals (including hiddens)
9579  int modelPar_LEVEL=mod.LEVEL;
9580  bool modelPar_given_LEVEL=mod.given("LEVEL");
9581  int modelPar_EXMOD=mod.EXMOD;
9582  bool modelPar_given_EXMOD=mod.given("EXMOD");
9583  int modelPar_EXPHI=mod.EXPHI;
9584  bool modelPar_given_EXPHI=mod.given("EXPHI");
9585  int modelPar_EXAVL=mod.EXAVL;
9586  bool modelPar_given_EXAVL=mod.given("EXAVL");
9587  int modelPar_EXSUB=mod.EXSUB;
9588  bool modelPar_given_EXSUB=mod.given("EXSUB");
9589  int modelPar_KAVL=mod.KAVL;
9590  bool modelPar_given_KAVL=mod.given("KAVL");
9591  int modelPar_TYPE=mod.TYPE;
9592  bool modelPar_given_TYPE=mod.given("TYPE");
9593 
9594 
9595  // Set the one parameter whose name was passed in to be the independent
9596  // variable for Sacado purposes. Since we stored variable pointers, this
9597  // makes sure that that ONE variable gets set right.
9598  // FIXME: make this check name for presence first! Segfault on invalid.
9599  modParamMap[name]->diff(0,1);
9600 
9601  //make local copies of all model vars
9602  //reals
9603 
9604 
9605  // non-reals
9606 
9607 
9608 
9609  // Now loop over all instances and do the deed
9610  int inst=0;
9611  for (std::vector<Instance*>::const_iterator in_it=mod.instanceContainer.begin(); in_it != mod.instanceContainer.end(); ++in_it,++inst)
9612  {
9613 
9614  Instance & in=*(*in_it);
9615  // initialize contributions to zero (automatically sets derivatives to zero)
9616  for (int i=0; i < 13+0 ; ++i)
9617  {
9618  staticContributions[i]=0;
9619  dynamicContributions[i]=0;
9620  }
9621 
9622 
9623 
9624  // Copy out all the instance parameters (doubles) into FAD types
9625  // reals
9626  AdmsSensFadType instancePar_MULT=in.MULT;
9627  bool instancePar_given_MULT=in.given("MULT");
9628 
9629 
9630  // real hidden instance
9631 
9632 
9633  // Copy all the non-real instance params into vars of their appropriate type:
9634 
9635 
9636 
9637 
9638  // If there are any instance parameters that were not given, and have
9639  // corresponding model params, copy the model param into the instance.
9640  // This was already done by the instance constructor, but we do it again
9641  // because now we're propagating derivatives, and the user could be trying
9642  // to get sensitivity to the model parameter.
9643  if (!(in.given("MULT")))
9644  {
9645  instancePar_MULT = modelPar_MULT;
9646  }
9647 
9648 
9649  //make local copies of all instance vars
9650  //reals
9651  AdmsSensFadType instanceVar_Tk=in.Tk;
9652  AdmsSensFadType instanceVar_Izteb=in.Izteb;
9653  AdmsSensFadType instanceVar_RE_TM=in.RE_TM;
9654  AdmsSensFadType instanceVar_RBC_TM=in.RBC_TM;
9655  AdmsSensFadType instanceVar_GCCxx_TM=in.GCCxx_TM;
9656  AdmsSensFadType instanceVar_GCCex_TM=in.GCCex_TM;
9657  AdmsSensFadType instanceVar_GCCin_TM=in.GCCin_TM;
9658  AdmsSensFadType instanceVar_KF_M=in.KF_M;
9659  AdmsSensFadType instanceVar_KFN_M=in.KFN_M;
9660  AdmsSensFadType instanceVar_qBI=in.qBI;
9661  AdmsSensFadType instanceVar_Ir=in.Ir;
9662  AdmsSensFadType instanceVar_If=in.If;
9663  AdmsSensFadType instanceVar_Ib1=in.Ib1;
9664  AdmsSensFadType instanceVar_Ib1_s=in.Ib1_s;
9665  AdmsSensFadType instanceVar_Ib2=in.Ib2;
9666  AdmsSensFadType instanceVar_Ib3=in.Ib3;
9667  AdmsSensFadType instanceVar_Iex=in.Iex;
9668  AdmsSensFadType instanceVar_XIex=in.XIex;
9669  AdmsSensFadType instanceVar_Isub=in.Isub;
9670  AdmsSensFadType instanceVar_XIsub=in.XIsub;
9671  AdmsSensFadType instanceVar_Rb2=in.Rb2;
9672  AdmsSensFadType instanceVar_Gem=in.Gem;
9673  AdmsSensFadType instanceVar_eVb1b2=in.eVb1b2;
9674 
9675 
9676  //non-reals
9677 
9678 
9679 
9680  Linear::Vector * solVectorPtr = in.extData.nextSolVectorPtr;
9681 
9682  // extract solution variables and set as Fad independent variables.
9683  probeVars[in.admsProbeID_V_noi_e1] = (*solVectorPtr)[in.li_noi] - (*solVectorPtr)[in.li_e1];
9684  probeVars[in.admsProbeID_V_c3_c1] = (*solVectorPtr)[in.li_c3] - (*solVectorPtr)[in.li_c1];
9685  probeVars[in.admsProbeID_V_c3_c4] = (*solVectorPtr)[in.li_c3] - (*solVectorPtr)[in.li_c4];
9686  probeVars[in.admsProbeID_V_c4_c1] = (*solVectorPtr)[in.li_c4] - (*solVectorPtr)[in.li_c1];
9687  probeVars[in.admsProbeID_V_b_c] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_c];
9688  probeVars[in.admsProbeID_V_b_e] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_e];
9689  probeVars[in.admsProbeID_V_b_b1] = (*solVectorPtr)[in.li_b] - (*solVectorPtr)[in.li_b1];
9690  probeVars[in.admsProbeID_V_e_e1] = (*solVectorPtr)[in.li_e] - (*solVectorPtr)[in.li_e1];
9691  probeVars[in.admsProbeID_V_c1_c2] = (*solVectorPtr)[in.li_c1] - (*solVectorPtr)[in.li_c2];
9692  probeVars[in.admsProbeID_V_s_c1] = (*solVectorPtr)[in.li_s] - (*solVectorPtr)[in.li_c1];
9693  probeVars[in.admsProbeID_V_b1_b2] = (*solVectorPtr)[in.li_b1] - (*solVectorPtr)[in.li_b2];
9694  probeVars[in.admsProbeID_V_b1_e1] = (*solVectorPtr)[in.li_b1] - (*solVectorPtr)[in.li_e1];
9695  probeVars[in.admsProbeID_V_b2_e1] = (*solVectorPtr)[in.li_b2] - (*solVectorPtr)[in.li_e1];
9696  probeVars[in.admsProbeID_V_b2_c2] = (*solVectorPtr)[in.li_b2] - (*solVectorPtr)[in.li_c2];
9697  probeVars[in.admsProbeID_V_b2_c1] = (*solVectorPtr)[in.li_b2] - (*solVectorPtr)[in.li_c1];
9698  probeVars[in.admsProbeID_V_dt_GND] = (*solVectorPtr)[in.li_dt];
9699 
9700  // pre-multiply any "typed" probes (i.e. those limited with "typedpnjlim")
9701  probeVars[in.admsProbeID_V_b1_b2] *= modelPar_TYPE;
9702  probeVars[in.admsProbeID_V_b1_e1] *= modelPar_TYPE;
9703  probeVars[in.admsProbeID_V_b2_c2] *= modelPar_TYPE;
9704  probeVars[in.admsProbeID_V_b2_c1] *= modelPar_TYPE;
9705 
9706 
9707 
9708  // Now call the function that does the heavy lifting.
9709 
9710  evaluateModelEquations(
9711  probeVars,
9712  // probe constants
9713  in.admsProbeID_V_noi_e1,
9714  in.admsProbeID_V_c3_c1,
9715  in.admsProbeID_V_c3_c4,
9716  in.admsProbeID_V_c4_c1,
9717  in.admsProbeID_V_b_c,
9718  in.admsProbeID_V_b_e,
9719  in.admsProbeID_V_b_b1,
9720  in.admsProbeID_V_e_e1,
9721  in.admsProbeID_V_c1_c2,
9722  in.admsProbeID_V_s_c1,
9723  in.admsProbeID_V_b1_b2,
9724  in.admsProbeID_V_b1_e1,
9725  in.admsProbeID_V_b2_e1,
9726  in.admsProbeID_V_b2_c2,
9727  in.admsProbeID_V_b2_c1,
9728  in.admsProbeID_V_dt_GND,
9729 
9730  // node constants
9731  in.admsNodeID_c,
9732  in.admsNodeID_b,
9733  in.admsNodeID_e,
9734  in.admsNodeID_s,
9735  in.admsNodeID_dt,
9736  in.admsNodeID_e1,
9737  in.admsNodeID_b1,
9738  in.admsNodeID_b2,
9739  in.admsNodeID_c3,
9740  in.admsNodeID_c4,
9741  in.admsNodeID_c2,
9742  in.admsNodeID_c1,
9743  in.admsNodeID_noi,
9744  // instance parameters
9745  // reals
9746  instancePar_MULT,
9747  instancePar_given_MULT,
9748  // instance variables
9749  // reals
9750  instanceVar_Tk,
9751  instanceVar_Izteb,
9752  instanceVar_RE_TM,
9753  instanceVar_RBC_TM,
9754  instanceVar_GCCxx_TM,
9755  instanceVar_GCCex_TM,
9756  instanceVar_GCCin_TM,
9757  instanceVar_KF_M,
9758  instanceVar_KFN_M,
9759  instanceVar_qBI,
9760  instanceVar_Ir,
9761  instanceVar_If,
9762  instanceVar_Ib1,
9763  instanceVar_Ib1_s,
9764  instanceVar_Ib2,
9765  instanceVar_Ib3,
9766  instanceVar_Iex,
9767  instanceVar_XIex,
9768  instanceVar_Isub,
9769  instanceVar_XIsub,
9770  instanceVar_Rb2,
9771  instanceVar_Gem,
9772  instanceVar_eVb1b2,
9773  // model parameters
9774  // reals
9775  modelPar_TREF,
9776  modelPar_given_TREF,
9777  modelPar_DTA,
9778  modelPar_given_DTA,
9779  modelPar_IS,
9780  modelPar_given_IS,
9781  modelPar_IK,
9782  modelPar_given_IK,
9783  modelPar_VER,
9784  modelPar_given_VER,
9785  modelPar_VEF,
9786  modelPar_given_VEF,
9787  modelPar_BF,
9788  modelPar_given_BF,
9789  modelPar_IBF,
9790  modelPar_given_IBF,
9791  modelPar_MLF,
9792  modelPar_given_MLF,
9793  modelPar_XIBI,
9794  modelPar_given_XIBI,
9795  modelPar_IZEB,
9796  modelPar_given_IZEB,
9797  modelPar_NZEB,
9798  modelPar_given_NZEB,
9799  modelPar_BRI,
9800  modelPar_given_BRI,
9801  modelPar_IBR,
9802  modelPar_given_IBR,
9803  modelPar_VLR,
9804  modelPar_given_VLR,
9805  modelPar_XEXT,
9806  modelPar_given_XEXT,
9807  modelPar_WAVL,
9808  modelPar_given_WAVL,
9809  modelPar_VAVL,
9810  modelPar_given_VAVL,
9811  modelPar_SFH,
9812  modelPar_given_SFH,
9813  modelPar_RE,
9814  modelPar_given_RE,
9815  modelPar_RBC,
9816  modelPar_given_RBC,
9817  modelPar_RBV,
9818  modelPar_given_RBV,
9819  modelPar_RCC,
9820  modelPar_given_RCC,
9821  modelPar_RCV,
9822  modelPar_given_RCV,
9823  modelPar_SCRCV,
9824  modelPar_given_SCRCV,
9825  modelPar_IHC,
9826  modelPar_given_IHC,
9827  modelPar_AXI,
9828  modelPar_given_AXI,
9829  modelPar_CJE,
9830  modelPar_given_CJE,
9831  modelPar_VDE,
9832  modelPar_given_VDE,
9833  modelPar_PE,
9834  modelPar_given_PE,
9835  modelPar_XCJE,
9836  modelPar_given_XCJE,
9837  modelPar_CBEO,
9838  modelPar_given_CBEO,
9839  modelPar_CJC,
9840  modelPar_given_CJC,
9841  modelPar_VDC,
9842  modelPar_given_VDC,
9843  modelPar_PC,
9844  modelPar_given_PC,
9845  modelPar_XP,
9846  modelPar_given_XP,
9847  modelPar_MC,
9848  modelPar_given_MC,
9849  modelPar_XCJC,
9850  modelPar_given_XCJC,
9851  modelPar_RCBLX,
9852  modelPar_given_RCBLX,
9853  modelPar_RCBLI,
9854  modelPar_given_RCBLI,
9855  modelPar_CBCO,
9856  modelPar_given_CBCO,
9857  modelPar_MTAU,
9858  modelPar_given_MTAU,
9859  modelPar_TAUE,
9860  modelPar_given_TAUE,
9861  modelPar_TAUB,
9862  modelPar_given_TAUB,
9863  modelPar_TEPI,
9864  modelPar_given_TEPI,
9865  modelPar_TAUR,
9866  modelPar_given_TAUR,
9867  modelPar_DEG,
9868  modelPar_given_DEG,
9869  modelPar_XREC,
9870  modelPar_given_XREC,
9871  modelPar_AQBO,
9872  modelPar_given_AQBO,
9873  modelPar_AE,
9874  modelPar_given_AE,
9875  modelPar_AB,
9876  modelPar_given_AB,
9877  modelPar_AEPI,
9878  modelPar_given_AEPI,
9879  modelPar_AEX,
9880  modelPar_given_AEX,
9881  modelPar_AC,
9882  modelPar_given_AC,
9883  modelPar_ACBL,
9884  modelPar_given_ACBL,
9885  modelPar_DVGBF,
9886  modelPar_given_DVGBF,
9887  modelPar_DVGBR,
9888  modelPar_given_DVGBR,
9889  modelPar_VGB,
9890  modelPar_given_VGB,
9891  modelPar_VGC,
9892  modelPar_given_VGC,
9893  modelPar_VGJ,
9894  modelPar_given_VGJ,
9895  modelPar_VGZEB,
9896  modelPar_given_VGZEB,
9897  modelPar_AVGEB,
9898  modelPar_given_AVGEB,
9899  modelPar_TVGEB,
9900  modelPar_given_TVGEB,
9901  modelPar_DVGTE,
9902  modelPar_given_DVGTE,
9903  modelPar_DAIS,
9904  modelPar_given_DAIS,
9905  modelPar_AF,
9906  modelPar_given_AF,
9907  modelPar_KF,
9908  modelPar_given_KF,
9909  modelPar_KFN,
9910  modelPar_given_KFN,
9911  modelPar_ISS,
9912  modelPar_given_ISS,
9913  modelPar_ICSS,
9914  modelPar_given_ICSS,
9915  modelPar_IKS,
9916  modelPar_given_IKS,
9917  modelPar_CJS,
9918  modelPar_given_CJS,
9919  modelPar_VDS,
9920  modelPar_given_VDS,
9921  modelPar_PS,
9922  modelPar_given_PS,
9923  modelPar_VGS,
9924  modelPar_given_VGS,
9925  modelPar_AS,
9926  modelPar_given_AS,
9927  modelPar_ASUB,
9928  modelPar_given_ASUB,
9929  modelPar_RTH,
9930  modelPar_given_RTH,
9931  modelPar_CTH,
9932  modelPar_given_CTH,
9933  modelPar_ATH,
9934  modelPar_given_ATH,
9935  modelPar_MULT,
9936  modelPar_given_MULT,
9937  modelPar_GMIN,
9938  modelPar_given_GMIN,
9939  // non-reals (including hidden)
9940  modelPar_LEVEL,
9941  modelPar_given_LEVEL,
9942  modelPar_EXMOD,
9943  modelPar_given_EXMOD,
9944  modelPar_EXPHI,
9945  modelPar_given_EXPHI,
9946  modelPar_EXAVL,
9947  modelPar_given_EXAVL,
9948  modelPar_EXSUB,
9949  modelPar_given_EXSUB,
9950  modelPar_KAVL,
9951  modelPar_given_KAVL,
9952  modelPar_TYPE,
9953  modelPar_given_TYPE,
9954  in.admsTemperature,
9955  in.adms_vt_nom,
9956  in.getDeviceOptions().gmin,
9957  staticContributions,
9958  dynamicContributions,
9959  in);
9960 
9961 
9962  // We now have the F and Q vector stuff, populate the dependencies:
9963 
9964  dfdp[in.admsNodeID_c+inst*(13+0)] += staticContributions[in.admsNodeID_c].dx(0);
9965  dqdp[in.admsNodeID_c+inst*(13+0)] += dynamicContributions[in.admsNodeID_c].dx(0);
9966  Findices[in.admsNodeID_c+inst*(13+0)] = in.li_c;
9967  Qindices[in.admsNodeID_c+inst*(13+0)] = in.li_c;
9968  dfdp[in.admsNodeID_b+inst*(13+0)] += staticContributions[in.admsNodeID_b].dx(0);
9969  dqdp[in.admsNodeID_b+inst*(13+0)] += dynamicContributions[in.admsNodeID_b].dx(0);
9970  Findices[in.admsNodeID_b+inst*(13+0)] = in.li_b;
9971  Qindices[in.admsNodeID_b+inst*(13+0)] = in.li_b;
9972  dfdp[in.admsNodeID_e+inst*(13+0)] += staticContributions[in.admsNodeID_e].dx(0);
9973  dqdp[in.admsNodeID_e+inst*(13+0)] += dynamicContributions[in.admsNodeID_e].dx(0);
9974  Findices[in.admsNodeID_e+inst*(13+0)] = in.li_e;
9975  Qindices[in.admsNodeID_e+inst*(13+0)] = in.li_e;
9976  dfdp[in.admsNodeID_s+inst*(13+0)] += staticContributions[in.admsNodeID_s].dx(0);
9977  dqdp[in.admsNodeID_s+inst*(13+0)] += dynamicContributions[in.admsNodeID_s].dx(0);
9978  Findices[in.admsNodeID_s+inst*(13+0)] = in.li_s;
9979  Qindices[in.admsNodeID_s+inst*(13+0)] = in.li_s;
9980  dfdp[in.admsNodeID_dt+inst*(13+0)] += staticContributions[in.admsNodeID_dt].dx(0);
9981  dqdp[in.admsNodeID_dt+inst*(13+0)] += dynamicContributions[in.admsNodeID_dt].dx(0);
9982  Findices[in.admsNodeID_dt+inst*(13+0)] = in.li_dt;
9983  Qindices[in.admsNodeID_dt+inst*(13+0)] = in.li_dt;
9984  dfdp[in.admsNodeID_e1+inst*(13+0)] += staticContributions[in.admsNodeID_e1].dx(0);
9985  dqdp[in.admsNodeID_e1+inst*(13+0)] += dynamicContributions[in.admsNodeID_e1].dx(0);
9986  Findices[in.admsNodeID_e1+inst*(13+0)] = in.li_e1;
9987  Qindices[in.admsNodeID_e1+inst*(13+0)] = in.li_e1;
9988  dfdp[in.admsNodeID_b1+inst*(13+0)] += staticContributions[in.admsNodeID_b1].dx(0);
9989  dqdp[in.admsNodeID_b1+inst*(13+0)] += dynamicContributions[in.admsNodeID_b1].dx(0);
9990  Findices[in.admsNodeID_b1+inst*(13+0)] = in.li_b1;
9991  Qindices[in.admsNodeID_b1+inst*(13+0)] = in.li_b1;
9992  dfdp[in.admsNodeID_b2+inst*(13+0)] += staticContributions[in.admsNodeID_b2].dx(0);
9993  dqdp[in.admsNodeID_b2+inst*(13+0)] += dynamicContributions[in.admsNodeID_b2].dx(0);
9994  Findices[in.admsNodeID_b2+inst*(13+0)] = in.li_b2;
9995  Qindices[in.admsNodeID_b2+inst*(13+0)] = in.li_b2;
9996  dfdp[in.admsNodeID_c3+inst*(13+0)] += staticContributions[in.admsNodeID_c3].dx(0);
9997  dqdp[in.admsNodeID_c3+inst*(13+0)] += dynamicContributions[in.admsNodeID_c3].dx(0);
9998  Findices[in.admsNodeID_c3+inst*(13+0)] = in.li_c3;
9999  Qindices[in.admsNodeID_c3+inst*(13+0)] = in.li_c3;
10000  dfdp[in.admsNodeID_c4+inst*(13+0)] += staticContributions[in.admsNodeID_c4].dx(0);
10001  dqdp[in.admsNodeID_c4+inst*(13+0)] += dynamicContributions[in.admsNodeID_c4].dx(0);
10002  Findices[in.admsNodeID_c4+inst*(13+0)] = in.li_c4;
10003  Qindices[in.admsNodeID_c4+inst*(13+0)] = in.li_c4;
10004  dfdp[in.admsNodeID_c2+inst*(13+0)] += staticContributions[in.admsNodeID_c2].dx(0);
10005  dqdp[in.admsNodeID_c2+inst*(13+0)] += dynamicContributions[in.admsNodeID_c2].dx(0);
10006  Findices[in.admsNodeID_c2+inst*(13+0)] = in.li_c2;
10007  Qindices[in.admsNodeID_c2+inst*(13+0)] = in.li_c2;
10008  dfdp[in.admsNodeID_c1+inst*(13+0)] += staticContributions[in.admsNodeID_c1].dx(0);
10009  dqdp[in.admsNodeID_c1+inst*(13+0)] += dynamicContributions[in.admsNodeID_c1].dx(0);
10010  Findices[in.admsNodeID_c1+inst*(13+0)] = in.li_c1;
10011  Qindices[in.admsNodeID_c1+inst*(13+0)] = in.li_c1;
10012  dfdp[in.admsNodeID_noi+inst*(13+0)] += staticContributions[in.admsNodeID_noi].dx(0);
10013  dqdp[in.admsNodeID_noi+inst*(13+0)] += dynamicContributions[in.admsNodeID_noi].dx(0);
10014  Findices[in.admsNodeID_noi+inst*(13+0)] = in.li_noi;
10015  Qindices[in.admsNodeID_noi+inst*(13+0)] = in.li_noi;
10016  }
10017 
10018 }
10019 
10020 #endif // Xyce_ADMS_SENSITIVITIES
10021 
10022 } // namespace ADMSbjt504tva
10023 } // namespace Device
10024 } // namespace Xyce
const InstanceName & getName() const
const SolverState & solverState_
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
Instance(const Configuration &configuration, const InstanceBlock &instance_block, Model &model, const FactoryBlock &factory_block)
static void loadInstanceParameters(ParametricData< Instance > &instance_parameters)
Linear::Vector * nextSolVectorPtr
bool given(const std::string &parameter_name) const
Linear::Vector * daeQVectorPtr
virtual void forEachInstance(DeviceInstanceOp &op) const
Apply a device instance "op" to all instances associated with this model.
Pure virtual class to augment a linear system.
bool processInstanceParams()
processInstanceParams
void registerStateLIDs(const LocalIdVector &staLIDVecRef)
void addInternalNode(Util::SymbolTable &symbol_table, int index, const InstanceName &instance_name, const std::string &lead_name)
#define MC
std::vector< std::vector< int > > jacStamp
const JacobianStamp & jacobianStamp() const
#define AssertLIDs(cmp)
RetScalarT Vt(Arg1ScalarT U, Arg2ScalarT Ud)
bool updateTemperature(const double &temp=-999.0)
void jacStampMap_fixOrder(const JacobianStamp &stamp_parent, JacobianStamp &map2_parent, JacobianStamp &stamp, JacobianStamp &map2)
virtual void registerJacLIDs(const JacobianStamp &jacLIDVec)
static Device * factory(const Configuration &configuration, const FactoryBlock &factory_block)
void loadNodeSymbols(Util::SymbolTable &symbol_table) const
Populates and returns the store name map.
std::vector< Param > params
Parameters from the line.
static void loadModelParameters(ParametricData< Model > &model_parameters)
std::vector< AdmsFadType > staticContributions
void setParams(const std::vector< Param > &params)
const std::string & getName() const
void registerLIDs(const LocalIdVector &intLIDVecRef, const LocalIdVector &extLIDVecRef)
The FactoryBlock contains parameters needed by the device, instance and model creation functions...
static T adms_vt(const T temp)
const DeviceOptions & getDeviceOptions() const
Parameter is not to be documented.
Definition: N_DEV_Pars.h:72
std::vector< Instance * > instanceContainer
const DeviceOptions & deviceOptions_
std::vector< std::vector< int > > JacobianStamp
Definition: N_DEV_fwd.h:196
std::vector< AdmsFadType > dynamicContributions
Linear::Vector * nextStaVectorPtr
ScalarT trunc_ev(ScalarT Val, ScalarT Vprev, ScalarT Vmin, ScalarT Vmax)
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
IdVector LocalIdVector
Definition: N_DEV_fwd.h:198
Sacado::Fad::SFad< double, 1 > AdmsSensFadType
Class Configuration contains device configuration data.
Model(const Configuration &configuration, const ModelBlock &model_block, const FactoryBlock &factory_block)
void jacStampMap(const JacobianStamp &stamp_parent, IdVector &map_parent, JacobianStamp &map2_parent, JacobianStamp &stamp, IdVector &map, JacobianStamp &map2, int from, int to, int original_size)
const SolverState & getSolverState() const
void registerJacLIDs(const JacobianStamp &jacLIDVec)
Linear::Vector * currStaVectorPtr
Linear::Vector * daeFVectorPtr
const std::string & getType() const
Sacado::Fad::SFad< double, 16 > AdmsFadType
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.
Util::Param temp
operating temperature of ckt.
std::vector< Param > params
Linear::Matrix * dQdxMatrixPtr
void setModParams(const std::vector< Param > &params)
std::vector< std::vector< int > > jacMap2
virtual std::ostream & printOutInstances(std::ostream &os) const