Xyce  6.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
N_DEV_ADMSHBT_X.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-2014 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_ADMSHBT_X.C,v $
28 //
29 // Purpose :
30 //
31 // Special Notes : Generated from verilog file fbhhbt-2.1_nonoise_limited_inductors_typed.va with ADMS
32 // interface for Xyce 6.1.0
33 // DO NOT EDIT THIS FILE DIRECTLY! It may be overwritten!
34 //
35 // Creator : admsXml-2.3.0
36 //
37 // Creation Date : Mon, 02 Jun 2014 11:31:01
38 //
39 // Revision Information:
40 // ---------------------
41 //
42 // Revision Number: $Revision: 1.52 $
43 //
44 // Revision Date : $Date: 2014/06/02 17:46:47 $
45 //
46 // Current Owner : $Author: tvrusso $
47 //-------------------------------------------------------------------------
48 
49 #include <Xyce_config.h>
50 #include <N_DEV_ADMSHBT_X.h>
51 
52 
53 #include <N_UTL_Misc.h>
54 
55 #include <N_DEV_Const.h>
56 #include <N_DEV_DeviceOptions.h>
57 #include <N_DEV_DeviceMaster.h>
58 #include <N_DEV_ExternData.h>
59 #include <N_DEV_MatrixLoadData.h>
60 #include <N_DEV_SolverState.h>
61 #include <N_DEV_Message.h>
62 
63 #include <N_LAS_Matrix.h>
64 #include <N_LAS_Vector.h>
65 
66 namespace Xyce {
67 namespace Device {
68 namespace ADMSHBT_X {
69 std::vector< std::vector<int> > Instance::jacStamp;
70 std::vector<int> Instance::jacMap;
71 std::vector< std::vector<int> > Instance::jacMap2;
72 
73 
74 void
76 {
77  // Set up each parameter directly, using the up-cased variable name
78  // as the tag.
79 
80  // This kludge is to force us always to have an instance parameter
81  // that the device manager can set to the temperature, even if we have
82  // no "TEMP".
83  p.addPar("XYCEADMSINSTTEMP", 0.0, &ADMSHBT_X::Instance::admsInstTemp)
84  .setExpressionAccess(NO_DOC)
85  .setUnit(U_DEGK)
86  .setCategory(CAT_TEMP)
87  .setDescription("Internal-use parameter for setting device instance temperature");
88  p.addPar("TEMP", static_cast<double>(25.0), &ADMSHBT_X::Instance::Temp)
89  .setUnit(U_DEGC)
90  .setDescription("Device operating temperature");
91  p.addPar("N", static_cast<int>(1), &ADMSHBT_X::Instance::N)
92  .setUnit(U_NONE)
93  .setDescription("Number of emitter fingers");
94  p.addPar("L", static_cast<double>(30*1.0e-6), &ADMSHBT_X::Instance::L)
95  .setUnit(U_METER)
96  .setDescription("Length of emitter fingers");
97  p.addPar("W", static_cast<double>(3*1.0e-6), &ADMSHBT_X::Instance::W)
98  .setUnit(U_METER)
99  .setDescription("Width of emitter fingers");
100 
101 
102 }
103 
105 {
106  // Set up each parameter directly, using the up-cased variable name
107  // as the tag.
108 
109  // This kludge is to force us always to have a model parameter
110  // that the device manager can set to the temperature, even if we have
111  // no "TEMP".
112  p.addPar("XYCEADMSMODTEMP", 0.0, &ADMSHBT_X::Model::admsModTemp)
113  .setExpressionAccess(NO_DOC)
114  .setUnit(U_DEGK)
115  .setCategory(CAT_TEMP)
116  .setDescription("Internal-use parameter for setting device model temperature");
117  p.addPar("MODE", static_cast<int>(1), &ADMSHBT_X::Model::Mode);
118  p.addPar("NOISE", static_cast<int>(1), &ADMSHBT_X::Model::Noise);
119  p.addPar("DEBUG", static_cast<int>(0), &ADMSHBT_X::Model::Debug);
120  p.addPar("DEBUGPLUS", static_cast<int>(0), &ADMSHBT_X::Model::DebugPlus);
121  p.addPar("RTH", static_cast<double>(0.1), &ADMSHBT_X::Model::Rth);
122  p.addPar("CTH", static_cast<double>(700*1.0e-9), &ADMSHBT_X::Model::Cth);
123  p.addPar("JSF", static_cast<double>(20e-24), &ADMSHBT_X::Model::Jsf);
124  p.addPar("NF", static_cast<double>(1.0), &ADMSHBT_X::Model::nf);
125  p.addPar("VG", static_cast<double>(1.3), &ADMSHBT_X::Model::Vg);
126  p.addPar("JSE", static_cast<double>(0.0), &ADMSHBT_X::Model::Jse);
127  p.addPar("NE", static_cast<double>(0.0), &ADMSHBT_X::Model::ne);
128  p.addPar("RBXX", static_cast<double>(1e6), &ADMSHBT_X::Model::Rbxx);
129  p.addPar("VGB", static_cast<double>(0.0), &ADMSHBT_X::Model::Vgb);
130  p.addPar("JSEE", static_cast<double>(0.0), &ADMSHBT_X::Model::Jsee);
131  p.addPar("NEE", static_cast<double>(0.0), &ADMSHBT_X::Model::nee);
132  p.addPar("RBBXX", static_cast<double>(1e6), &ADMSHBT_X::Model::Rbbxx);
133  p.addPar("VGBB", static_cast<double>(0.0), &ADMSHBT_X::Model::Vgbb);
134  p.addPar("JSR", static_cast<double>(20e-18), &ADMSHBT_X::Model::Jsr);
135  p.addPar("NR", static_cast<double>(1.0), &ADMSHBT_X::Model::nr);
136  p.addPar("VGR", static_cast<double>(0.0), &ADMSHBT_X::Model::Vgr);
137  p.addPar("XCJC", static_cast<double>(0.5), &ADMSHBT_X::Model::XCjc);
138  p.addPar("JSC", static_cast<double>(0.0), &ADMSHBT_X::Model::Jsc);
139  p.addPar("NC", static_cast<double>(0.0), &ADMSHBT_X::Model::nc);
140  p.addPar("RCXX", static_cast<double>(1e6), &ADMSHBT_X::Model::Rcxx);
141  p.addPar("VGC", static_cast<double>(0.0), &ADMSHBT_X::Model::Vgc);
142  p.addPar("BF", static_cast<double>(100.0), &ADMSHBT_X::Model::Bf);
143  p.addPar("KBETA", static_cast<double>(0.0), &ADMSHBT_X::Model::kBeta);
144  p.addPar("BR", static_cast<double>(1.0), &ADMSHBT_X::Model::Br);
145  p.addPar("VAF", static_cast<double>(0.0), &ADMSHBT_X::Model::VAF);
146  p.addPar("VAR", static_cast<double>(0.0), &ADMSHBT_X::Model::VAR);
147  p.addPar("IKF", static_cast<double>(0.0), &ADMSHBT_X::Model::IKF);
148  p.addPar("IKR", static_cast<double>(0.0), &ADMSHBT_X::Model::IKR);
149  p.addPar("MC", static_cast<double>(0.0), &ADMSHBT_X::Model::Mc);
150  p.addPar("BVCEO", static_cast<double>(0.0), &ADMSHBT_X::Model::BVceo);
151  p.addPar("KC", static_cast<double>(0.0), &ADMSHBT_X::Model::kc);
152  p.addPar("BVEBO", static_cast<double>(0.0), &ADMSHBT_X::Model::BVebo);
153  p.addPar("TR", static_cast<double>(1*1.0e-15), &ADMSHBT_X::Model::Tr);
154  p.addPar("TRX", static_cast<double>(1*1.0e-15), &ADMSHBT_X::Model::Trx);
155  p.addPar("TF", static_cast<double>(1*1.0e-12), &ADMSHBT_X::Model::Tf);
156  p.addPar("TFT", static_cast<double>(0.0), &ADMSHBT_X::Model::Tft);
157  p.addPar("THCS", static_cast<double>(0.0), &ADMSHBT_X::Model::Thcs);
158  p.addPar("AHC", static_cast<double>(0.0), &ADMSHBT_X::Model::Ahc);
159  p.addPar("CJE", static_cast<double>(1*1.0e-15), &ADMSHBT_X::Model::Cje);
160  p.addPar("MJE", static_cast<double>(0.5), &ADMSHBT_X::Model::mje);
161  p.addPar("VJE", static_cast<double>(1.3), &ADMSHBT_X::Model::Vje);
162  p.addPar("CJC", static_cast<double>(1*1.0e-15), &ADMSHBT_X::Model::Cjc);
163  p.addPar("MJC", static_cast<double>(0.5), &ADMSHBT_X::Model::mjc);
164  p.addPar("VJC", static_cast<double>(1.3), &ADMSHBT_X::Model::Vjc);
165  p.addPar("KJC", static_cast<double>(1.0), &ADMSHBT_X::Model::kjc);
166  p.addPar("CMIN", static_cast<double>(0.1*1.0e-15), &ADMSHBT_X::Model::Cmin);
167  p.addPar("J0", static_cast<double>(1e-3), &ADMSHBT_X::Model::J0);
168  p.addPar("XJ0", static_cast<double>(1.0), &ADMSHBT_X::Model::XJ0);
169  p.addPar("RCI0", static_cast<double>(1e-3), &ADMSHBT_X::Model::Rci0);
170  p.addPar("JK", static_cast<double>(4e-4), &ADMSHBT_X::Model::Jk);
171  p.addPar("RJK", static_cast<double>(1e-3), &ADMSHBT_X::Model::RJk);
172  p.addPar("VCES", static_cast<double>(1e-3), &ADMSHBT_X::Model::Vces);
173  p.addPar("RC", static_cast<double>(1.0), &ADMSHBT_X::Model::Rc);
174  p.addPar("RE", static_cast<double>(1.0), &ADMSHBT_X::Model::Re);
175  p.addPar("RB", static_cast<double>(1.0), &ADMSHBT_X::Model::Rb);
176  p.addPar("RB2", static_cast<double>(1.0), &ADMSHBT_X::Model::Rb2);
177  p.addPar("LC", static_cast<double>(0.0), &ADMSHBT_X::Model::Lc);
178  p.addPar("LE", static_cast<double>(0.0), &ADMSHBT_X::Model::Le);
179  p.addPar("LB", static_cast<double>(0.0), &ADMSHBT_X::Model::Lb);
180  p.addPar("CQ", static_cast<double>(0.0), &ADMSHBT_X::Model::Cq);
181  p.addPar("CPB", static_cast<double>(0.0), &ADMSHBT_X::Model::Cpb);
182  p.addPar("CPC", static_cast<double>(0.0), &ADMSHBT_X::Model::Cpc);
183  p.addPar("TNOM", static_cast<double>(20.0), &ADMSHBT_X::Model::Tnom);
184  //Hidden parameter dtype
185 
186 }
187 
188 //-----------------------------------------------------------------------------
189 // Function : Instance::processParams
190 // Purpose :
191 // Special Notes :
192 // Scope : public
193 // Creator : admsXml
194 // Creation Date :
195 //-----------------------------------------------------------------------------
197 {
198  // Now we need to check that any parameters are within their ranges as
199  // specified in the verilog:
200 
201  // Parameter Temp : [ (-273.15), (+inf) [
202  if ( (!((Temp >=(-273.15)))) )
203  {
204  UserError0(*this) << "ADMSHBT_X: Parameter Temp value " << Temp << " out of range [ (-273.15), (+inf) [";
205  }
206 
207  // Parameter N : ] 0, (+inf) [
208  if ( (!((N >0))) )
209  {
210  UserError0(*this) << "ADMSHBT_X: Parameter N value " << N << " out of range ] 0, (+inf) [";
211  }
212 
213  // Parameter L : ] 0.0, (+inf) [
214  if ( (!((L >0.0))) )
215  {
216  UserError0(*this) << "ADMSHBT_X: Parameter L value " << L << " out of range ] 0.0, (+inf) [";
217  }
218 
219  // Parameter W : ] 0.0, (+inf) [
220  if ( (!((W >0.0))) )
221  {
222  UserError0(*this) << "ADMSHBT_X: Parameter W value " << W << " out of range ] 0.0, (+inf) [";
223  }
224 
225 
226  // this seems a little stupid, but verilog models that use $temperature
227  // don't also use a defined parameter "Temp", and count on $temperature
228  // to be the one the simulator wants:
229 
231 
232  // and of course, this routine is where we should put the initial_instance
233  // stuff
234 
235 
236  return true;
237 }
238 
239 //-----------------------------------------------------------------------------
240 // Function : Instance::Instance
241 // Purpose : "instance block" constructor
242 // Special Notes :
243 // Scope : public
244 // Creator : admsXml
245 // Creation Date :
246 //-----------------------------------------------------------------------------
247 
249  const Configuration & configuration,
250  const InstanceBlock & instance_block,
251  Model & model,
252  const FactoryBlock & factory_block)
253  : DeviceInstance(instance_block, configuration.getInstanceParameters(), factory_block),
254  model_(model),
255  Temp(25.0),
256  N(1),
257  L(30*1.0e-6),
258  W(3*1.0e-6),
259  li_c(-1),
260  li_b(-1),
261  li_e(-1),
262  li_t(-1),
263  li_ei(-1),
264  li_bi(-1),
265  li_bii(-1),
266  li_ci(-1),
267  li_ti(-1),
268  li_ex(-1),
269  li_exx(-1),
270  li_cx(-1),
271  f_bi_Equ_ti_Node_Ptr(0),
272  f_ci_Equ_ti_Node_Ptr(0),
273  f_bi_Equ_bi_Node_Ptr(0),
274  f_bi_Equ_ci_Node_Ptr(0),
275  f_ci_Equ_bi_Node_Ptr(0),
276  f_ci_Equ_ci_Node_Ptr(0),
277  f_bii_Equ_ti_Node_Ptr(0),
278  f_bii_Equ_bii_Node_Ptr(0),
279  f_bii_Equ_ci_Node_Ptr(0),
280  f_ci_Equ_bii_Node_Ptr(0),
281  f_bii_Equ_ei_Node_Ptr(0),
282  f_ci_Equ_ei_Node_Ptr(0),
283  f_ei_Equ_bii_Node_Ptr(0),
284  f_ei_Equ_ci_Node_Ptr(0),
285  f_ei_Equ_ti_Node_Ptr(0),
286  f_ei_Equ_ei_Node_Ptr(0),
287  f_ex_Equ_ti_Node_Ptr(0),
288  f_ex_Equ_ex_Node_Ptr(0),
289  f_ex_Equ_ei_Node_Ptr(0),
290  f_ei_Equ_ex_Node_Ptr(0),
291  f_exx_Equ_ti_Node_Ptr(0),
292  f_exx_Equ_exx_Node_Ptr(0),
293  f_exx_Equ_ei_Node_Ptr(0),
294  f_ei_Equ_exx_Node_Ptr(0),
295  f_cx_Equ_ti_Node_Ptr(0),
296  f_cx_Equ_cx_Node_Ptr(0),
297  f_cx_Equ_ci_Node_Ptr(0),
298  f_ci_Equ_cx_Node_Ptr(0),
299  f_bii_Equ_bi_Node_Ptr(0),
300  f_bi_Equ_bii_Node_Ptr(0),
301  f_ex_Equ_bii_Node_Ptr(0),
302  f_bii_Equ_ex_Node_Ptr(0),
303  f_exx_Equ_bii_Node_Ptr(0),
304  f_bii_Equ_exx_Node_Ptr(0),
305  f_cx_Equ_bii_Node_Ptr(0),
306  f_bii_Equ_cx_Node_Ptr(0),
307  f_b_Equ_b_Node_Ptr(0),
308  f_c_Equ_c_Node_Ptr(0),
309  f_b_Equ_c_Node_Ptr(0),
310  f_c_Equ_b_Node_Ptr(0),
311  f_ti_Equ_bi_Node_Ptr(0),
312  f_ti_Equ_ci_Node_Ptr(0),
313  f_ti_Equ_ei_Node_Ptr(0),
314  f_ti_Equ_bii_Node_Ptr(0),
315  f_ti_Equ_ti_Node_Ptr(0),
316  f_t_Equ_t_Node_Ptr(0),
317  f_t_Equ_ti_Node_Ptr(0),
318  f_ti_Equ_t_Node_Ptr(0),
319  f_c_Equ_BRA_c_ci_Var_Ptr(0),
320  f_b_Equ_BRA_b_bi_Var_Ptr(0),
321  f_e_Equ_BRA_e_ei_Var_Ptr(0),
322  f_ei_Equ_BRA_e_ei_Var_Ptr(0),
323  f_bi_Equ_BRA_b_bi_Var_Ptr(0),
324  f_ci_Equ_BRA_c_ci_Var_Ptr(0),
325  f_BRA_b_bi_Equ_b_Node_Ptr(0),
326  f_BRA_b_bi_Equ_bi_Node_Ptr(0),
327  f_BRA_b_bi_Equ_BRA_b_bi_Var_Ptr(0),
328  f_BRA_e_ei_Equ_e_Node_Ptr(0),
329  f_BRA_e_ei_Equ_ei_Node_Ptr(0),
330  f_BRA_e_ei_Equ_BRA_e_ei_Var_Ptr(0),
331  f_BRA_c_ci_Equ_c_Node_Ptr(0),
332  f_BRA_c_ci_Equ_ci_Node_Ptr(0),
333  f_BRA_c_ci_Equ_BRA_c_ci_Var_Ptr(0),
334  q_bi_Equ_ti_Node_Ptr(0),
335  q_ci_Equ_ti_Node_Ptr(0),
336  q_bi_Equ_bi_Node_Ptr(0),
337  q_bi_Equ_ci_Node_Ptr(0),
338  q_ci_Equ_bi_Node_Ptr(0),
339  q_ci_Equ_ci_Node_Ptr(0),
340  q_bii_Equ_ti_Node_Ptr(0),
341  q_bii_Equ_bii_Node_Ptr(0),
342  q_bii_Equ_ci_Node_Ptr(0),
343  q_ci_Equ_bii_Node_Ptr(0),
344  q_bii_Equ_ei_Node_Ptr(0),
345  q_ci_Equ_ei_Node_Ptr(0),
346  q_ei_Equ_bii_Node_Ptr(0),
347  q_ei_Equ_ci_Node_Ptr(0),
348  q_ei_Equ_ti_Node_Ptr(0),
349  q_ei_Equ_ei_Node_Ptr(0),
350  q_ex_Equ_ti_Node_Ptr(0),
351  q_ex_Equ_ex_Node_Ptr(0),
352  q_ex_Equ_ei_Node_Ptr(0),
353  q_ei_Equ_ex_Node_Ptr(0),
354  q_exx_Equ_ti_Node_Ptr(0),
355  q_exx_Equ_exx_Node_Ptr(0),
356  q_exx_Equ_ei_Node_Ptr(0),
357  q_ei_Equ_exx_Node_Ptr(0),
358  q_cx_Equ_ti_Node_Ptr(0),
359  q_cx_Equ_cx_Node_Ptr(0),
360  q_cx_Equ_ci_Node_Ptr(0),
361  q_ci_Equ_cx_Node_Ptr(0),
362  q_bii_Equ_bi_Node_Ptr(0),
363  q_bi_Equ_bii_Node_Ptr(0),
364  q_ex_Equ_bii_Node_Ptr(0),
365  q_bii_Equ_ex_Node_Ptr(0),
366  q_exx_Equ_bii_Node_Ptr(0),
367  q_bii_Equ_exx_Node_Ptr(0),
368  q_cx_Equ_bii_Node_Ptr(0),
369  q_bii_Equ_cx_Node_Ptr(0),
370  q_b_Equ_b_Node_Ptr(0),
371  q_c_Equ_c_Node_Ptr(0),
372  q_b_Equ_c_Node_Ptr(0),
373  q_c_Equ_b_Node_Ptr(0),
374  q_ti_Equ_bi_Node_Ptr(0),
375  q_ti_Equ_ci_Node_Ptr(0),
376  q_ti_Equ_ei_Node_Ptr(0),
377  q_ti_Equ_bii_Node_Ptr(0),
378  q_ti_Equ_ti_Node_Ptr(0),
379  q_t_Equ_t_Node_Ptr(0),
380  q_t_Equ_ti_Node_Ptr(0),
381  q_ti_Equ_t_Node_Ptr(0),
382  q_c_Equ_BRA_c_ci_Var_Ptr(0),
383  q_b_Equ_BRA_b_bi_Var_Ptr(0),
384  q_e_Equ_BRA_e_ei_Var_Ptr(0),
385  q_ei_Equ_BRA_e_ei_Var_Ptr(0),
386  q_bi_Equ_BRA_b_bi_Var_Ptr(0),
387  q_ci_Equ_BRA_c_ci_Var_Ptr(0),
388  q_BRA_b_bi_Equ_b_Node_Ptr(0),
389  q_BRA_b_bi_Equ_bi_Node_Ptr(0),
390  q_BRA_b_bi_Equ_BRA_b_bi_Var_Ptr(0),
391  q_BRA_e_ei_Equ_e_Node_Ptr(0),
392  q_BRA_e_ei_Equ_ei_Node_Ptr(0),
393  q_BRA_e_ei_Equ_BRA_e_ei_Var_Ptr(0),
394  q_BRA_c_ci_Equ_c_Node_Ptr(0),
395  q_BRA_c_ci_Equ_ci_Node_Ptr(0),
396  q_BRA_c_ci_Equ_BRA_c_ci_Var_Ptr(0),
397  admsTemperature(getDeviceOptions().temp.getImmutableValue<double>())
398 
399 {
400  numIntVars = 8 + 3;
401  numExtVars = 4;
402 
403 
404  // Right now, we only have state for limited probes...
405  numStateVars = 3;
406 
407 
408  // Set up jacobian stamp:
409 
410  if (jacStamp.empty())
411  {
412  jacStamp.resize(12);
413  jacStamp[admsNodeID_c].resize(3);
416  // Extra columns for dependence on branches
417  {
418  int tempOffset=0;
419  jacStamp[admsNodeID_c][2+(tempOffset++)] = admsBRA_ID_c_ci;
420  }
421 
422  jacStamp[admsNodeID_b].resize(3);
425  // Extra columns for dependence on branches
426  {
427  int tempOffset=0;
428  jacStamp[admsNodeID_b][2+(tempOffset++)] = admsBRA_ID_b_bi;
429  }
430 
431  jacStamp[admsNodeID_e].resize(1);
432  // Extra columns for dependence on branches
433  {
434  int tempOffset=0;
435  jacStamp[admsNodeID_e][0+(tempOffset++)] = admsBRA_ID_e_ei;
436  }
437 
438  jacStamp[admsNodeID_t].resize(2);
441  jacStamp[admsNodeID_ei].resize(7);
448  // Extra columns for dependence on branches
449  {
450  int tempOffset=0;
451  jacStamp[admsNodeID_ei][6+(tempOffset++)] = admsBRA_ID_e_ei;
452  }
453 
454  jacStamp[admsNodeID_bi].resize(5);
459  // Extra columns for dependence on branches
460  {
461  int tempOffset=0;
462  jacStamp[admsNodeID_bi][4+(tempOffset++)] = admsBRA_ID_b_bi;
463  }
464 
465  jacStamp[admsNodeID_bii].resize(8);
474  jacStamp[admsNodeID_ci].resize(7);
481  // Extra columns for dependence on branches
482  {
483  int tempOffset=0;
484  jacStamp[admsNodeID_ci][6+(tempOffset++)] = admsBRA_ID_c_ci;
485  }
486 
487  jacStamp[admsNodeID_ti].resize(6);
494  jacStamp[admsNodeID_ex].resize(4);
499  jacStamp[admsNodeID_exx].resize(4);
504  jacStamp[admsNodeID_cx].resize(4);
509  // Jacobian rows for branch equations
510 
511  {
512  int jacsize=jacStamp.size();
513  jacStamp.resize(jacsize+1);
514  jacStamp[admsBRA_ID_b_bi].resize(3);
515  int tempCol = 0;
516  jacStamp[admsBRA_ID_b_bi][tempCol++] = admsNodeID_b; // Branch eqn b,bi - node b
517  jacStamp[admsBRA_ID_b_bi][tempCol++] = admsNodeID_bi; // Branch eqn b,bi - node bi
518  jacStamp[admsBRA_ID_b_bi][tempCol++] = admsBRA_ID_b_bi; // Branch eqn b,bi - branch var b,bi
519  }
520  {
521  int jacsize=jacStamp.size();
522  jacStamp.resize(jacsize+1);
523  jacStamp[admsBRA_ID_e_ei].resize(3);
524  int tempCol = 0;
525  jacStamp[admsBRA_ID_e_ei][tempCol++] = admsNodeID_e; // Branch eqn e,ei - node e
526  jacStamp[admsBRA_ID_e_ei][tempCol++] = admsNodeID_ei; // Branch eqn e,ei - node ei
527  jacStamp[admsBRA_ID_e_ei][tempCol++] = admsBRA_ID_e_ei; // Branch eqn e,ei - branch var e,ei
528  }
529  {
530  int jacsize=jacStamp.size();
531  jacStamp.resize(jacsize+1);
532  jacStamp[admsBRA_ID_c_ci].resize(3);
533  int tempCol = 0;
534  jacStamp[admsBRA_ID_c_ci][tempCol++] = admsNodeID_c; // Branch eqn c,ci - node c
535  jacStamp[admsBRA_ID_c_ci][tempCol++] = admsNodeID_ci; // Branch eqn c,ci - node ci
536  jacStamp[admsBRA_ID_c_ci][tempCol++] = admsBRA_ID_c_ci; // Branch eqn c,ci - branch var c,ci
537  }
538 
539  // This is really not strictly necessary when not mapping away nodes,
540  // but makes life easier when we get to registerJacLIDs. This block
541  // simply makes a map that leaves everything in place. Later, when we
542  // start making nodes go away, we will need to modify this.
543 
544  int mapSize = jacStamp.size();
545  jacMap.clear();
546  jacMap2.clear();
547  jacMap.resize(mapSize);
548  jacMap2.resize(mapSize);
549  for (int i=0;i<mapSize;++i)
550  {
551  int rowSize=jacStamp[i].size();
552  jacMap[i]=i;
553  jacMap2[i].resize(rowSize);
554  for (int j=0;j<rowSize;++j)
555  {
556  jacMap2[i][j] = j;
557  }
558  }
559 
560  }
561 
562 
564  setParams(instance_block.params);
565  // set any non-constant parameter defaults
566 
567  // copy any model variables that have associated instance variables, but
568  // are only given in the model card:
569 
570 
571 
572  // Set any parameters that were not given and whose defaults depend on other
573  // parameters:
574 
575 
576  // Real bogosity here...
577  if (!given("XYCEADMSINSTTEMP"))
578  admsInstTemp=getDeviceOptions().temp.getImmutableValue<double>();
579 
580  // Fix the TEMP parameter that has "helpfully" been converted to Kelvin
581  // by the DeviceEntity class
582 
583  if (given("TEMP"))
584  Temp -= CONSTCtoK;
585 
586  //calculate any parameters specified as expressions
588 
589  // calculate dependent (i.e. computed params) and check for errors.
590  processParams();
591 }
592 
593 //-----------------------------------------------------------------------------
594 // Function : Instance::~Instance
595 // Purpose : destructor
596 // Special Notes :
597 // Scope : public
598 // Creator : admsXml
599 // Creation Date :
600 //-----------------------------------------------------------------------------
602 {
603 }
604 
605 //-----------------------------------------------------------------------------
606 // Function : Instance::registerLIDs
607 // Purpose : function for registering, and setting up, local ID's.
608 // Special Notes :
609 // Scope : public
610 // Creator : admsXml
611 // Creation Date :
612 //-----------------------------------------------------------------------------
613 void Instance::registerLIDs( const std::vector<int> & intLIDVecRef,
614  const std::vector<int> & extLIDVecRef)
615 {
616  AssertLIDs(intLIDVecRef.size() == numIntVars);
617  AssertLIDs(extLIDVecRef.size() == numExtVars);
618 
619 #ifdef Xyce_DEBUG_DEVICE
620 
621  if (getDeviceOptions().debugLevel > 0)
622  {
623  Xyce::dout() << std::endl << section_divider << std::endl;
624  Xyce::dout() << "In ADMSHBT_X::Instance::register LIDs\n\n";
625  Xyce::dout() << "name = " << getName() << std::endl;
626  Xyce::dout() << "number of internal variables: " << numIntVars << std::endl;
627  Xyce::dout() << "number of external variables: " << numExtVars << std::endl;
628  }
629 #endif
630 
631  // copy over the global ID lists.
632  intLIDVec = intLIDVecRef;
633  extLIDVec = extLIDVecRef;
634 
635  // Now use these lists to obtain the indices into the linear algebra
636  // entities. This assumes an order.
637  int i=0;
638  li_c = extLIDVecRef[i++];
639  li_b = extLIDVecRef[i++];
640  li_e = extLIDVecRef[i++];
641  li_t = extLIDVecRef[i++];
642 
643 
644  i=0;
645  li_ei = intLIDVecRef[i++];
646  li_bi = intLIDVecRef[i++];
647  li_bii = intLIDVecRef[i++];
648  li_ci = intLIDVecRef[i++];
649  li_ti = intLIDVecRef[i++];
650  li_ex = intLIDVecRef[i++];
651  li_exx = intLIDVecRef[i++];
652  li_cx = intLIDVecRef[i++];
653  li_BRA_b_bi = intLIDVecRef[i++];
654  li_BRA_e_ei = intLIDVecRef[i++];
655  li_BRA_c_ci = intLIDVecRef[i++];
656 
657 
658 #ifdef Xyce_DEBUG_DEVICE
659  if (getDeviceOptions().debugLevel > 0)
660  {
661  Xyce::dout() << "\nSolution and RHS variables:\n";
662  Xyce::dout() << "\nli_c = " << li_c << std::endl;
663  Xyce::dout() << "\nli_b = " << li_b << std::endl;
664  Xyce::dout() << "\nli_e = " << li_e << std::endl;
665  Xyce::dout() << "\nli_t = " << li_t << std::endl;
666  Xyce::dout() << "\nli_ei = " << li_ei << std::endl;
667  Xyce::dout() << "\nli_bi = " << li_bi << std::endl;
668  Xyce::dout() << "\nli_bii = " << li_bii << std::endl;
669  Xyce::dout() << "\nli_ci = " << li_ci << std::endl;
670  Xyce::dout() << "\nli_ti = " << li_ti << std::endl;
671  Xyce::dout() << "\nli_ex = " << li_ex << std::endl;
672  Xyce::dout() << "\nli_exx = " << li_exx << std::endl;
673  Xyce::dout() << "\nli_cx = " << li_cx << std::endl;
674  Xyce::dout() << "\nli_BRA_b_bi = " << li_BRA_b_bi << std::endl;
675  Xyce::dout() << "\nli_BRA_e_ei = " << li_BRA_e_ei << std::endl;
676  Xyce::dout() << "\nli_BRA_c_ci = " << li_BRA_c_ci << std::endl;
677  }
678 #endif
679 
680 #ifdef Xyce_DEBUG_DEVICE
681  if (getDeviceOptions().debugLevel > 0)
682  {
683  Xyce::dout() << "\nEnd of ADMSHBT_X::Instance::register LIDs\n";
684  Xyce::dout() << section_divider << std::endl;
685  }
686 #endif
687 }
688 
689 //-----------------------------------------------------------------------------
690 // Function : Instance::getIntNameMap
691 // Purpose :
692 // Special Notes :
693 // Scope : public
694 // Creator : admsXml
695 // Creation Date :
696 //-----------------------------------------------------------------------------
697 std::map<int,std::string> & Instance::getIntNameMap ()
698 {
699  if (intNameMap.empty())
700  {
709  intNameMap[li_BRA_b_bi] = spiceInternalName(getName(), "b_bi_branch");
710  intNameMap[li_BRA_e_ei] = spiceInternalName(getName(), "e_ei_branch");
711  intNameMap[li_BRA_c_ci] = spiceInternalName(getName(), "c_ci_branch");
712  }
713  return intNameMap;
714 }
715 
716 //-----------------------------------------------------------------------------
717 // Function : Instance::registerStateLIDs
718 // Purpose :
719 // Special Notes :
720 // Scope : public
721 // Creator : admsXml
722 // Creation Date :
723 //-----------------------------------------------------------------------------
724 void Instance::registerStateLIDs( const std::vector<int> & staLIDVecRef)
725 {
726  AssertLIDs(staLIDVecRef.size() == numStateVars);
727 
728  int numSta = staLIDVecRef.size();
729  if (numSta > 0)
730  {
731  int i=0;
732  staLIDVec = staLIDVecRef;
733 
737  }
738 }
739 
740 //-----------------------------------------------------------------------------
741 // Function : Instance::jacobianStamp
742 // Purpose :
743 // Special Notes : In initial version, we won't support mapping away nodes
744 // Scope : public
745 // Creator : admsXml
746 // Creation Date :
747 //-----------------------------------------------------------------------------
748 const std::vector< std::vector<int> > & Instance::jacobianStamp() const
749 {
750  return jacStamp;
751 }
752 
753 //-----------------------------------------------------------------------------
754 // Function : Instance::registerJacLIDs
755 // Purpose : Create Offset variables used for referencing jacobian
756 // elements
757 // Special Notes :
758 // Scope : public
759 // Creator : admsXml
760 // Creation Date :
761 //-----------------------------------------------------------------------------
762 void Instance::registerJacLIDs( const std::vector< std::vector<int> > & jacLIDVec)
763 {
765  std::vector<int> & map=jacMap;
766  std::vector< std::vector<int> > & map2=jacMap2;
767 
768 
769  // do nothing, we won't use the jac lids anymore, we'll use pointers
770 
771 }
772 
773 //-----------------------------------------------------------------------------
774 // Function : Instance::setupPointers
775 // Purpose : Create pointer variables used for referencing jacobian
776 // elements
777 // Special Notes :
778 // Scope : public
779 // Creator : admsXml
780 // Creation Date :
781 //-----------------------------------------------------------------------------
783 {
784 
785  N_LAS_Matrix * dFdxMatPtr = extData.dFdxMatrixPtr;
786  N_LAS_Matrix * dQdxMatPtr = extData.dQdxMatrixPtr;
787  f_c_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_c);
788  q_c_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_c);
789  f_c_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_b);
790  q_c_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_b);
791  f_c_Equ_BRA_c_ci_Var_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_BRA_c_ci);
792  q_c_Equ_BRA_c_ci_Var_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_BRA_c_ci);
793  f_b_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_b);
794  q_b_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_b);
795  f_b_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_c);
796  q_b_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_c);
797  f_b_Equ_BRA_b_bi_Var_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_BRA_b_bi);
798  q_b_Equ_BRA_b_bi_Var_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_BRA_b_bi);
799  f_e_Equ_BRA_e_ei_Var_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e,li_BRA_e_ei);
800  q_e_Equ_BRA_e_ei_Var_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e,li_BRA_e_ei);
801  f_t_Equ_t_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_t,li_t);
802  q_t_Equ_t_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_t,li_t);
803  f_t_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_t,li_ti);
804  q_t_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_t,li_ti);
805  f_ei_Equ_bii_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_bii);
806  q_ei_Equ_bii_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_bii);
807  f_ei_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_ci);
808  q_ei_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_ci);
809  f_ei_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_ti);
810  q_ei_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_ti);
811  f_ei_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_ei);
812  q_ei_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_ei);
813  f_ei_Equ_ex_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_ex);
814  q_ei_Equ_ex_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_ex);
815  f_ei_Equ_exx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_exx);
816  q_ei_Equ_exx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_exx);
817  f_ei_Equ_BRA_e_ei_Var_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_BRA_e_ei);
818  q_ei_Equ_BRA_e_ei_Var_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_BRA_e_ei);
819  f_bi_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_ti);
820  q_bi_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_ti);
821  f_bi_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_bi);
822  q_bi_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_bi);
823  f_bi_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_ci);
824  q_bi_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_ci);
825  f_bi_Equ_bii_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_bii);
826  q_bi_Equ_bii_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_bii);
827  f_bi_Equ_BRA_b_bi_Var_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_BRA_b_bi);
828  q_bi_Equ_BRA_b_bi_Var_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_BRA_b_bi);
829  f_bii_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bii,li_ti);
830  q_bii_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bii,li_ti);
831  f_bii_Equ_bii_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bii,li_bii);
832  q_bii_Equ_bii_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bii,li_bii);
833  f_bii_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bii,li_ci);
834  q_bii_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bii,li_ci);
835  f_bii_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bii,li_ei);
836  q_bii_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bii,li_ei);
837  f_bii_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bii,li_bi);
838  q_bii_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bii,li_bi);
839  f_bii_Equ_ex_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bii,li_ex);
840  q_bii_Equ_ex_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bii,li_ex);
841  f_bii_Equ_exx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bii,li_exx);
842  q_bii_Equ_exx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bii,li_exx);
843  f_bii_Equ_cx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bii,li_cx);
844  q_bii_Equ_cx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bii,li_cx);
845  f_ci_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_ti);
846  q_ci_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_ti);
847  f_ci_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_bi);
848  q_ci_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_bi);
849  f_ci_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_ci);
850  q_ci_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_ci);
851  f_ci_Equ_bii_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_bii);
852  q_ci_Equ_bii_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_bii);
853  f_ci_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_ei);
854  q_ci_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_ei);
855  f_ci_Equ_cx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_cx);
856  q_ci_Equ_cx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_cx);
857  f_ci_Equ_BRA_c_ci_Var_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_BRA_c_ci);
858  q_ci_Equ_BRA_c_ci_Var_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_BRA_c_ci);
859  f_ti_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ti,li_bi);
860  q_ti_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ti,li_bi);
861  f_ti_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ti,li_ci);
862  q_ti_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ti,li_ci);
863  f_ti_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ti,li_ei);
864  q_ti_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ti,li_ei);
865  f_ti_Equ_bii_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ti,li_bii);
866  q_ti_Equ_bii_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ti,li_bii);
867  f_ti_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ti,li_ti);
868  q_ti_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ti,li_ti);
869  f_ti_Equ_t_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ti,li_t);
870  q_ti_Equ_t_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ti,li_t);
871  f_ex_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ex,li_ti);
872  q_ex_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ex,li_ti);
873  f_ex_Equ_ex_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ex,li_ex);
874  q_ex_Equ_ex_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ex,li_ex);
875  f_ex_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ex,li_ei);
876  q_ex_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ex,li_ei);
877  f_ex_Equ_bii_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ex,li_bii);
878  q_ex_Equ_bii_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ex,li_bii);
879  f_exx_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_exx,li_ti);
880  q_exx_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_exx,li_ti);
881  f_exx_Equ_exx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_exx,li_exx);
882  q_exx_Equ_exx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_exx,li_exx);
883  f_exx_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_exx,li_ei);
884  q_exx_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_exx,li_ei);
885  f_exx_Equ_bii_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_exx,li_bii);
886  q_exx_Equ_bii_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_exx,li_bii);
887  f_cx_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_cx,li_ti);
888  q_cx_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_cx,li_ti);
889  f_cx_Equ_cx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_cx,li_cx);
890  q_cx_Equ_cx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_cx,li_cx);
891  f_cx_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_cx,li_ci);
892  q_cx_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_cx,li_ci);
893  f_cx_Equ_bii_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_cx,li_bii);
894  q_cx_Equ_bii_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_cx,li_bii);
895  f_BRA_b_bi_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_BRA_b_bi,li_b);
896  q_BRA_b_bi_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_BRA_b_bi,li_b);
897  f_BRA_b_bi_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_BRA_b_bi,li_bi);
898  q_BRA_b_bi_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_BRA_b_bi,li_bi);
899  f_BRA_b_bi_Equ_BRA_b_bi_Var_Ptr=dFdxMatPtr->returnRawEntryPointer(li_BRA_b_bi,li_BRA_b_bi);
900  q_BRA_b_bi_Equ_BRA_b_bi_Var_Ptr=dQdxMatPtr->returnRawEntryPointer(li_BRA_b_bi,li_BRA_b_bi);
901  f_BRA_e_ei_Equ_e_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_BRA_e_ei,li_e);
902  q_BRA_e_ei_Equ_e_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_BRA_e_ei,li_e);
903  f_BRA_e_ei_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_BRA_e_ei,li_ei);
904  q_BRA_e_ei_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_BRA_e_ei,li_ei);
905  f_BRA_e_ei_Equ_BRA_e_ei_Var_Ptr=dFdxMatPtr->returnRawEntryPointer(li_BRA_e_ei,li_BRA_e_ei);
906  q_BRA_e_ei_Equ_BRA_e_ei_Var_Ptr=dQdxMatPtr->returnRawEntryPointer(li_BRA_e_ei,li_BRA_e_ei);
907  f_BRA_c_ci_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_BRA_c_ci,li_c);
908  q_BRA_c_ci_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_BRA_c_ci,li_c);
909  f_BRA_c_ci_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_BRA_c_ci,li_ci);
910  q_BRA_c_ci_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_BRA_c_ci,li_ci);
911  f_BRA_c_ci_Equ_BRA_c_ci_Var_Ptr=dFdxMatPtr->returnRawEntryPointer(li_BRA_c_ci,li_BRA_c_ci);
912  q_BRA_c_ci_Equ_BRA_c_ci_Var_Ptr=dQdxMatPtr->returnRawEntryPointer(li_BRA_c_ci,li_BRA_c_ci);
913 
914 
915 }
916 
917 // RHS load functions
918 
919 //-----------------------------------------------------------------------------
920 // Function : Instance::loadDAEFVector
921 // Purpose : load F vector (static contributions) for one instance for
922 // NEW DAE formulation
923 // Special Notes :
924 // Scope : public
925 // Creator : admsXml
926 // Creation Date :
927 //-----------------------------------------------------------------------------
929 {
930 
931  bool bsuccess=true;
932 
949  {
950  double *dFdxdVp = extData.dFdxdVpVectorRawPtr;
951  dFdxdVp[li_c] += Jdxp_static[admsNodeID_c];
952  dFdxdVp[li_b] += Jdxp_static[admsNodeID_b];
953  dFdxdVp[li_e] += Jdxp_static[admsNodeID_e];
954  dFdxdVp[li_t] += Jdxp_static[admsNodeID_t];
955  dFdxdVp[li_ei] += Jdxp_static[admsNodeID_ei];
956  dFdxdVp[li_bi] += Jdxp_static[admsNodeID_bi];
957  dFdxdVp[li_bii] += Jdxp_static[admsNodeID_bii];
958  dFdxdVp[li_ci] += Jdxp_static[admsNodeID_ci];
959  dFdxdVp[li_ti] += Jdxp_static[admsNodeID_ti];
960  dFdxdVp[li_ex] += Jdxp_static[admsNodeID_ex];
961  dFdxdVp[li_exx] += Jdxp_static[admsNodeID_exx];
962  dFdxdVp[li_cx] += Jdxp_static[admsNodeID_cx];
966 
967  }
968 
969  return bsuccess;
970 }
971 
972 //-----------------------------------------------------------------------------
973 // Function : Instance::loadDAEQVector
974 // Purpose : load Q vector (dynamic contributions) for one instance for
975 // NEW DAE formulation
976 // Special Notes :
977 // Scope : public
978 // Creator : admsXml
979 // Creation Date :
980 //-----------------------------------------------------------------------------
982 {
999  {
1000  double *dQdxdVp = extData.dQdxdVpVectorRawPtr;
1001  dQdxdVp[li_c] += Jdxp_dynamic[admsNodeID_c];
1002  dQdxdVp[li_b] += Jdxp_dynamic[admsNodeID_b];
1003  dQdxdVp[li_e] += Jdxp_dynamic[admsNodeID_e];
1004  dQdxdVp[li_t] += Jdxp_dynamic[admsNodeID_t];
1005  dQdxdVp[li_ei] += Jdxp_dynamic[admsNodeID_ei];
1006  dQdxdVp[li_bi] += Jdxp_dynamic[admsNodeID_bi];
1007  dQdxdVp[li_bii] += Jdxp_dynamic[admsNodeID_bii];
1008  dQdxdVp[li_ci] += Jdxp_dynamic[admsNodeID_ci];
1009  dQdxdVp[li_ti] += Jdxp_dynamic[admsNodeID_ti];
1010  dQdxdVp[li_ex] += Jdxp_dynamic[admsNodeID_ex];
1011  dQdxdVp[li_exx] += Jdxp_dynamic[admsNodeID_exx];
1012  dQdxdVp[li_cx] += Jdxp_dynamic[admsNodeID_cx];
1016  }
1017 
1018  return true;
1019 }
1020 
1021 
1022 //-----------------------------------------------------------------------------
1023 // Function : Instance::updatePrimaryState
1024 // Purpose :
1025 // Special Notes : In this initial implementation, does little more than
1026 // call updateIntermediateVars()
1027 // Scope : public
1028 // Creator : admsXml
1029 // Creation Date :
1030 //-----------------------------------------------------------------------------
1032 {
1033  bool bsuccess = true;
1034 
1035  bsuccess = updateIntermediateVars();
1036 
1037  // if old DAE were implemented, we'd save dynamic contributions as state
1038  // here.
1039 
1040  double * staVec = extData.nextStaVectorRawPtr;
1041  // Also need to save limited voltage drops
1042  // This formulation assumes that we have *always* written the
1043  // limited voltages back into the probeVars[] array.
1044 
1048 
1049  return bsuccess;
1050 }
1051 
1052 //-----------------------------------------------------------------------------
1053 // Function : Instance::updateSecondaryState
1054 // Purpose :
1055 // Special Notes : In this initial implementation, does nothing
1056 // Scope : public
1057 // Creator : admsXml
1058 // Creation Date :
1059 //-----------------------------------------------------------------------------
1061 {
1062  bool bsuccess = true;
1063 
1064  // were old DAE implemented, we'd pull dynamic contribution derivatives
1065  // out of state.
1066 
1067  return bsuccess;
1068 }
1069 
1070 //-----------------------------------------------------------------------------
1071 // Function : Instance::updateIntermediateVars
1072 // Purpose : update intermediate variables for one HBT_X instance
1073 // Special Notes :
1074 // Scope : public
1075 // Creator : admsXml
1076 // Creation Date :
1077 //-----------------------------------------------------------------------------
1079 {
1080 
1081  bool bsuccess=true;
1082  N_LAS_Vector * solVectorPtr = extData.nextSolVectorPtr;
1083 
1084 #ifdef Xyce_DEBUG_DEVICE
1085  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
1086  {
1087  Xyce::dout() << std::endl << subsection_divider << std::endl;
1088  Xyce::dout() << " In ADMSHBT_X::Instance::updateIntermediateVars\n\n";
1089  Xyce::dout() << " name = " << getName() << std::endl;
1090  }
1091 #endif
1092 
1093  // Local variables
1094  AdmsFadType qbe;
1095  AdmsFadType qbtf;
1096  AdmsFadType xtff;
1097  AdmsFadType Wh;
1098  AdmsFadType Ih;
1099  double AHC;
1100  double RCIO;
1101  double InvVpt;
1102  double Vlim;
1103  AdmsFadType qb2;
1104  AdmsFadType qbtra;
1105  AdmsFadType qbtr;
1106  AdmsFadType qb1;
1107  AdmsFadType qb2med;
1108  AdmsFadType xix;
1109  double I00;
1110  AdmsFadType Ipdiss;
1111  AdmsFadType Icdx;
1112  AdmsFadType Ibdxx;
1113  AdmsFadType Ibdx;
1114  AdmsFadType Ib1;
1115  AdmsFadType Ib0;
1116  AdmsFadType EdBeta;
1117  AdmsFadType mm;
1118  double Vbclin;
1119  double epsi;
1120  AdmsFadType Ibx;
1121  AdmsFadType Ib2;
1122  AdmsFadType Ic1;
1123  AdmsFadType Ic1r;
1124  AdmsFadType Ic0;
1125  AdmsFadType qb;
1126  AdmsFadType q2;
1127  AdmsFadType q1;
1128  AdmsFadType Ic1ra;
1129  AdmsFadType Ic0a;
1130  double TWO_Q;
1131  double FOUR_K;
1132  double Area;
1133  AdmsFadType Tex;
1134  AdmsFadType TjK;
1135  AdmsFadType Tj;
1136  AdmsFadType Texi;
1137  AdmsFadType vcei;
1138  AdmsFadType vxxe;
1139  AdmsFadType vxc;
1140  AdmsFadType vxe;
1141  AdmsFadType vbei;
1142  AdmsFadType vbci;
1143  AdmsFadType vbcx;
1144  double tVCrit;
1145  // temporary variables for limiting
1146  double vbei_orig,vbei_limited,vbei_old;
1147  double vbci_orig,vbci_limited,vbci_old;
1148  double vbcx_orig,vbcx_limited,vbcx_old;
1149 
1150 
1151  // set the sizes of the Fad arrays:
1152 
1153  if (probeVars.size() != (19))
1154  {
1155  probeVars.resize(19);
1156  staticContributions.resize(12+3);
1157  dynamicContributions.resize(12+3);
1158  probeDiffs.resize(19,0.0);
1159  Jdxp_static.resize(12+3);
1160  Jdxp_dynamic.resize(12+3);
1161  }
1162 
1163  // initialize contributions to zero (automatically sets derivatives to zero)
1164  for (int i=0; i < 12+3 ; ++i)
1165  {
1166  staticContributions[i]=0;
1167  dynamicContributions[i]=0;
1168  Jdxp_static[i]=0;
1169  Jdxp_dynamic[i]=0;
1170  }
1171 
1172  for (int i=0; i < 19 ; ++i)
1173  {
1174  probeDiffs[i] = 0.0;
1175  }
1176  // extract solution variables and set as Fad independent variables.
1177  probeVars[admsProbeID_V_t_ti] = (*solVectorPtr)[li_t] - (*solVectorPtr)[li_ti];
1179 
1180  probeVars[admsProbeID_V_b_c] = (*solVectorPtr)[li_b] - (*solVectorPtr)[li_c];
1182 
1183  probeVars[admsProbeID_V_c_GND] = (*solVectorPtr)[li_c];
1185 
1186  probeVars[admsProbeID_V_b_GND] = (*solVectorPtr)[li_b];
1188 
1189  probeVars[admsProbeID_V_cx_bii] = (*solVectorPtr)[li_cx] - (*solVectorPtr)[li_bii];
1191 
1192  probeVars[admsProbeID_V_exx_bii] = (*solVectorPtr)[li_exx] - (*solVectorPtr)[li_bii];
1194 
1195  probeVars[admsProbeID_V_ex_bii] = (*solVectorPtr)[li_ex] - (*solVectorPtr)[li_bii];
1197 
1198  probeVars[admsProbeID_V_bii_bi] = (*solVectorPtr)[li_bii] - (*solVectorPtr)[li_bi];
1200 
1201  probeVars[admsProbeID_I_c_ci] = (*solVectorPtr)[li_BRA_c_ci];
1203 
1204  probeVars[admsProbeID_I_e_ei] = (*solVectorPtr)[li_BRA_e_ei];
1206 
1207  probeVars[admsProbeID_I_b_bi] = (*solVectorPtr)[li_BRA_b_bi];
1209 
1210  probeVars[admsProbeID_V_ti_GND] = (*solVectorPtr)[li_ti];
1212 
1213  probeVars[admsProbeID_V_ci_ei] = (*solVectorPtr)[li_ci] - (*solVectorPtr)[li_ei];
1215 
1216  probeVars[admsProbeID_V_exx_ei] = (*solVectorPtr)[li_exx] - (*solVectorPtr)[li_ei];
1218 
1219  probeVars[admsProbeID_V_cx_ci] = (*solVectorPtr)[li_cx] - (*solVectorPtr)[li_ci];
1221 
1222  probeVars[admsProbeID_V_ex_ei] = (*solVectorPtr)[li_ex] - (*solVectorPtr)[li_ei];
1224 
1225  probeVars[admsProbeID_V_bii_ei] = (*solVectorPtr)[li_bii] - (*solVectorPtr)[li_ei];
1227 
1228  probeVars[admsProbeID_V_bii_ci] = (*solVectorPtr)[li_bii] - (*solVectorPtr)[li_ci];
1230 
1231  probeVars[admsProbeID_V_bi_ci] = (*solVectorPtr)[li_bi] - (*solVectorPtr)[li_ci];
1233 
1234 
1235  // pre-multiply any "typed" probes (i.e. those limited with "typedpnjlim")
1239 
1240  // Copy probes into limiting vars
1241  vbei_orig = vbei_limited = probeVars[admsProbeID_V_bii_ei].val();
1243  vbci_orig = vbci_limited = probeVars[admsProbeID_V_bii_ci].val();
1245  vbcx_orig = vbcx_limited = probeVars[admsProbeID_V_bi_ci].val();
1247 
1248  origFlag = true;
1249 
1250  //Manually moved from below
1251  tVCrit = (adms_vt_nom*log((adms_vt_nom/(1.41421356237309504880*(((((model_.Jsf)*L)*W)*N)*1e12)))));
1252  if (getSolverState().newtonIter == 0)
1253  {
1254 
1256  {
1257  // manually inserted code:
1259  {
1260  N_LAS_Vector * flagSolVectorPtr = (extData.flagSolVectorPtr);
1261  if ((*flagSolVectorPtr)[li_e] == 0 ||
1262  (*flagSolVectorPtr)[li_ei] == 0 ||
1263  (*flagSolVectorPtr)[li_ex] == 0 ||
1264  (*flagSolVectorPtr)[li_exx] == 0 ||
1265  (*flagSolVectorPtr)[li_b] == 0 ||
1266  (*flagSolVectorPtr)[li_bi] == 0 ||
1267  (*flagSolVectorPtr)[li_bii] == 0 ||
1268  (*flagSolVectorPtr)[li_c] == 0 ||
1269  (*flagSolVectorPtr)[li_ci] == 0 ||
1270  (*flagSolVectorPtr)[li_cx] == 0 ||
1271  (*flagSolVectorPtr)[li_t] == 0 ||
1272  (*flagSolVectorPtr)[li_ti] == 0 )
1273  {
1274  vbcx_limited = vbci_limited = 0;
1275  vbei_limited = tVCrit;
1276  origFlag = false;
1277  }
1278  }
1279  else
1280  {
1281  vbcx_limited = vbci_limited = 0;
1282  vbei_limited = tVCrit;
1283  origFlag = false;
1284 #ifdef Xyce_DEBUG_DEVICE
1286  {
1287  Xyce::dout() << " Setting device initial condition to Base-Emitter drop=tVCri (" << tVCrit << ")" << std::endl;
1288  }
1289 #endif
1290  }
1291  }
1292  // end manually inserted code
1293 
1294  if (!(getSolverState().dcopFlag)||(getSolverState().locaEnabledFlag && getSolverState().dcopFlag))
1295  {
1299  }
1300  else
1301  {
1302  vbei_old = vbei_limited;
1303  vbci_old = vbci_limited;
1304  vbcx_old = vbcx_limited;
1305  }
1306  }
1307  else
1308  {
1312  }
1313 
1314  // -- code converted from analog/code block
1315  // Manually moved to above
1316  //tVCrit = (adms_vt_nom*log((adms_vt_nom/(1.41421356237309504880*(((((model_.Jsf)*L)*W)*N)*1e12)))));
1317 
1318 
1319  //vbcx = ($limit(V(bi,ci),"typedpnjlim",$vt(),tVCrit,dtype));
1321  {
1322  int icheck=0;
1323  vbcx_limited = devSupport.pnjlim(vbcx_limited,vbcx_old,adms_vt_nom,tVCrit,&icheck);
1324  if (icheck == 1)
1325  origFlag = false;
1326  if (!origFlag)
1327  {
1328  probeDiffs[admsProbeID_V_bi_ci] = vbcx_limited - vbcx_orig;
1330  }
1331  }
1333 
1334 
1335 
1336  //vbci = ($limit(V(bii,ci),"typedpnjlim",$vt(),tVCrit,dtype));
1337  if (getDeviceOptions().voltageLimiterFlag)
1338  {
1339  int icheck=0;
1340  vbci_limited = devSupport.pnjlim(vbci_limited,vbci_old,adms_vt_nom,tVCrit,&icheck);
1341  if (icheck == 1)
1342  origFlag = false;
1343  if (!origFlag)
1344  {
1345  probeDiffs[admsProbeID_V_bii_ci] = vbci_limited - vbci_orig;
1347  }
1348  }
1350 
1351 
1352 
1353  //vbei = ($limit(V(bii,ei),"typedpnjlim",$vt(),tVCrit,dtype));
1354  if (getDeviceOptions().voltageLimiterFlag)
1355  {
1356  int icheck=0;
1357  vbei_limited = devSupport.pnjlim(vbei_limited,vbei_old,adms_vt_nom,tVCrit,&icheck);
1358  if (icheck == 1)
1359  origFlag = false;
1360  if (!origFlag)
1361  {
1362  probeDiffs[admsProbeID_V_bii_ei] = vbei_limited - vbei_orig;
1364  }
1365  }
1367 
1371  vcei = ((model_.dtype)*(probeVars[admsProbeID_V_ci_ei]));
1372  Texi = (probeVars[admsProbeID_V_ti_GND]);
1373  Tj = (Texi+Temp);
1374  TjK = (Tj+273.15);
1375  Tex = (Tj-(model_.Tnom));
1376  Area = (((L*W)*1.0e12)*N);
1377  FOUR_K = (4*1.3806226e-23);
1378  TWO_Q = (2*1.6021918e-19);
1379  Ic0a = model_.analogFunctions.diode<AdmsFadType>(vbei,(model_.Jsf),(model_.Vg),(model_.nf),Area,Tj,(model_.Tnom));
1380  Ic1ra = model_.analogFunctions.diode<AdmsFadType>(vbci,((model_.XCjc)*(model_.Jsr)),(model_.Vgr),(model_.nr),Area,Tj,(model_.Tnom));
1381  if ((((model_.VAF)>0.0)&&((model_.VAR)>0.0)))
1382  {
1383  q1 = ((1.0+((model_.analogFunctions.charge<AdmsFadType>(vbei,1.0,(model_.Vje),(model_.mje),1.0)-model_.analogFunctions.charge<double>(0.0,1.0,(model_.Vje),(model_.mje),1.0))/(model_.VAR)))+((model_.analogFunctions.charge<AdmsFadType>(vbci,1.0,(model_.Vjc),(model_.mjc),1.0)-model_.analogFunctions.charge<double>(0.0,1.0,(model_.Vjc),(model_.mjc),1.0))/(model_.VAF)));
1384  }
1385  else
1386  {
1387  if ((((model_.VAF)>0.0)&&((model_.VAR)==0.0)))
1388  {
1390  }
1391  else
1392  {
1393  if ((((model_.VAF)==0.0)&&((model_.VAR)>0.0)))
1394  {
1396  }
1397  else
1398  {
1399  q1 = 1.0;
1400  }
1401  }
1402  }
1403  if ((((model_.IKF)>0.0)&&((model_.IKR)>0.0)))
1404  {
1405  q2 = ((Ic0a/(Area*(model_.IKF)))+(Ic1ra/(Area*(model_.IKR))));
1406  }
1407  else
1408  {
1409  if ((((model_.IKF)>0.0)&&((model_.IKR)==0.0)))
1410  {
1411  q2 = (Ic0a/(Area*(model_.IKF)));
1412  }
1413  else
1414  {
1415  if ((((model_.IKF)==0.0)&&((model_.IKR)>0.0)))
1416  {
1417  q2 = (Ic1ra/(Area*(model_.IKR)));
1418  }
1419  else
1420  {
1421  q2 = 0.0;
1422  }
1423  }
1424  }
1425  qb = ((q1+sqrt(((q1*q1)+(4.0*q2))))/2.0);
1426  Ic0 = (Ic0a/qb);
1427  Ic1r = (Ic1ra/qb);
1428  Ic1 = (Ic0-Ic1r);
1429  Ib2 = (model_.analogFunctions.diode<AdmsFadType>(vbci,((model_.XCjc)*(model_.Jsr)),(model_.Vgr),(model_.nr),Area,Tj,(model_.Tnom))/(model_.Br));
1430  Ibx = (model_.analogFunctions.diode<AdmsFadType>(vbcx,((1.0-(model_.XCjc))*(model_.Jsr)),(model_.Vgr),(model_.nr),Area,Tj,(model_.Tnom))/(model_.Br));
1431  epsi = 1.0e-6;
1432  Vbclin = ((model_.BVceo)*pow((1.0-epsi),(1/(model_.Mc))));
1433  mm = model_.analogFunctions.MM<AdmsFadType>(vbci,(model_.BVceo),(model_.Mc),Vbclin,(model_.Bf),(model_.kc));
1434  if ((mm>1.0))
1435  {
1436  if (((model_.kBeta)>0.0))
1437  {
1438  if ((((model_.Bf)-((model_.kBeta)*Tex))>1e-6))
1439  {
1440  EdBeta = (((1/((model_.Bf)-((model_.kBeta)*Tex)))-((model_.kc)*(mm-1)))/(((model_.kc)*(mm-1))+1));
1441  }
1442  else
1443  {
1444  EdBeta = ((1e6-((model_.kc)*(mm-1)))/(((model_.kc)*(mm-1))+1));
1445  }
1446  }
1447  else
1448  {
1449  EdBeta = (((1/(model_.Bf))-((model_.kc)*(mm-1)))/(((model_.kc)*(mm-1))+1));
1450  }
1451  }
1452  else
1453  {
1454  if (((model_.kBeta)>0.0))
1455  {
1456  if ((((model_.Bf)-((model_.kBeta)*Tex))>1e-6))
1457  {
1458  EdBeta = (1/((model_.Bf)-((model_.kBeta)*Tex)));
1459  }
1460  else
1461  {
1462  EdBeta = 1e6;
1463  }
1464  }
1465  else
1466  {
1467  EdBeta = (1/(model_.Bf));
1468  }
1469  }
1470  Ib0 = (Ic0a*EdBeta);
1471  if (((model_.BVebo)>0))
1472  {
1473  Ib1 = (Ib0-model_.analogFunctions.diode<AdmsFadType>(((-(model_.BVebo))-vbei),(model_.Jsf),0.0,1.0,Area,0.0,0.0));
1474  }
1475  else
1476  {
1477  Ib1 = Ib0;
1478  }
1479  if ((((model_.Jse)>0.0)&&((model_.ne)>0)))
1480  {
1481  Ibdx = model_.analogFunctions.diode<AdmsFadType>(vxe,(model_.Jse),(model_.Vgb),(model_.ne),Area,Tj,(model_.Tnom));
1482  }
1483  else
1484  {
1485  Ibdx = (vxe*1e-12);
1486  }
1487  if ((((model_.Jsee)>0.0)&&((model_.nee)>0)))
1488  {
1489  Ibdxx = model_.analogFunctions.diode<AdmsFadType>(vxxe,(model_.Jsee),(model_.Vgbb),(model_.nee),Area,Tj,(model_.Tnom));
1490  }
1491  else
1492  {
1493  Ibdxx = (vxxe*1e-12);
1494  }
1495  if ((((model_.Jsc)>0.0)&&((model_.nc)>0)))
1496  {
1497  Icdx = model_.analogFunctions.diode<AdmsFadType>(vxc,(model_.Jsc),(model_.Vgc),(model_.nc),Area,Tj,(model_.Tnom));
1498  }
1499  else
1500  {
1501  Icdx = (vxc*1e-12);
1502  }
1503  Ipdiss = ((((Ic1*vcei)+(Ib1*vbei))+(Ib2*vbci))+(Ibx*vbcx));
1504  if ((Ipdiss<0.0))
1505  {
1506  Ipdiss = 0;
1507  }
1508  I00 = ((model_.J0)*Area);
1509  if ((((model_.XCjc)<1.0)&&((model_.XCjc)>0.0)))
1510  {
1511  if ((((model_.J0)<=0.0)||(Ic0<0.0)))
1512  {
1513  qb2med = (((model_.XCjc)*model_.analogFunctions.charge<AdmsFadType>(vbci,((model_.Cjc)-(model_.Cmin)),(model_.Vjc),(model_.mjc),Area))+((((model_.XCjc)*Area)*(model_.Cmin))*vbci));
1514  }
1515  else
1516  {
1517  xix = (Ic0/I00);
1518  qb2med = ((((model_.XCjc)*(1.0-tanh(xix)))*(model_.analogFunctions.charge<AdmsFadType>(vbci,((model_.Cjc)-(model_.Cmin)),(model_.Vjc),(model_.mjc),Area)+((((1.0-(model_.XJ0))*Area)*(model_.Cmin))*vbci)))+(((((model_.XJ0)*(model_.XCjc))*Area)*(model_.Cmin))*vbci));
1519  }
1520  }
1521  else
1522  {
1523  if ((((model_.J0)<0.0)||(Ic0<0.0)))
1524  {
1525  qb2med = (model_.analogFunctions.charge<AdmsFadType>(vbci,((model_.Cjc)-(model_.Cmin)),(model_.Vjc),(model_.mjc),Area)+((Area*(model_.Cmin))*vbci));
1526  }
1527  else
1528  {
1529  xix = (Ic0/I00);
1530  qb2med = (((1.0-tanh(xix))*(model_.analogFunctions.charge<AdmsFadType>(vbci,((model_.Cjc)-(model_.Cmin)),(model_.Vjc),(model_.mjc),Area)+((((1.0-(model_.XJ0))*Area)*(model_.Cmin))*vbci)))+((((model_.XJ0)*Area)*(model_.Cmin))*vbci));
1531  }
1532  }
1533  if ((((model_.XCjc)<1.0)&&((model_.XCjc)>0.0)))
1534  {
1535  qb1 = (((1.0-(model_.XCjc))*model_.analogFunctions.charge<AdmsFadType>(vbcx,((model_.Cjc)-(model_.Cmin)),(model_.Vjc),(model_.mjc),Area))+((((1.0-(model_.XCjc))*Area)*(model_.Cmin))*vbcx));
1536  }
1537  else
1538  {
1539  qb1 = 0.0;
1540  }
1541  qbtr = ((model_.Tr)*Ic1r);
1542  qbtra = ((model_.Trx)*Ibx);
1543  qb2 = (qb2med+qbtr);
1544  if ((((model_.Jk)>0.0)&&((model_.Rci0)>0.0)))
1545  {
1546  if (((model_.RJk)>0.0))
1547  {
1548  Vlim = (((model_.Jk)*(model_.Rci0))/(1.0-((model_.Rci0)/(model_.RJk))));
1549  InvVpt = ((1.0-((model_.Rci0)/(model_.RJk)))/((model_.Jk)*(model_.RJk)));
1550  }
1551  else
1552  {
1553  Vlim = (((model_.Jk)*(model_.Rci0))/1.016);
1554  InvVpt = 0.0;
1555  }
1556  }
1557  if ((((((model_.Thcs)>0.0)&&((model_.Ahc)>0.0))&&((model_.Jk)>0.0))&&(Ic0>0.0)))
1558  {
1559  RCIO = ((model_.Rci0)/Area);
1560  AHC = (Area*(model_.Ahc));
1561  if ((((model_.Rci0)<(model_.RJk))||((model_.RJk)<=0.0)))
1562  {
1563  Ih = (1.0-(model_.analogFunctions.ICK<AdmsFadType>(vcei,RCIO,Vlim,InvVpt,(model_.Vces))/Ic0));
1564  }
1565  else
1566  {
1567  Ih = (1.0-(model_.analogFunctions.Vceff<AdmsFadType>(vcei,(model_.Vces))/(RCIO*Ic0)));
1568  }
1569  Wh = ((Ih+sqrt(((Ih*Ih)+AHC)))/(1.0+sqrt((1.0+AHC))));
1570  xtff = (((model_.Thcs)*Ic0)*(Wh*Wh));
1571  }
1572  else
1573  {
1574  xtff = 0;
1575  }
1576  qbtf = (((model_.Tf)+((model_.Tft)*Tex))*Ic0);
1577  qbe = ((xtff+qbtf)+model_.analogFunctions.charge<AdmsFadType>(vbei,(model_.Cje),(model_.Vje),(model_.mje),Area));
1578  // I(bi,ci) <+ ((dtype*Ibx))
1579  {
1580  AdmsFadType contribTemp;
1581  contribTemp= ((model_.dtype)*Ibx);
1582  staticContributions[admsNodeID_bi] += contribTemp;
1583  staticContributions[admsNodeID_ci] -= contribTemp;
1584 
1587  }
1588  // I(bi,ci) <+ ((dtype*ddt((qb1+qbtra))))
1589  {
1590  AdmsFadType contribTemp;
1591  contribTemp= ((model_.dtype)*((qb1+qbtra)));
1592  dynamicContributions[admsNodeID_bi] += contribTemp;
1593  dynamicContributions[admsNodeID_ci] -= contribTemp;
1594 
1597  }
1598  // I(bii,ci) <+ ((dtype*Ib2))
1599  {
1600  AdmsFadType contribTemp;
1601  contribTemp= ((model_.dtype)*Ib2);
1602  staticContributions[admsNodeID_bii] += contribTemp;
1603  staticContributions[admsNodeID_ci] -= contribTemp;
1604 
1607  }
1608  // I(bii,ci) <+ ((dtype*ddt(qb2)))
1609  {
1610  AdmsFadType contribTemp;
1611  contribTemp= ((model_.dtype)*(qb2));
1612  dynamicContributions[admsNodeID_bii] += contribTemp;
1613  dynamicContributions[admsNodeID_ci] -= contribTemp;
1614 
1617  }
1618  // I(bii,ei) <+ ((dtype*Ib1))
1619  {
1620  AdmsFadType contribTemp;
1621  contribTemp= ((model_.dtype)*Ib1);
1622  staticContributions[admsNodeID_bii] += contribTemp;
1623  staticContributions[admsNodeID_ei] -= contribTemp;
1624 
1627  }
1628  // I(bii,ei) <+ ((dtype*ddt(qbe)))
1629  {
1630  AdmsFadType contribTemp;
1631  contribTemp= ((model_.dtype)*(qbe));
1632  dynamicContributions[admsNodeID_bii] += contribTemp;
1633  dynamicContributions[admsNodeID_ei] -= contribTemp;
1634 
1637  }
1638  // I(ci,ei) <+ ((dtype*Ic1))
1639  {
1640  AdmsFadType contribTemp;
1641  contribTemp= ((model_.dtype)*Ic1);
1642  staticContributions[admsNodeID_ci] += contribTemp;
1643  staticContributions[admsNodeID_ei] -= contribTemp;
1644 
1647  }
1648  // I(ex,ei) <+ ((dtype*Ibdx))
1651  // I(exx,ei) <+ ((dtype*Ibdxx))
1654  // I(cx,ci) <+ ((dtype*Icdx))
1657  // V(b,bi) <+ ((I(b,bi)*(Rb/N)))
1659  // V(b,bi) <+ (ddt((I(b,bi)*Lb)))
1661  // V(e,ei) <+ ((I(e,ei)*(Re/N)))
1663  // V(e,ei) <+ (ddt((I(e,ei)*Le)))
1665  // V(c,ci) <+ ((I(c,ci)*(Rc/N)))
1667  // V(c,ci) <+ (ddt((I(c,ci)*Lc)))
1669  // I(bii,bi) <+ ((V(bii,bi)/(Rb2/N)))
1672  if ((((model_.Jse)>0.0)&&((model_.ne)>0)))
1673  {
1674  // I(ex,bii) <+ ((V(ex,bii)/(Rbxx/N)))
1677  }
1678  else
1679  {
1680  // I(ex,bii) <+ ((V(ex,bii)*1e-12))
1683  }
1684  if ((((model_.Jsee)>0.0)&&((model_.nee)>0)))
1685  {
1686  // I(exx,bii) <+ ((V(exx,bii)/(Rbbxx/N)))
1689  }
1690  else
1691  {
1692  // I(exx,bii) <+ ((V(exx,bii)*1e-12))
1695  }
1696  if ((((model_.Jsc)>0.0)&&((model_.nc)>0)))
1697  {
1698  // I(cx,bii) <+ ((V(cx,bii)/(Rcxx/N)))
1701  }
1702  else
1703  {
1704  // I(cx,bii) <+ ((V(cx,bii)*1e-12))
1707  }
1708  // I(b,GND) <+ (ddt((Cpb*V(b,GND))))
1710  // I(c,GND) <+ (ddt((Cpc*V(c,GND))))
1712  // I(b,c) <+ (ddt((Cq*V(b,c))))
1714  dynamicContributions[admsNodeID_c] -= (((model_.Cq)*(probeVars[admsProbeID_V_b_c])));
1715  // I(ti,GND) <+ ((-Ipdiss))
1716  {
1717  AdmsFadType contribTemp;
1718  contribTemp= (-Ipdiss);
1719  staticContributions[admsNodeID_ti] += contribTemp;
1720 
1722  }
1723  if ((model_.Rth))
1724  {
1725  // I(t,ti) <+ ((V(t,ti)/Rth))
1728  // I(t,ti) <+ ((Cth*ddt(V(t,ti))))
1730  dynamicContributions[admsNodeID_ti] -= ((model_.Cth)*((probeVars[admsProbeID_V_t_ti])));
1731  }
1732  else
1733  {
1734  // I(t,ti) <+ ((V(t,ti)*1e3))
1737  }
1738 
1739  // Additional term resulting from contributions into V(b,bi)
1742 
1743  // Additional term resulting from contributions into V(e,ei)
1746 
1747  // Additional term resulting from contributions into V(c,ci)
1750  // Final term for branch equation admsBRA_ID_b_bi
1751  staticContributions[admsBRA_ID_b_bi] -= (*solVectorPtr)[li_b]-(*solVectorPtr)[li_bi];
1752  // Final term for branch equation admsBRA_ID_e_ei
1753  staticContributions[admsBRA_ID_e_ei] -= (*solVectorPtr)[li_e]-(*solVectorPtr)[li_ei];
1754  // Final term for branch equation admsBRA_ID_c_ci
1755  staticContributions[admsBRA_ID_c_ci] -= (*solVectorPtr)[li_c]-(*solVectorPtr)[li_ci];
1756 
1757 
1758  // -- endcode converted from analog/code block
1759 #ifdef Xyce_DEBUG_DEVICE
1761  {
1762  Xyce::dout() << " probeVars[admsProbeID_V_t_ti] = "
1763  <<probeVars[admsProbeID_V_t_ti].val() << std::endl;
1764  Xyce::dout() << " probeVars[admsProbeID_V_b_c] = "
1765  <<probeVars[admsProbeID_V_b_c].val() << std::endl;
1766  Xyce::dout() << " probeVars[admsProbeID_V_c_GND] = "
1767  <<probeVars[admsProbeID_V_c_GND].val() << std::endl;
1768  Xyce::dout() << " probeVars[admsProbeID_V_b_GND] = "
1769  <<probeVars[admsProbeID_V_b_GND].val() << std::endl;
1770  Xyce::dout() << " probeVars[admsProbeID_V_cx_bii] = "
1771  <<probeVars[admsProbeID_V_cx_bii].val() << std::endl;
1772  Xyce::dout() << " probeVars[admsProbeID_V_exx_bii] = "
1773  <<probeVars[admsProbeID_V_exx_bii].val() << std::endl;
1774  Xyce::dout() << " probeVars[admsProbeID_V_ex_bii] = "
1775  <<probeVars[admsProbeID_V_ex_bii].val() << std::endl;
1776  Xyce::dout() << " probeVars[admsProbeID_V_bii_bi] = "
1777  <<probeVars[admsProbeID_V_bii_bi].val() << std::endl;
1778  Xyce::dout() << " probeVars[admsProbeID_I_c_ci] = "
1779  <<probeVars[admsProbeID_I_c_ci].val() << std::endl;
1780  Xyce::dout() << " probeVars[admsProbeID_I_e_ei] = "
1781  <<probeVars[admsProbeID_I_e_ei].val() << std::endl;
1782  Xyce::dout() << " probeVars[admsProbeID_I_b_bi] = "
1783  <<probeVars[admsProbeID_I_b_bi].val() << std::endl;
1784  Xyce::dout() << " probeVars[admsProbeID_V_ti_GND] = "
1785  <<probeVars[admsProbeID_V_ti_GND].val() << std::endl;
1786  Xyce::dout() << " probeVars[admsProbeID_V_ci_ei] = "
1787  <<probeVars[admsProbeID_V_ci_ei].val() << std::endl;
1788  Xyce::dout() << " probeVars[admsProbeID_V_exx_ei] = "
1789  <<probeVars[admsProbeID_V_exx_ei].val() << std::endl;
1790  Xyce::dout() << " probeVars[admsProbeID_V_cx_ci] = "
1791  <<probeVars[admsProbeID_V_cx_ci].val() << std::endl;
1792  Xyce::dout() << " probeVars[admsProbeID_V_ex_ei] = "
1793  <<probeVars[admsProbeID_V_ex_ei].val() << std::endl;
1794  Xyce::dout() << " probeVars[admsProbeID_V_bii_ei] = "
1795  <<probeVars[admsProbeID_V_bii_ei].val() << std::endl;
1796  Xyce::dout() << " probeVars[admsProbeID_V_bii_ci] = "
1797  <<probeVars[admsProbeID_V_bii_ci].val() << std::endl;
1798  Xyce::dout() << " probeVars[admsProbeID_V_bi_ci] = "
1799  <<probeVars[admsProbeID_V_bi_ci].val() << std::endl;
1800  Xyce::dout() << " staticContributions[admsNodeID_c] = "
1801  <<staticContributions[admsNodeID_c].val() << std::endl;
1802  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_t_ti) << std::endl;
1803  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_b_c) << std::endl;
1804  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_c_GND) << std::endl;
1805  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_b_GND) << std::endl;
1806  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_cx_bii) << std::endl;
1807  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_exx_bii) << std::endl;
1808  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_ex_bii) << std::endl;
1809  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_bii_bi) << std::endl;
1810  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_I_c_ci) << std::endl;
1811  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_I_e_ei) << std::endl;
1812  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_I_b_bi) << std::endl;
1813  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_ti_GND) << std::endl;
1814  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_ci_ei) << std::endl;
1815  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_exx_ei) << std::endl;
1816  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_cx_ci) << std::endl;
1817  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_ex_ei) << std::endl;
1818  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_bii_ei) << std::endl;
1819  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_bii_ci) << std::endl;
1820  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_bi_ci) << std::endl;
1821  Xyce::dout() << " dynamicContributions[admsNodeID_c] = "
1822  <<dynamicContributions[admsNodeID_c].val() << std::endl;
1823  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_t_ti) << std::endl;
1824  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c) << std::endl;
1825  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_c_GND) << std::endl;
1826  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_GND) << std::endl;
1827  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_cx_bii) << std::endl;
1828  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_exx_bii) << std::endl;
1829  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ex_bii) << std::endl;
1830  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bii_bi) << std::endl;
1831  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_I_c_ci) << std::endl;
1832  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_I_e_ei) << std::endl;
1833  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_I_b_bi) << std::endl;
1834  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ti_GND) << std::endl;
1835  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ci_ei) << std::endl;
1836  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_exx_ei) << std::endl;
1837  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_cx_ci) << std::endl;
1838  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ex_ei) << std::endl;
1839  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bii_ei) << std::endl;
1840  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bii_ci) << std::endl;
1841  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bi_ci) << std::endl;
1842  Xyce::dout() << " Jdxp_static[admsNodeID_c] = "
1843  <<Jdxp_static[admsNodeID_c] << std::endl;
1844  Xyce::dout() << " Jdxp_dynamic[admsNodeID_c] = "
1845  <<Jdxp_dynamic[admsNodeID_c] << std::endl;
1846  Xyce::dout() << " staticContributions[admsNodeID_b] = "
1847  <<staticContributions[admsNodeID_b].val() << std::endl;
1848  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_t_ti) << std::endl;
1849  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_b_c) << std::endl;
1850  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_c_GND) << std::endl;
1851  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_b_GND) << std::endl;
1852  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_cx_bii) << std::endl;
1853  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_exx_bii) << std::endl;
1854  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_ex_bii) << std::endl;
1855  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_bii_bi) << std::endl;
1856  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_I_c_ci) << std::endl;
1857  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_I_e_ei) << std::endl;
1858  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_I_b_bi) << std::endl;
1859  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_ti_GND) << std::endl;
1860  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_ci_ei) << std::endl;
1861  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_exx_ei) << std::endl;
1862  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_cx_ci) << std::endl;
1863  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_ex_ei) << std::endl;
1864  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_bii_ei) << std::endl;
1865  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_bii_ci) << std::endl;
1866  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_bi_ci) << std::endl;
1867  Xyce::dout() << " dynamicContributions[admsNodeID_b] = "
1868  <<dynamicContributions[admsNodeID_b].val() << std::endl;
1869  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_t_ti) << std::endl;
1870  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c) << std::endl;
1871  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c_GND) << std::endl;
1872  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_GND) << std::endl;
1873  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_cx_bii) << std::endl;
1874  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_exx_bii) << std::endl;
1875  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ex_bii) << std::endl;
1876  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bii_bi) << std::endl;
1877  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_I_c_ci) << std::endl;
1878  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_I_e_ei) << std::endl;
1879  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_I_b_bi) << std::endl;
1880  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ti_GND) << std::endl;
1881  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ci_ei) << std::endl;
1882  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_exx_ei) << std::endl;
1883  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_cx_ci) << std::endl;
1884  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ex_ei) << std::endl;
1885  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bii_ei) << std::endl;
1886  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bii_ci) << std::endl;
1887  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bi_ci) << std::endl;
1888  Xyce::dout() << " Jdxp_static[admsNodeID_b] = "
1889  <<Jdxp_static[admsNodeID_b] << std::endl;
1890  Xyce::dout() << " Jdxp_dynamic[admsNodeID_b] = "
1891  <<Jdxp_dynamic[admsNodeID_b] << std::endl;
1892  Xyce::dout() << " staticContributions[admsNodeID_e] = "
1893  <<staticContributions[admsNodeID_e].val() << std::endl;
1894  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_t_ti) << std::endl;
1895  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_b_c) << std::endl;
1896  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_c_GND) << std::endl;
1897  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_b_GND) << std::endl;
1898  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_cx_bii) << std::endl;
1899  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_exx_bii) << std::endl;
1900  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_ex_bii) << std::endl;
1901  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_bii_bi) << std::endl;
1902  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_I_c_ci) << std::endl;
1903  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_I_e_ei) << std::endl;
1904  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_I_b_bi) << std::endl;
1905  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_ti_GND) << std::endl;
1906  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_ci_ei) << std::endl;
1907  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_exx_ei) << std::endl;
1908  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_cx_ci) << std::endl;
1909  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_ex_ei) << std::endl;
1910  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_bii_ei) << std::endl;
1911  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_bii_ci) << std::endl;
1912  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_bi_ci) << std::endl;
1913  Xyce::dout() << " dynamicContributions[admsNodeID_e] = "
1914  <<dynamicContributions[admsNodeID_e].val() << std::endl;
1915  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_t_ti) << std::endl;
1916  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_c) << std::endl;
1917  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_c_GND) << std::endl;
1918  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_GND) << std::endl;
1919  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_cx_bii) << std::endl;
1920  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_exx_bii) << std::endl;
1921  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ex_bii) << std::endl;
1922  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bii_bi) << std::endl;
1923  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_I_c_ci) << std::endl;
1924  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_I_e_ei) << std::endl;
1925  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_I_b_bi) << std::endl;
1926  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ti_GND) << std::endl;
1927  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ci_ei) << std::endl;
1928  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_exx_ei) << std::endl;
1929  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_cx_ci) << std::endl;
1930  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ex_ei) << std::endl;
1931  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bii_ei) << std::endl;
1932  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bii_ci) << std::endl;
1933  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bi_ci) << std::endl;
1934  Xyce::dout() << " Jdxp_static[admsNodeID_e] = "
1935  <<Jdxp_static[admsNodeID_e] << std::endl;
1936  Xyce::dout() << " Jdxp_dynamic[admsNodeID_e] = "
1937  <<Jdxp_dynamic[admsNodeID_e] << std::endl;
1938  Xyce::dout() << " staticContributions[admsNodeID_t] = "
1939  <<staticContributions[admsNodeID_t].val() << std::endl;
1940  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_t_ti) << std::endl;
1941  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_b_c) << std::endl;
1942  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_c_GND) << std::endl;
1943  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_b_GND) << std::endl;
1944  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_cx_bii) << std::endl;
1945  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_exx_bii) << std::endl;
1946  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_ex_bii) << std::endl;
1947  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_bii_bi) << std::endl;
1948  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_I_c_ci) << std::endl;
1949  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_I_e_ei) << std::endl;
1950  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_I_b_bi) << std::endl;
1951  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_ti_GND) << std::endl;
1952  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_ci_ei) << std::endl;
1953  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_exx_ei) << std::endl;
1954  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_cx_ci) << std::endl;
1955  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_ex_ei) << std::endl;
1956  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_bii_ei) << std::endl;
1957  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_bii_ci) << std::endl;
1958  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_bi_ci) << std::endl;
1959  Xyce::dout() << " dynamicContributions[admsNodeID_t] = "
1960  <<dynamicContributions[admsNodeID_t].val() << std::endl;
1961  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_t_ti) << std::endl;
1962  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_b_c) << std::endl;
1963  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_c_GND) << std::endl;
1964  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_b_GND) << std::endl;
1965  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_cx_bii) << std::endl;
1966  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_exx_bii) << std::endl;
1967  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ex_bii) << std::endl;
1968  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_bii_bi) << std::endl;
1969  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_I_c_ci) << std::endl;
1970  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_I_e_ei) << std::endl;
1971  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_I_b_bi) << std::endl;
1972  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ti_GND) << std::endl;
1973  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ci_ei) << std::endl;
1974  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_exx_ei) << std::endl;
1975  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_cx_ci) << std::endl;
1976  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ex_ei) << std::endl;
1977  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_bii_ei) << std::endl;
1978  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_bii_ci) << std::endl;
1979  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_bi_ci) << std::endl;
1980  Xyce::dout() << " Jdxp_static[admsNodeID_t] = "
1981  <<Jdxp_static[admsNodeID_t] << std::endl;
1982  Xyce::dout() << " Jdxp_dynamic[admsNodeID_t] = "
1983  <<Jdxp_dynamic[admsNodeID_t] << std::endl;
1984  Xyce::dout() << " staticContributions[admsNodeID_ei] = "
1985  <<staticContributions[admsNodeID_ei].val() << std::endl;
1986  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_t_ti) << std::endl;
1987  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_b_c) << std::endl;
1988  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_c_GND) << std::endl;
1989  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_b_GND) << std::endl;
1990  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_cx_bii) << std::endl;
1991  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_exx_bii) << std::endl;
1992  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_ex_bii) << std::endl;
1993  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_bi) << std::endl;
1994  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_I_c_ci) << std::endl;
1995  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_I_e_ei) << std::endl;
1996  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_I_b_bi) << std::endl;
1997  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_ti_GND) << std::endl;
1998  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_ci_ei) << std::endl;
1999  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_exx_ei) << std::endl;
2000  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_cx_ci) << std::endl;
2001  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_ex_ei) << std::endl;
2002  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ei) << std::endl;
2003  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ci) << std::endl;
2004  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ci) << std::endl;
2005  Xyce::dout() << " dynamicContributions[admsNodeID_ei] = "
2006  <<dynamicContributions[admsNodeID_ei].val() << std::endl;
2007  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_t_ti) << std::endl;
2008  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_b_c) << std::endl;
2009  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_c_GND) << std::endl;
2010  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_b_GND) << std::endl;
2011  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_cx_bii) << std::endl;
2012  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_exx_bii) << std::endl;
2013  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ex_bii) << std::endl;
2014  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bii_bi) << std::endl;
2015  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_I_c_ci) << std::endl;
2016  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_I_e_ei) << std::endl;
2017  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_I_b_bi) << std::endl;
2018  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ti_GND) << std::endl;
2019  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ci_ei) << std::endl;
2020  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_exx_ei) << std::endl;
2021  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_cx_ci) << std::endl;
2022  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ex_ei) << std::endl;
2023  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ei) << std::endl;
2024  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ci) << std::endl;
2025  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ci) << std::endl;
2026  Xyce::dout() << " Jdxp_static[admsNodeID_ei] = "
2027  <<Jdxp_static[admsNodeID_ei] << std::endl;
2028  Xyce::dout() << " Jdxp_dynamic[admsNodeID_ei] = "
2029  <<Jdxp_dynamic[admsNodeID_ei] << std::endl;
2030  Xyce::dout() << " staticContributions[admsNodeID_bi] = "
2031  <<staticContributions[admsNodeID_bi].val() << std::endl;
2032  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_t_ti) << std::endl;
2033  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_b_c) << std::endl;
2034  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_c_GND) << std::endl;
2035  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_b_GND) << std::endl;
2036  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_cx_bii) << std::endl;
2037  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_exx_bii) << std::endl;
2038  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_ex_bii) << std::endl;
2039  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_bii_bi) << std::endl;
2040  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_I_c_ci) << std::endl;
2041  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_I_e_ei) << std::endl;
2042  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_I_b_bi) << std::endl;
2043  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_ti_GND) << std::endl;
2044  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_ci_ei) << std::endl;
2045  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_exx_ei) << std::endl;
2046  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_cx_ci) << std::endl;
2047  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_ex_ei) << std::endl;
2048  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_bii_ei) << std::endl;
2049  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_bii_ci) << std::endl;
2050  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci) << std::endl;
2051  Xyce::dout() << " dynamicContributions[admsNodeID_bi] = "
2052  <<dynamicContributions[admsNodeID_bi].val() << std::endl;
2053  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_t_ti) << std::endl;
2054  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_b_c) << std::endl;
2055  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_c_GND) << std::endl;
2056  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_b_GND) << std::endl;
2057  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_cx_bii) << std::endl;
2058  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_exx_bii) << std::endl;
2059  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ex_bii) << std::endl;
2060  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bii_bi) << std::endl;
2061  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_I_c_ci) << std::endl;
2062  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_I_e_ei) << std::endl;
2063  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_I_b_bi) << std::endl;
2064  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ti_GND) << std::endl;
2065  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ci_ei) << std::endl;
2066  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_exx_ei) << std::endl;
2067  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_cx_ci) << std::endl;
2068  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ex_ei) << std::endl;
2069  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bii_ei) << std::endl;
2070  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bii_ci) << std::endl;
2071  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci) << std::endl;
2072  Xyce::dout() << " Jdxp_static[admsNodeID_bi] = "
2073  <<Jdxp_static[admsNodeID_bi] << std::endl;
2074  Xyce::dout() << " Jdxp_dynamic[admsNodeID_bi] = "
2075  <<Jdxp_dynamic[admsNodeID_bi] << std::endl;
2076  Xyce::dout() << " staticContributions[admsNodeID_bii] = "
2077  <<staticContributions[admsNodeID_bii].val() << std::endl;
2078  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_t_ti) << std::endl;
2079  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_b_c) << std::endl;
2080  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_c_GND) << std::endl;
2081  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_b_GND) << std::endl;
2082  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_cx_bii) << std::endl;
2083  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_exx_bii) << std::endl;
2084  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_ex_bii) << std::endl;
2085  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_bi) << std::endl;
2086  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_I_c_ci) << std::endl;
2087  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_I_e_ei) << std::endl;
2088  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_I_b_bi) << std::endl;
2089  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_ti_GND) << std::endl;
2090  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_ci_ei) << std::endl;
2091  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_exx_ei) << std::endl;
2092  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_cx_ci) << std::endl;
2093  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_ex_ei) << std::endl;
2094  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ei) << std::endl;
2095  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ci) << std::endl;
2096  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_bi_ci) << std::endl;
2097  Xyce::dout() << " dynamicContributions[admsNodeID_bii] = "
2098  <<dynamicContributions[admsNodeID_bii].val() << std::endl;
2099  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_t_ti) << std::endl;
2100  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_b_c) << std::endl;
2101  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_c_GND) << std::endl;
2102  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_b_GND) << std::endl;
2103  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_cx_bii) << std::endl;
2104  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_exx_bii) << std::endl;
2105  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ex_bii) << std::endl;
2106  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bii_bi) << std::endl;
2107  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_I_c_ci) << std::endl;
2108  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_I_e_ei) << std::endl;
2109  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_I_b_bi) << std::endl;
2110  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ti_GND) << std::endl;
2111  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ci_ei) << std::endl;
2112  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_exx_ei) << std::endl;
2113  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_cx_ci) << std::endl;
2114  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ex_ei) << std::endl;
2115  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ei) << std::endl;
2116  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ci) << std::endl;
2117  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bi_ci) << std::endl;
2118  Xyce::dout() << " Jdxp_static[admsNodeID_bii] = "
2119  <<Jdxp_static[admsNodeID_bii] << std::endl;
2120  Xyce::dout() << " Jdxp_dynamic[admsNodeID_bii] = "
2121  <<Jdxp_dynamic[admsNodeID_bii] << std::endl;
2122  Xyce::dout() << " staticContributions[admsNodeID_ci] = "
2123  <<staticContributions[admsNodeID_ci].val() << std::endl;
2124  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_t_ti) << std::endl;
2125  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_b_c) << std::endl;
2126  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_c_GND) << std::endl;
2127  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_b_GND) << std::endl;
2128  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_bii) << std::endl;
2129  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_exx_bii) << std::endl;
2130  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_ex_bii) << std::endl;
2131  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_bi) << std::endl;
2132  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_I_c_ci) << std::endl;
2133  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_I_e_ei) << std::endl;
2134  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_I_b_bi) << std::endl;
2135  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_ti_GND) << std::endl;
2136  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_ci_ei) << std::endl;
2137  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_exx_ei) << std::endl;
2138  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci) << std::endl;
2139  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_ex_ei) << std::endl;
2140  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei) << std::endl;
2141  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ci) << std::endl;
2142  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci) << std::endl;
2143  Xyce::dout() << " dynamicContributions[admsNodeID_ci] = "
2144  <<dynamicContributions[admsNodeID_ci].val() << std::endl;
2145  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_t_ti) << std::endl;
2146  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_b_c) << std::endl;
2147  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_c_GND) << std::endl;
2148  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_b_GND) << std::endl;
2149  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_cx_bii) << std::endl;
2150  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_exx_bii) << std::endl;
2151  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ex_bii) << std::endl;
2152  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_bi) << std::endl;
2153  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_I_c_ci) << std::endl;
2154  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_I_e_ei) << std::endl;
2155  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_I_b_bi) << std::endl;
2156  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ti_GND) << std::endl;
2157  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ci_ei) << std::endl;
2158  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_exx_ei) << std::endl;
2159  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci) << std::endl;
2160  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ex_ei) << std::endl;
2161  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei) << std::endl;
2162  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ci) << std::endl;
2163  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci) << std::endl;
2164  Xyce::dout() << " Jdxp_static[admsNodeID_ci] = "
2165  <<Jdxp_static[admsNodeID_ci] << std::endl;
2166  Xyce::dout() << " Jdxp_dynamic[admsNodeID_ci] = "
2167  <<Jdxp_dynamic[admsNodeID_ci] << std::endl;
2168  Xyce::dout() << " staticContributions[admsNodeID_ti] = "
2169  <<staticContributions[admsNodeID_ti].val() << std::endl;
2170  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti) << std::endl;
2171  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_b_c) << std::endl;
2172  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_c_GND) << std::endl;
2173  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_b_GND) << std::endl;
2174  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_cx_bii) << std::endl;
2175  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_exx_bii) << std::endl;
2176  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_ex_bii) << std::endl;
2177  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_bii_bi) << std::endl;
2178  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_I_c_ci) << std::endl;
2179  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_I_e_ei) << std::endl;
2180  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_I_b_bi) << std::endl;
2181  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_ti_GND) << std::endl;
2182  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_ci_ei) << std::endl;
2183  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_exx_ei) << std::endl;
2184  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_cx_ci) << std::endl;
2185  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_ex_ei) << std::endl;
2186  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ei) << std::endl;
2187  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ci) << std::endl;
2188  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_bi_ci) << std::endl;
2189  Xyce::dout() << " dynamicContributions[admsNodeID_ti] = "
2190  <<dynamicContributions[admsNodeID_ti].val() << std::endl;
2191  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti) << std::endl;
2192  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_b_c) << std::endl;
2193  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_c_GND) << std::endl;
2194  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_b_GND) << std::endl;
2195  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_cx_bii) << std::endl;
2196  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_exx_bii) << std::endl;
2197  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_ex_bii) << std::endl;
2198  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_bii_bi) << std::endl;
2199  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_I_c_ci) << std::endl;
2200  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_I_e_ei) << std::endl;
2201  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_I_b_bi) << std::endl;
2202  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_ti_GND) << std::endl;
2203  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_ci_ei) << std::endl;
2204  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_exx_ei) << std::endl;
2205  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_cx_ci) << std::endl;
2206  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_ex_ei) << std::endl;
2207  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ei) << std::endl;
2208  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ci) << std::endl;
2209  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_bi_ci) << std::endl;
2210  Xyce::dout() << " Jdxp_static[admsNodeID_ti] = "
2211  <<Jdxp_static[admsNodeID_ti] << std::endl;
2212  Xyce::dout() << " Jdxp_dynamic[admsNodeID_ti] = "
2213  <<Jdxp_dynamic[admsNodeID_ti] << std::endl;
2214  Xyce::dout() << " staticContributions[admsNodeID_ex] = "
2215  <<staticContributions[admsNodeID_ex].val() << std::endl;
2216  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_t_ti) << std::endl;
2217  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_b_c) << std::endl;
2218  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_c_GND) << std::endl;
2219  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_b_GND) << std::endl;
2220  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_cx_bii) << std::endl;
2221  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_exx_bii) << std::endl;
2222  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_bii) << std::endl;
2223  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_bii_bi) << std::endl;
2224  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_I_c_ci) << std::endl;
2225  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_I_e_ei) << std::endl;
2226  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_I_b_bi) << std::endl;
2227  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_ti_GND) << std::endl;
2228  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_ci_ei) << std::endl;
2229  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_exx_ei) << std::endl;
2230  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_cx_ci) << std::endl;
2231  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_ei) << std::endl;
2232  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_bii_ei) << std::endl;
2233  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_bii_ci) << std::endl;
2234  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_bi_ci) << std::endl;
2235  Xyce::dout() << " dynamicContributions[admsNodeID_ex] = "
2236  <<dynamicContributions[admsNodeID_ex].val() << std::endl;
2237  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_t_ti) << std::endl;
2238  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_b_c) << std::endl;
2239  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_c_GND) << std::endl;
2240  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_b_GND) << std::endl;
2241  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_cx_bii) << std::endl;
2242  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_exx_bii) << std::endl;
2243  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_ex_bii) << std::endl;
2244  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_bii_bi) << std::endl;
2245  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_I_c_ci) << std::endl;
2246  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_I_e_ei) << std::endl;
2247  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_I_b_bi) << std::endl;
2248  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_ti_GND) << std::endl;
2249  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_ci_ei) << std::endl;
2250  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_exx_ei) << std::endl;
2251  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_cx_ci) << std::endl;
2252  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_ex_ei) << std::endl;
2253  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_bii_ei) << std::endl;
2254  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_bii_ci) << std::endl;
2255  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_bi_ci) << std::endl;
2256  Xyce::dout() << " Jdxp_static[admsNodeID_ex] = "
2257  <<Jdxp_static[admsNodeID_ex] << std::endl;
2258  Xyce::dout() << " Jdxp_dynamic[admsNodeID_ex] = "
2259  <<Jdxp_dynamic[admsNodeID_ex] << std::endl;
2260  Xyce::dout() << " staticContributions[admsNodeID_exx] = "
2261  <<staticContributions[admsNodeID_exx].val() << std::endl;
2262  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_t_ti) << std::endl;
2263  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_b_c) << std::endl;
2264  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_c_GND) << std::endl;
2265  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_b_GND) << std::endl;
2266  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_cx_bii) << std::endl;
2267  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_bii) << std::endl;
2268  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_ex_bii) << std::endl;
2269  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_bii_bi) << std::endl;
2270  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_I_c_ci) << std::endl;
2271  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_I_e_ei) << std::endl;
2272  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_I_b_bi) << std::endl;
2273  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_ti_GND) << std::endl;
2274  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_ci_ei) << std::endl;
2275  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_ei) << std::endl;
2276  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_cx_ci) << std::endl;
2277  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_ex_ei) << std::endl;
2278  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_bii_ei) << std::endl;
2279  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_bii_ci) << std::endl;
2280  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_bi_ci) << std::endl;
2281  Xyce::dout() << " dynamicContributions[admsNodeID_exx] = "
2282  <<dynamicContributions[admsNodeID_exx].val() << std::endl;
2283  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_t_ti) << std::endl;
2284  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_b_c) << std::endl;
2285  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_c_GND) << std::endl;
2286  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_b_GND) << std::endl;
2287  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_cx_bii) << std::endl;
2288  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_exx_bii) << std::endl;
2289  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_ex_bii) << std::endl;
2290  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_bii_bi) << std::endl;
2291  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_I_c_ci) << std::endl;
2292  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_I_e_ei) << std::endl;
2293  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_I_b_bi) << std::endl;
2294  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_ti_GND) << std::endl;
2295  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_ci_ei) << std::endl;
2296  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_exx_ei) << std::endl;
2297  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_cx_ci) << std::endl;
2298  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_ex_ei) << std::endl;
2299  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_bii_ei) << std::endl;
2300  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_bii_ci) << std::endl;
2301  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_bi_ci) << std::endl;
2302  Xyce::dout() << " Jdxp_static[admsNodeID_exx] = "
2303  <<Jdxp_static[admsNodeID_exx] << std::endl;
2304  Xyce::dout() << " Jdxp_dynamic[admsNodeID_exx] = "
2305  <<Jdxp_dynamic[admsNodeID_exx] << std::endl;
2306  Xyce::dout() << " staticContributions[admsNodeID_cx] = "
2307  <<staticContributions[admsNodeID_cx].val() << std::endl;
2308  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_t_ti) << std::endl;
2309  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_b_c) << std::endl;
2310  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_c_GND) << std::endl;
2311  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_b_GND) << std::endl;
2312  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_bii) << std::endl;
2313  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_exx_bii) << std::endl;
2314  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_ex_bii) << std::endl;
2315  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_bii_bi) << std::endl;
2316  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_I_c_ci) << std::endl;
2317  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_I_e_ei) << std::endl;
2318  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_I_b_bi) << std::endl;
2319  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_ti_GND) << std::endl;
2320  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_ci_ei) << std::endl;
2321  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_exx_ei) << std::endl;
2322  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci) << std::endl;
2323  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_ex_ei) << std::endl;
2324  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_bii_ei) << std::endl;
2325  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_bii_ci) << std::endl;
2326  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ci) << std::endl;
2327  Xyce::dout() << " dynamicContributions[admsNodeID_cx] = "
2328  <<dynamicContributions[admsNodeID_cx].val() << std::endl;
2329  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_t_ti) << std::endl;
2330  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_b_c) << std::endl;
2331  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_c_GND) << std::endl;
2332  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_b_GND) << std::endl;
2333  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_cx_bii) << std::endl;
2334  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_exx_bii) << std::endl;
2335  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ex_bii) << std::endl;
2336  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bii_bi) << std::endl;
2337  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_I_c_ci) << std::endl;
2338  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_I_e_ei) << std::endl;
2339  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_I_b_bi) << std::endl;
2340  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ti_GND) << std::endl;
2341  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ci_ei) << std::endl;
2342  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_exx_ei) << std::endl;
2343  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci) << std::endl;
2344  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ex_ei) << std::endl;
2345  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bii_ei) << std::endl;
2346  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bii_ci) << std::endl;
2347  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ci) << std::endl;
2348  Xyce::dout() << " Jdxp_static[admsNodeID_cx] = "
2349  <<Jdxp_static[admsNodeID_cx] << std::endl;
2350  Xyce::dout() << " Jdxp_dynamic[admsNodeID_cx] = "
2351  <<Jdxp_dynamic[admsNodeID_cx] << std::endl;
2352  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi] = "
2353  <<staticContributions[admsBRA_ID_b_bi].val() << std::endl;
2354  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_t_ti) << std::endl;
2355  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_b_c) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_b_c) << std::endl;
2356  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_c_GND) << std::endl;
2357  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_b_GND) << std::endl;
2358  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_cx_bii) << std::endl;
2359  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_exx_bii) << std::endl;
2360  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ex_bii) << std::endl;
2361  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_bi) << std::endl;
2362  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_c_ci) << std::endl;
2363  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_e_ei) << std::endl;
2364  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_b_bi) << std::endl;
2365  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ti_GND) << std::endl;
2366  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ci_ei) << std::endl;
2367  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_exx_ei) << std::endl;
2368  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_cx_ci) << std::endl;
2369  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ex_ei) << std::endl;
2370  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_ei) << std::endl;
2371  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_ci) << std::endl;
2372  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bi_ci) << std::endl;
2373  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi] = "
2374  <<dynamicContributions[admsBRA_ID_b_bi].val() << std::endl;
2375  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_t_ti) << std::endl;
2376  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_b_c) << std::endl;
2377  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_c_GND) << std::endl;
2378  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_b_GND) << std::endl;
2379  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_cx_bii) << std::endl;
2380  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_exx_bii) << std::endl;
2381  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ex_bii) << std::endl;
2382  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_bi) << std::endl;
2383  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_c_ci) << std::endl;
2384  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_e_ei) << std::endl;
2385  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_b_bi) << std::endl;
2386  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ti_GND) << std::endl;
2387  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ci_ei) << std::endl;
2388  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_exx_ei) << std::endl;
2389  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_cx_ci) << std::endl;
2390  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ex_ei) << std::endl;
2391  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_ei) << std::endl;
2392  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_ci) << std::endl;
2393  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bi_ci) << std::endl;
2394  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei] = "
2395  <<staticContributions[admsBRA_ID_e_ei].val() << std::endl;
2396  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_t_ti) << std::endl;
2397  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_b_c) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_b_c) << std::endl;
2398  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_c_GND) << std::endl;
2399  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_b_GND) << std::endl;
2400  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_cx_bii) << std::endl;
2401  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_exx_bii) << std::endl;
2402  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ex_bii) << std::endl;
2403  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_bi) << std::endl;
2404  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_c_ci) << std::endl;
2405  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_e_ei) << std::endl;
2406  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_b_bi) << std::endl;
2407  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ti_GND) << std::endl;
2408  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ci_ei) << std::endl;
2409  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_exx_ei) << std::endl;
2410  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_cx_ci) << std::endl;
2411  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ex_ei) << std::endl;
2412  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_ei) << std::endl;
2413  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_ci) << std::endl;
2414  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bi_ci) << std::endl;
2415  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei] = "
2416  <<dynamicContributions[admsBRA_ID_e_ei].val() << std::endl;
2417  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_t_ti) << std::endl;
2418  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_b_c) << std::endl;
2419  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_c_GND) << std::endl;
2420  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_b_GND) << std::endl;
2421  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_cx_bii) << std::endl;
2422  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_exx_bii) << std::endl;
2423  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ex_bii) << std::endl;
2424  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_bi) << std::endl;
2425  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_c_ci) << std::endl;
2426  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_e_ei) << std::endl;
2427  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_b_bi) << std::endl;
2428  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ti_GND) << std::endl;
2429  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ci_ei) << std::endl;
2430  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_exx_ei) << std::endl;
2431  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_cx_ci) << std::endl;
2432  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ex_ei) << std::endl;
2433  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_ei) << std::endl;
2434  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_ci) << std::endl;
2435  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bi_ci) << std::endl;
2436  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci] = "
2437  <<staticContributions[admsBRA_ID_c_ci].val() << std::endl;
2438  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_t_ti) << std::endl;
2439  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_b_c) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_b_c) << std::endl;
2440  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_c_GND) << std::endl;
2441  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_b_GND) << std::endl;
2442  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_cx_bii) << std::endl;
2443  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_exx_bii) << std::endl;
2444  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ex_bii) << std::endl;
2445  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_bi) << std::endl;
2446  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_c_ci) << std::endl;
2447  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_e_ei) << std::endl;
2448  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_b_bi) << std::endl;
2449  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ti_GND) << std::endl;
2450  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ci_ei) << std::endl;
2451  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_exx_ei) << std::endl;
2452  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_cx_ci) << std::endl;
2453  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ex_ei) << std::endl;
2454  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_ei) << std::endl;
2455  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_ci) << std::endl;
2456  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bi_ci) << std::endl;
2457  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci] = "
2458  <<dynamicContributions[admsBRA_ID_c_ci].val() << std::endl;
2459  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_t_ti) << std::endl;
2460  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_b_c) << std::endl;
2461  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_c_GND) << std::endl;
2462  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_b_GND) << std::endl;
2463  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_cx_bii) << std::endl;
2464  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_exx_bii) << std::endl;
2465  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ex_bii) << std::endl;
2466  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_bi) << std::endl;
2467  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_c_ci) << std::endl;
2468  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_e_ei) << std::endl;
2469  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_b_bi) << std::endl;
2470  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ti_GND) << std::endl;
2471  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ci_ei) << std::endl;
2472  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_exx_ei) << std::endl;
2473  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_cx_ci) << std::endl;
2474  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ex_ei) << std::endl;
2475  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_ei) << std::endl;
2476  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_ci) << std::endl;
2477  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bi_ci) << std::endl;
2478 
2479  if (!origFlag)
2480  Xyce::dout() << "This step was limited by this device." << std::endl;
2481  }
2482 #endif // Xyce_DEBUG_DEVICE
2483  return true;
2484 }
2485 
2486 //-----------------------------------------------------------------------------
2487 // Function : Instance::loadDAEdFdx
2488 // Purpose :
2489 // Special Notes : Load the dFdx ("static jacobian") matrix
2490 // Scope : public
2491 // Creator : admsXml
2492 // Creation Date :
2493 //-----------------------------------------------------------------------------
2495 {
2496  bool bsuccess = true;
2497  N_LAS_Matrix * dFdxMatPtr = extData.dFdxMatrixPtr;
2498 
2499 #ifdef Xyce_DEBUG_DEVICE
2500  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2501  {
2502  Xyce::dout() << subsection_divider << std::endl;
2503  Xyce::dout() << "ADMSHBT_X::Instance::loadDAEdFdx (" << getName() << "):" << std::endl;
2504  }
2505 #endif
2506  (*f_bi_Equ_ti_Node_Ptr) += +staticContributions[admsNodeID_bi].dx(admsProbeID_V_ti_GND);
2507 
2508 
2509 #ifdef Xyce_DEBUG_DEVICE
2510  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2511  {
2512  Xyce::dout() << " (*f_bi_Equ_ti_Node_Ptr) += " << +staticContributions[admsNodeID_bi].dx(admsProbeID_V_ti_GND)<< std::endl;
2513  }
2514 #endif
2515  (*f_ci_Equ_ti_Node_Ptr) += +staticContributions[admsNodeID_ci].dx(admsProbeID_V_ti_GND);
2516 
2517 
2518 #ifdef Xyce_DEBUG_DEVICE
2519  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2520  {
2521  Xyce::dout() << " (*f_ci_Equ_ti_Node_Ptr) += " << +staticContributions[admsNodeID_ci].dx(admsProbeID_V_ti_GND)<< std::endl;
2522  }
2523 #endif
2525 
2526 
2527 #ifdef Xyce_DEBUG_DEVICE
2528  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2529  {
2530  Xyce::dout() << " (*f_bi_Equ_bi_Node_Ptr) += " << -staticContributions[admsNodeID_bi].dx(admsProbeID_V_bii_bi) +staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci)<< std::endl;
2531  }
2532 #endif
2533  (*f_bi_Equ_ci_Node_Ptr) += -staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci);
2534 
2535 
2536 #ifdef Xyce_DEBUG_DEVICE
2537  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2538  {
2539  Xyce::dout() << " (*f_bi_Equ_ci_Node_Ptr) += " << -staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci)<< std::endl;
2540  }
2541 #endif
2542  (*f_ci_Equ_bi_Node_Ptr) += +staticContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci);
2543 
2544 
2545 #ifdef Xyce_DEBUG_DEVICE
2546  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2547  {
2548  Xyce::dout() << " (*f_ci_Equ_bi_Node_Ptr) += " << +staticContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci)<< std::endl;
2549  }
2550 #endif
2552 
2553 
2554 #ifdef Xyce_DEBUG_DEVICE
2555  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2556  {
2558  }
2559 #endif
2560  (*f_bii_Equ_ti_Node_Ptr) += +staticContributions[admsNodeID_bii].dx(admsProbeID_V_ti_GND);
2561 
2562 
2563 #ifdef Xyce_DEBUG_DEVICE
2564  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2565  {
2566  Xyce::dout() << " (*f_bii_Equ_ti_Node_Ptr) += " << +staticContributions[admsNodeID_bii].dx(admsProbeID_V_ti_GND)<< std::endl;
2567  }
2568 #endif
2570 
2571 
2572 #ifdef Xyce_DEBUG_DEVICE
2573  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2574  {
2576  }
2577 #endif
2578  (*f_bii_Equ_ci_Node_Ptr) += -staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ci);
2579 
2580 
2581 #ifdef Xyce_DEBUG_DEVICE
2582  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2583  {
2584  Xyce::dout() << " (*f_bii_Equ_ci_Node_Ptr) += " << -staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ci)<< std::endl;
2585  }
2586 #endif
2588 
2589 
2590 #ifdef Xyce_DEBUG_DEVICE
2591  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2592  {
2593  Xyce::dout() << " (*f_ci_Equ_bii_Node_Ptr) += " << +staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei) +staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ci)<< std::endl;
2594  }
2595 #endif
2596  (*f_bii_Equ_ei_Node_Ptr) += -staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ei);
2597 
2598 
2599 #ifdef Xyce_DEBUG_DEVICE
2600  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2601  {
2602  Xyce::dout() << " (*f_bii_Equ_ei_Node_Ptr) += " << -staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ei)<< std::endl;
2603  }
2604 #endif
2605  (*f_ci_Equ_ei_Node_Ptr) += -staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei);
2606 
2607 
2608 #ifdef Xyce_DEBUG_DEVICE
2609  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2610  {
2611  Xyce::dout() << " (*f_ci_Equ_ei_Node_Ptr) += " << -staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei)<< std::endl;
2612  }
2613 #endif
2615 
2616 
2617 #ifdef Xyce_DEBUG_DEVICE
2618  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2619  {
2620  Xyce::dout() << " (*f_ei_Equ_bii_Node_Ptr) += " << +staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ei) +staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ci)<< std::endl;
2621  }
2622 #endif
2623  (*f_ei_Equ_ci_Node_Ptr) += -staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ci);
2624 
2625 
2626 #ifdef Xyce_DEBUG_DEVICE
2627  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2628  {
2629  Xyce::dout() << " (*f_ei_Equ_ci_Node_Ptr) += " << -staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ci)<< std::endl;
2630  }
2631 #endif
2632  (*f_ei_Equ_ti_Node_Ptr) += +staticContributions[admsNodeID_ei].dx(admsProbeID_V_ti_GND);
2633 
2634 
2635 #ifdef Xyce_DEBUG_DEVICE
2636  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2637  {
2638  Xyce::dout() << " (*f_ei_Equ_ti_Node_Ptr) += " << +staticContributions[admsNodeID_ei].dx(admsProbeID_V_ti_GND)<< std::endl;
2639  }
2640 #endif
2642 
2643 
2644 #ifdef Xyce_DEBUG_DEVICE
2645  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2646  {
2648  }
2649 #endif
2650  (*f_ex_Equ_ti_Node_Ptr) += +staticContributions[admsNodeID_ex].dx(admsProbeID_V_ti_GND);
2651 
2652 
2653 #ifdef Xyce_DEBUG_DEVICE
2654  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2655  {
2656  Xyce::dout() << " (*f_ex_Equ_ti_Node_Ptr) += " << +staticContributions[admsNodeID_ex].dx(admsProbeID_V_ti_GND)<< std::endl;
2657  }
2658 #endif
2660 
2661 
2662 #ifdef Xyce_DEBUG_DEVICE
2663  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2664  {
2665  Xyce::dout() << " (*f_ex_Equ_ex_Node_Ptr) += " << +staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_bii) +staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_ei)<< std::endl;
2666  }
2667 #endif
2668  (*f_ex_Equ_ei_Node_Ptr) += -staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_ei);
2669 
2670 
2671 #ifdef Xyce_DEBUG_DEVICE
2672  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2673  {
2674  Xyce::dout() << " (*f_ex_Equ_ei_Node_Ptr) += " << -staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_ei)<< std::endl;
2675  }
2676 #endif
2677  (*f_ei_Equ_ex_Node_Ptr) += +staticContributions[admsNodeID_ei].dx(admsProbeID_V_ex_ei);
2678 
2679 
2680 #ifdef Xyce_DEBUG_DEVICE
2681  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2682  {
2683  Xyce::dout() << " (*f_ei_Equ_ex_Node_Ptr) += " << +staticContributions[admsNodeID_ei].dx(admsProbeID_V_ex_ei)<< std::endl;
2684  }
2685 #endif
2686  (*f_exx_Equ_ti_Node_Ptr) += +staticContributions[admsNodeID_exx].dx(admsProbeID_V_ti_GND);
2687 
2688 
2689 #ifdef Xyce_DEBUG_DEVICE
2690  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2691  {
2692  Xyce::dout() << " (*f_exx_Equ_ti_Node_Ptr) += " << +staticContributions[admsNodeID_exx].dx(admsProbeID_V_ti_GND)<< std::endl;
2693  }
2694 #endif
2696 
2697 
2698 #ifdef Xyce_DEBUG_DEVICE
2699  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2700  {
2701  Xyce::dout() << " (*f_exx_Equ_exx_Node_Ptr) += " << +staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_bii) +staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_ei)<< std::endl;
2702  }
2703 #endif
2704  (*f_exx_Equ_ei_Node_Ptr) += -staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_ei);
2705 
2706 
2707 #ifdef Xyce_DEBUG_DEVICE
2708  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2709  {
2710  Xyce::dout() << " (*f_exx_Equ_ei_Node_Ptr) += " << -staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_ei)<< std::endl;
2711  }
2712 #endif
2713  (*f_ei_Equ_exx_Node_Ptr) += +staticContributions[admsNodeID_ei].dx(admsProbeID_V_exx_ei);
2714 
2715 
2716 #ifdef Xyce_DEBUG_DEVICE
2717  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2718  {
2719  Xyce::dout() << " (*f_ei_Equ_exx_Node_Ptr) += " << +staticContributions[admsNodeID_ei].dx(admsProbeID_V_exx_ei)<< std::endl;
2720  }
2721 #endif
2722  (*f_cx_Equ_ti_Node_Ptr) += +staticContributions[admsNodeID_cx].dx(admsProbeID_V_ti_GND);
2723 
2724 
2725 #ifdef Xyce_DEBUG_DEVICE
2726  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2727  {
2728  Xyce::dout() << " (*f_cx_Equ_ti_Node_Ptr) += " << +staticContributions[admsNodeID_cx].dx(admsProbeID_V_ti_GND)<< std::endl;
2729  }
2730 #endif
2732 
2733 
2734 #ifdef Xyce_DEBUG_DEVICE
2735  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2736  {
2737  Xyce::dout() << " (*f_cx_Equ_cx_Node_Ptr) += " << +staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_bii) +staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci)<< std::endl;
2738  }
2739 #endif
2740  (*f_cx_Equ_ci_Node_Ptr) += -staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci);
2741 
2742 
2743 #ifdef Xyce_DEBUG_DEVICE
2744  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2745  {
2746  Xyce::dout() << " (*f_cx_Equ_ci_Node_Ptr) += " << -staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci)<< std::endl;
2747  }
2748 #endif
2749  (*f_ci_Equ_cx_Node_Ptr) += +staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci);
2750 
2751 
2752 #ifdef Xyce_DEBUG_DEVICE
2753  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2754  {
2755  Xyce::dout() << " (*f_ci_Equ_cx_Node_Ptr) += " << +staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci)<< std::endl;
2756  }
2757 #endif
2758  (*f_bii_Equ_bi_Node_Ptr) += -staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_bi);
2759 
2760 
2761 #ifdef Xyce_DEBUG_DEVICE
2762  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2763  {
2764  Xyce::dout() << " (*f_bii_Equ_bi_Node_Ptr) += " << -staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_bi)<< std::endl;
2765  }
2766 #endif
2767  (*f_bi_Equ_bii_Node_Ptr) += +staticContributions[admsNodeID_bi].dx(admsProbeID_V_bii_bi);
2768 
2769 
2770 #ifdef Xyce_DEBUG_DEVICE
2771  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2772  {
2773  Xyce::dout() << " (*f_bi_Equ_bii_Node_Ptr) += " << +staticContributions[admsNodeID_bi].dx(admsProbeID_V_bii_bi)<< std::endl;
2774  }
2775 #endif
2776  (*f_ex_Equ_bii_Node_Ptr) += -staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_bii);
2777 
2778 
2779 #ifdef Xyce_DEBUG_DEVICE
2780  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2781  {
2782  Xyce::dout() << " (*f_ex_Equ_bii_Node_Ptr) += " << -staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_bii)<< std::endl;
2783  }
2784 #endif
2785  (*f_bii_Equ_ex_Node_Ptr) += +staticContributions[admsNodeID_bii].dx(admsProbeID_V_ex_bii);
2786 
2787 
2788 #ifdef Xyce_DEBUG_DEVICE
2789  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2790  {
2791  Xyce::dout() << " (*f_bii_Equ_ex_Node_Ptr) += " << +staticContributions[admsNodeID_bii].dx(admsProbeID_V_ex_bii)<< std::endl;
2792  }
2793 #endif
2794  (*f_exx_Equ_bii_Node_Ptr) += -staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_bii);
2795 
2796 
2797 #ifdef Xyce_DEBUG_DEVICE
2798  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2799  {
2800  Xyce::dout() << " (*f_exx_Equ_bii_Node_Ptr) += " << -staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_bii)<< std::endl;
2801  }
2802 #endif
2803  (*f_bii_Equ_exx_Node_Ptr) += +staticContributions[admsNodeID_bii].dx(admsProbeID_V_exx_bii);
2804 
2805 
2806 #ifdef Xyce_DEBUG_DEVICE
2807  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2808  {
2809  Xyce::dout() << " (*f_bii_Equ_exx_Node_Ptr) += " << +staticContributions[admsNodeID_bii].dx(admsProbeID_V_exx_bii)<< std::endl;
2810  }
2811 #endif
2812  (*f_cx_Equ_bii_Node_Ptr) += -staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_bii);
2813 
2814 
2815 #ifdef Xyce_DEBUG_DEVICE
2816  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2817  {
2818  Xyce::dout() << " (*f_cx_Equ_bii_Node_Ptr) += " << -staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_bii)<< std::endl;
2819  }
2820 #endif
2821  (*f_bii_Equ_cx_Node_Ptr) += +staticContributions[admsNodeID_bii].dx(admsProbeID_V_cx_bii);
2822 
2823 
2824 #ifdef Xyce_DEBUG_DEVICE
2825  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2826  {
2827  Xyce::dout() << " (*f_bii_Equ_cx_Node_Ptr) += " << +staticContributions[admsNodeID_bii].dx(admsProbeID_V_cx_bii)<< std::endl;
2828  }
2829 #endif
2830  (*f_ti_Equ_bi_Node_Ptr) += +staticContributions[admsNodeID_ti].dx(admsProbeID_V_bi_ci);
2831 
2832 
2833 #ifdef Xyce_DEBUG_DEVICE
2834  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2835  {
2836  Xyce::dout() << " (*f_ti_Equ_bi_Node_Ptr) += " << +staticContributions[admsNodeID_ti].dx(admsProbeID_V_bi_ci)<< std::endl;
2837  }
2838 #endif
2840 
2841 
2842 #ifdef Xyce_DEBUG_DEVICE
2843  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2844  {
2846  }
2847 #endif
2849 
2850 
2851 #ifdef Xyce_DEBUG_DEVICE
2852  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2853  {
2854  Xyce::dout() << " (*f_ti_Equ_ei_Node_Ptr) += " << -staticContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ei) -staticContributions[admsNodeID_ti].dx(admsProbeID_V_ci_ei)<< std::endl;
2855  }
2856 #endif
2858 
2859 
2860 #ifdef Xyce_DEBUG_DEVICE
2861  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2862  {
2863  Xyce::dout() << " (*f_ti_Equ_bii_Node_Ptr) += " << +staticContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ei) +staticContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ci)<< std::endl;
2864  }
2865 #endif
2867 
2868 
2869 #ifdef Xyce_DEBUG_DEVICE
2870  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2871  {
2872  Xyce::dout() << " (*f_ti_Equ_ti_Node_Ptr) += " << -staticContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti) +staticContributions[admsNodeID_ti].dx(admsProbeID_V_ti_GND)<< std::endl;
2873  }
2874 #endif
2875  (*f_t_Equ_t_Node_Ptr) += +staticContributions[admsNodeID_t].dx(admsProbeID_V_t_ti);
2876 
2877 
2878 #ifdef Xyce_DEBUG_DEVICE
2879  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2880  {
2881  Xyce::dout() << " (*f_t_Equ_t_Node_Ptr) += " << +staticContributions[admsNodeID_t].dx(admsProbeID_V_t_ti)<< std::endl;
2882  }
2883 #endif
2884  (*f_t_Equ_ti_Node_Ptr) += -staticContributions[admsNodeID_t].dx(admsProbeID_V_t_ti);
2885 
2886 
2887 #ifdef Xyce_DEBUG_DEVICE
2888  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2889  {
2890  Xyce::dout() << " (*f_t_Equ_ti_Node_Ptr) += " << -staticContributions[admsNodeID_t].dx(admsProbeID_V_t_ti)<< std::endl;
2891  }
2892 #endif
2893  (*f_ti_Equ_t_Node_Ptr) += +staticContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti);
2894 
2895 
2896 #ifdef Xyce_DEBUG_DEVICE
2897  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2898  {
2899  Xyce::dout() << " (*f_ti_Equ_t_Node_Ptr) += " << +staticContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti)<< std::endl;
2900  }
2901 #endif
2902  (*f_c_Equ_BRA_c_ci_Var_Ptr) += staticContributions[admsNodeID_c].dx(admsProbeID_I_c_ci);
2903 
2904 
2905 #ifdef Xyce_DEBUG_DEVICE
2906  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2907  {
2908  Xyce::dout() << " (*f_c_Equ_BRA_c_ci_Var_Ptr) += " <<staticContributions[admsNodeID_c].dx(admsProbeID_I_c_ci) << std::endl;
2909 
2910  }
2911 #endif
2912  (*f_b_Equ_BRA_b_bi_Var_Ptr) += staticContributions[admsNodeID_b].dx(admsProbeID_I_b_bi);
2913 
2914 
2915 #ifdef Xyce_DEBUG_DEVICE
2916  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2917  {
2918  Xyce::dout() << " (*f_b_Equ_BRA_b_bi_Var_Ptr) += " <<staticContributions[admsNodeID_b].dx(admsProbeID_I_b_bi) << std::endl;
2919 
2920  }
2921 #endif
2922  (*f_e_Equ_BRA_e_ei_Var_Ptr) += staticContributions[admsNodeID_e].dx(admsProbeID_I_e_ei);
2923 
2924 
2925 #ifdef Xyce_DEBUG_DEVICE
2926  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2927  {
2928  Xyce::dout() << " (*f_e_Equ_BRA_e_ei_Var_Ptr) += " <<staticContributions[admsNodeID_e].dx(admsProbeID_I_e_ei) << std::endl;
2929 
2930  }
2931 #endif
2932  (*f_ei_Equ_BRA_e_ei_Var_Ptr) += staticContributions[admsNodeID_ei].dx(admsProbeID_I_e_ei);
2933 
2934 
2935 #ifdef Xyce_DEBUG_DEVICE
2936  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2937  {
2938  Xyce::dout() << " (*f_ei_Equ_BRA_e_ei_Var_Ptr) += " <<staticContributions[admsNodeID_ei].dx(admsProbeID_I_e_ei) << std::endl;
2939 
2940  }
2941 #endif
2942  (*f_bi_Equ_BRA_b_bi_Var_Ptr) += staticContributions[admsNodeID_bi].dx(admsProbeID_I_b_bi);
2943 
2944 
2945 #ifdef Xyce_DEBUG_DEVICE
2946  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2947  {
2948  Xyce::dout() << " (*f_bi_Equ_BRA_b_bi_Var_Ptr) += " <<staticContributions[admsNodeID_bi].dx(admsProbeID_I_b_bi) << std::endl;
2949 
2950  }
2951 #endif
2952  (*f_ci_Equ_BRA_c_ci_Var_Ptr) += staticContributions[admsNodeID_ci].dx(admsProbeID_I_c_ci);
2953 
2954 
2955 #ifdef Xyce_DEBUG_DEVICE
2956  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2957  {
2958  Xyce::dout() << " (*f_ci_Equ_BRA_c_ci_Var_Ptr) += " <<staticContributions[admsNodeID_ci].dx(admsProbeID_I_c_ci) << std::endl;
2959 
2960  }
2961 #endif
2962  // there also need to be extra loads for branch b,bi
2963  // Load for branch b,bi equ var b
2964  (*f_BRA_b_bi_Equ_b_Node_Ptr) += -1;
2965 
2966 #ifdef Xyce_DEBUG_DEVICE
2967  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2968  { Xyce::dout() << " (*f_BRA_b_bi_Equ_b_Node_Ptr) += " << -1<< std::endl;
2969 
2970  }
2971 #endif
2972  // Load for branch b,bi equ var bi
2973  (*f_BRA_b_bi_Equ_bi_Node_Ptr) += +1;
2974 
2975 #ifdef Xyce_DEBUG_DEVICE
2976  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2977  { Xyce::dout() << " (*f_BRA_b_bi_Equ_bi_Node_Ptr) += " << +1<< std::endl;
2978 
2979  }
2980 #endif
2981  //load for branch b,bi equ branch b,bi var
2982  (*f_BRA_b_bi_Equ_BRA_b_bi_Var_Ptr) += staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_b_bi);
2983 
2984 #ifdef Xyce_DEBUG_DEVICE
2985  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2986  {Xyce::dout() << " (*f_BRA_b_bi_Equ_BRA_b_bi_Var_Ptr) += " << staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_b_bi) << std::endl;
2987 
2988  }
2989 #endif
2990  // there also need to be extra loads for branch e,ei
2991  // Load for branch e,ei equ var e
2992  (*f_BRA_e_ei_Equ_e_Node_Ptr) += -1;
2993 
2994 #ifdef Xyce_DEBUG_DEVICE
2995  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2996  { Xyce::dout() << " (*f_BRA_e_ei_Equ_e_Node_Ptr) += " << -1<< std::endl;
2997 
2998  }
2999 #endif
3000  // Load for branch e,ei equ var ei
3001  (*f_BRA_e_ei_Equ_ei_Node_Ptr) += +1;
3002 
3003 #ifdef Xyce_DEBUG_DEVICE
3004  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3005  { Xyce::dout() << " (*f_BRA_e_ei_Equ_ei_Node_Ptr) += " << +1<< std::endl;
3006 
3007  }
3008 #endif
3009  //load for branch e,ei equ branch e,ei var
3010  (*f_BRA_e_ei_Equ_BRA_e_ei_Var_Ptr) += staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_e_ei);
3011 
3012 #ifdef Xyce_DEBUG_DEVICE
3013  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3014  {Xyce::dout() << " (*f_BRA_e_ei_Equ_BRA_e_ei_Var_Ptr) += " << staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_e_ei) << std::endl;
3015 
3016  }
3017 #endif
3018  // there also need to be extra loads for branch c,ci
3019  // Load for branch c,ci equ var c
3020  (*f_BRA_c_ci_Equ_c_Node_Ptr) += -1;
3021 
3022 #ifdef Xyce_DEBUG_DEVICE
3023  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3024  { Xyce::dout() << " (*f_BRA_c_ci_Equ_c_Node_Ptr) += " << -1<< std::endl;
3025 
3026  }
3027 #endif
3028  // Load for branch c,ci equ var ci
3029  (*f_BRA_c_ci_Equ_ci_Node_Ptr) += +1;
3030 
3031 #ifdef Xyce_DEBUG_DEVICE
3032  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3033  { Xyce::dout() << " (*f_BRA_c_ci_Equ_ci_Node_Ptr) += " << +1<< std::endl;
3034 
3035  }
3036 #endif
3037  //load for branch c,ci equ branch c,ci var
3038  (*f_BRA_c_ci_Equ_BRA_c_ci_Var_Ptr) += staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_c_ci);
3039 
3040 #ifdef Xyce_DEBUG_DEVICE
3041  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3042  {Xyce::dout() << " (*f_BRA_c_ci_Equ_BRA_c_ci_Var_Ptr) += " << staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_c_ci) << std::endl;
3043 
3044  }
3045 #endif
3046 
3047 
3048  return bsuccess;
3049 }
3050 
3051 
3052 //-----------------------------------------------------------------------------
3053 // Function : Instance::loadDAEdQdx
3054 // Purpose :
3055 // Special Notes : Load the dQdx ("dynamic jacobian") matrix
3056 // Scope : public
3057 // Creator : admsXml
3058 // Creation Date :
3059 //-----------------------------------------------------------------------------
3061 {
3062  bool bsuccess = true;
3063  N_LAS_Matrix * dQdxMatPtr = extData.dQdxMatrixPtr;
3064 
3065 #ifdef Xyce_DEBUG_DEVICE
3066  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3067  {
3068  Xyce::dout() << subsection_divider << std::endl;
3069  Xyce::dout() << "ADMSHBT_X::Instance::loadDAEdQdx (" << getName() << "):" << std::endl;
3070  }
3071 #endif
3072  (*q_bi_Equ_ti_Node_Ptr) += +dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ti_GND);
3073 
3074 
3075 #ifdef Xyce_DEBUG_DEVICE
3076  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3077  {
3078  Xyce::dout() << " (*q_bi_Equ_ti_Node_Ptr) += " << +dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ti_GND)<< std::endl;
3079  }
3080 #endif
3081  (*q_ci_Equ_ti_Node_Ptr) += +dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ti_GND);
3082 
3083 
3084 #ifdef Xyce_DEBUG_DEVICE
3085  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3086  {
3087  Xyce::dout() << " (*q_ci_Equ_ti_Node_Ptr) += " << +dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ti_GND)<< std::endl;
3088  }
3089 #endif
3090  (*q_bi_Equ_bi_Node_Ptr) += +dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci);
3091 
3092 
3093 #ifdef Xyce_DEBUG_DEVICE
3094  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3095  {
3096  Xyce::dout() << " (*q_bi_Equ_bi_Node_Ptr) += " << +dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci)<< std::endl;
3097  }
3098 #endif
3099  (*q_bi_Equ_ci_Node_Ptr) += -dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci);
3100 
3101 
3102 #ifdef Xyce_DEBUG_DEVICE
3103  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3104  {
3105  Xyce::dout() << " (*q_bi_Equ_ci_Node_Ptr) += " << -dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci)<< std::endl;
3106  }
3107 #endif
3108  (*q_ci_Equ_bi_Node_Ptr) += +dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci);
3109 
3110 
3111 #ifdef Xyce_DEBUG_DEVICE
3112  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3113  {
3114  Xyce::dout() << " (*q_ci_Equ_bi_Node_Ptr) += " << +dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci)<< std::endl;
3115  }
3116 #endif
3118 
3119 
3120 #ifdef Xyce_DEBUG_DEVICE
3121  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3122  {
3123  Xyce::dout() << " (*q_ci_Equ_ci_Node_Ptr) += " << -dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ci) -dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci)<< std::endl;
3124  }
3125 #endif
3126  (*q_bii_Equ_ti_Node_Ptr) += +dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ti_GND);
3127 
3128 
3129 #ifdef Xyce_DEBUG_DEVICE
3130  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3131  {
3132  Xyce::dout() << " (*q_bii_Equ_ti_Node_Ptr) += " << +dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ti_GND)<< std::endl;
3133  }
3134 #endif
3136 
3137 
3138 #ifdef Xyce_DEBUG_DEVICE
3139  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3140  {
3141  Xyce::dout() << " (*q_bii_Equ_bii_Node_Ptr) += " << +dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ei) +dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ci)<< std::endl;
3142  }
3143 #endif
3145 
3146 
3147 #ifdef Xyce_DEBUG_DEVICE
3148  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3149  {
3150  Xyce::dout() << " (*q_bii_Equ_ci_Node_Ptr) += " << +dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ci_ei) -dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ci)<< std::endl;
3151  }
3152 #endif
3154 
3155 
3156 #ifdef Xyce_DEBUG_DEVICE
3157  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3158  {
3159  Xyce::dout() << " (*q_ci_Equ_bii_Node_Ptr) += " << +dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei) +dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ci)<< std::endl;
3160  }
3161 #endif
3163 
3164 
3165 #ifdef Xyce_DEBUG_DEVICE
3166  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3167  {
3168  Xyce::dout() << " (*q_bii_Equ_ei_Node_Ptr) += " << -dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ci_ei) -dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ei)<< std::endl;
3169  }
3170 #endif
3171  (*q_ci_Equ_ei_Node_Ptr) += -dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei);
3172 
3173 
3174 #ifdef Xyce_DEBUG_DEVICE
3175  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3176  {
3177  Xyce::dout() << " (*q_ci_Equ_ei_Node_Ptr) += " << -dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei)<< std::endl;
3178  }
3179 #endif
3181 
3182 
3183 #ifdef Xyce_DEBUG_DEVICE
3184  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3185  {
3186  Xyce::dout() << " (*q_ei_Equ_bii_Node_Ptr) += " << +dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ei) +dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ci)<< std::endl;
3187  }
3188 #endif
3190 
3191 
3192 #ifdef Xyce_DEBUG_DEVICE
3193  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3194  {
3195  Xyce::dout() << " (*q_ei_Equ_ci_Node_Ptr) += " << -dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ci) +dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ci_ei)<< std::endl;
3196  }
3197 #endif
3198  (*q_ei_Equ_ti_Node_Ptr) += +dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ti_GND);
3199 
3200 
3201 #ifdef Xyce_DEBUG_DEVICE
3202  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3203  {
3204  Xyce::dout() << " (*q_ei_Equ_ti_Node_Ptr) += " << +dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ti_GND)<< std::endl;
3205  }
3206 #endif
3208 
3209 
3210 #ifdef Xyce_DEBUG_DEVICE
3211  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3212  {
3213  Xyce::dout() << " (*q_ei_Equ_ei_Node_Ptr) += " << -dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ei) -dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ci_ei)<< std::endl;
3214  }
3215 #endif
3217 
3218 
3219 #ifdef Xyce_DEBUG_DEVICE
3220  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3221  {
3222  Xyce::dout() << " (*q_b_Equ_b_Node_Ptr) += " << +dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c) +dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_GND)<< std::endl;
3223  }
3224 #endif
3226 
3227 
3228 #ifdef Xyce_DEBUG_DEVICE
3229  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3230  {
3231  Xyce::dout() << " (*q_c_Equ_c_Node_Ptr) += " << -dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c) +dynamicContributions[admsNodeID_c].dx(admsProbeID_V_c_GND)<< std::endl;
3232  }
3233 #endif
3234  (*q_b_Equ_c_Node_Ptr) += -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c);
3235 
3236 
3237 #ifdef Xyce_DEBUG_DEVICE
3238  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3239  {
3240  Xyce::dout() << " (*q_b_Equ_c_Node_Ptr) += " << -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c)<< std::endl;
3241  }
3242 #endif
3243  (*q_c_Equ_b_Node_Ptr) += +dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c);
3244 
3245 
3246 #ifdef Xyce_DEBUG_DEVICE
3247  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3248  {
3249  Xyce::dout() << " (*q_c_Equ_b_Node_Ptr) += " << +dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c)<< std::endl;
3250  }
3251 #endif
3252  (*q_ti_Equ_ti_Node_Ptr) += -dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti);
3253 
3254 
3255 #ifdef Xyce_DEBUG_DEVICE
3256  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3257  {
3258  Xyce::dout() << " (*q_ti_Equ_ti_Node_Ptr) += " << -dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti)<< std::endl;
3259  }
3260 #endif
3261  (*q_t_Equ_t_Node_Ptr) += +dynamicContributions[admsNodeID_t].dx(admsProbeID_V_t_ti);
3262 
3263 
3264 #ifdef Xyce_DEBUG_DEVICE
3265  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3266  {
3267  Xyce::dout() << " (*q_t_Equ_t_Node_Ptr) += " << +dynamicContributions[admsNodeID_t].dx(admsProbeID_V_t_ti)<< std::endl;
3268  }
3269 #endif
3270  (*q_t_Equ_ti_Node_Ptr) += -dynamicContributions[admsNodeID_t].dx(admsProbeID_V_t_ti);
3271 
3272 
3273 #ifdef Xyce_DEBUG_DEVICE
3274  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3275  {
3276  Xyce::dout() << " (*q_t_Equ_ti_Node_Ptr) += " << -dynamicContributions[admsNodeID_t].dx(admsProbeID_V_t_ti)<< std::endl;
3277  }
3278 #endif
3279  (*q_ti_Equ_t_Node_Ptr) += +dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti);
3280 
3281 
3282 #ifdef Xyce_DEBUG_DEVICE
3283  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3284  {
3285  Xyce::dout() << " (*q_ti_Equ_t_Node_Ptr) += " << +dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti)<< std::endl;
3286  }
3287 #endif
3288  (*q_c_Equ_BRA_c_ci_Var_Ptr) += dynamicContributions[admsNodeID_c].dx(admsProbeID_I_c_ci);
3289  (*q_b_Equ_BRA_b_bi_Var_Ptr) += dynamicContributions[admsNodeID_b].dx(admsProbeID_I_b_bi);
3290  (*q_e_Equ_BRA_e_ei_Var_Ptr) += dynamicContributions[admsNodeID_e].dx(admsProbeID_I_e_ei);
3291  (*q_ei_Equ_BRA_e_ei_Var_Ptr) += dynamicContributions[admsNodeID_ei].dx(admsProbeID_I_e_ei);
3292  (*q_bi_Equ_BRA_b_bi_Var_Ptr) += dynamicContributions[admsNodeID_bi].dx(admsProbeID_I_b_bi);
3293  (*q_ci_Equ_BRA_c_ci_Var_Ptr) += dynamicContributions[admsNodeID_ci].dx(admsProbeID_I_c_ci);
3294  // there also need to be extra loads for branch b,bi
3295  // Load for branch b,bi equ var b
3296  // Load for branch b,bi equ var bi
3297  //load for branch b,bi equ branch b,bi var
3298  (*q_BRA_b_bi_Equ_BRA_b_bi_Var_Ptr) += dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_b_bi);
3299  // there also need to be extra loads for branch e,ei
3300  // Load for branch e,ei equ var e
3301  // Load for branch e,ei equ var ei
3302  //load for branch e,ei equ branch e,ei var
3303  (*q_BRA_e_ei_Equ_BRA_e_ei_Var_Ptr) += dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_e_ei);
3304  // there also need to be extra loads for branch c,ci
3305  // Load for branch c,ci equ var c
3306  // Load for branch c,ci equ var ci
3307  //load for branch c,ci equ branch c,ci var
3308  (*q_BRA_c_ci_Equ_BRA_c_ci_Var_Ptr) += dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_c_ci);
3309 
3310 
3311  return bsuccess;
3312 }
3313 
3314 //-----------------------------------------------------------------------------
3315 // Function : Instance::updateTemperature
3316 // Purpose : Set temperature and update any parameters that depend on it
3317 // Special Notes : In Xyce ADMS, we'll simply copy the temperature, which is
3318 // in Kelvin, to our "admsTemperature" variable, which needs
3319 // to be in Celsius.
3320 // Scope : public
3321 // Creator : admsXml
3322 // Creation Date :
3323 //-----------------------------------------------------------------------------
3324 bool Instance::updateTemperature(const double & temperatureTemp)
3325 {
3326 
3327  admsTemperature = temperatureTemp;
3328  adms_vt_nom = adms_vt(temperatureTemp);
3329 
3330  return true;
3331 }
3332 
3333 // Class Model
3334 //-----------------------------------------------------------------------------
3335 // Function : Model::processParams
3336 // Purpose :
3337 // Special Notes :
3338 // Scope : public
3339 // Creator : admsXml
3340 // Creation Date :
3341 //-----------------------------------------------------------------------------
3343 {
3344 
3345  // Now we need to check that any parameters are within their ranges as
3346  // specified in the verilog:
3347 
3348  // Parameter Mode : [ 0, 4 ]
3349  if ( (!((Mode >=0 && Mode <=4 ))) )
3350  {
3351  UserError0(*this) << "ADMSHBT_X: Parameter Mode value " << Mode << " out of range [ 0, 4 ]";
3352  }
3353 
3354  // Parameter Noise : [ 0, 4 ]
3355  if ( (!((Noise >=0 && Noise <=4 ))) )
3356  {
3357  UserError0(*this) << "ADMSHBT_X: Parameter Noise value " << Noise << " out of range [ 0, 4 ]";
3358  }
3359 
3360  // Parameter Debug : [ 0, (+inf) [
3361  if ( (!((Debug >=0))) )
3362  {
3363  UserError0(*this) << "ADMSHBT_X: Parameter Debug value " << Debug << " out of range [ 0, (+inf) [";
3364  }
3365 
3366  // Parameter DebugPlus : [ 0, (+inf) [
3367  if ( (!((DebugPlus >=0))) )
3368  {
3369  UserError0(*this) << "ADMSHBT_X: Parameter DebugPlus value " << DebugPlus << " out of range [ 0, (+inf) [";
3370  }
3371 
3372  // Parameter Rth : [ 0.0, (+inf) [
3373  if ( (!((Rth >=0.0))) )
3374  {
3375  UserError0(*this) << "ADMSHBT_X: Parameter Rth value " << Rth << " out of range [ 0.0, (+inf) [";
3376  }
3377 
3378  // Parameter Cth : [ 0.0, (+inf) [
3379  if ( (!((Cth >=0.0))) )
3380  {
3381  UserError0(*this) << "ADMSHBT_X: Parameter Cth value " << Cth << " out of range [ 0.0, (+inf) [";
3382  }
3383 
3384  // Parameter Jsf : [ 0.0, (+inf) [
3385  if ( (!((Jsf >=0.0))) )
3386  {
3387  UserError0(*this) << "ADMSHBT_X: Parameter Jsf value " << Jsf << " out of range [ 0.0, (+inf) [";
3388  }
3389 
3390  // Parameter nf : [ 0.0, (+inf) [
3391  if ( (!((nf >=0.0))) )
3392  {
3393  UserError0(*this) << "ADMSHBT_X: Parameter nf value " << nf << " out of range [ 0.0, (+inf) [";
3394  }
3395 
3396  // Parameter Vg : [ (-2.0), (+inf) [
3397  if ( (!((Vg >=(-2.0)))) )
3398  {
3399  UserError0(*this) << "ADMSHBT_X: Parameter Vg value " << Vg << " out of range [ (-2.0), (+inf) [";
3400  }
3401 
3402  // Parameter Jse : [ 0.0, (+inf) [
3403  if ( (!((Jse >=0.0))) )
3404  {
3405  UserError0(*this) << "ADMSHBT_X: Parameter Jse value " << Jse << " out of range [ 0.0, (+inf) [";
3406  }
3407 
3408  // Parameter ne : [ 0.0, (+inf) [
3409  if ( (!((ne >=0.0))) )
3410  {
3411  UserError0(*this) << "ADMSHBT_X: Parameter ne value " << ne << " out of range [ 0.0, (+inf) [";
3412  }
3413 
3414  // Parameter Rbxx : ] 0.0, (+inf) [
3415  if ( (!((Rbxx >0.0))) )
3416  {
3417  UserError0(*this) << "ADMSHBT_X: Parameter Rbxx value " << Rbxx << " out of range ] 0.0, (+inf) [";
3418  }
3419 
3420  // Parameter Vgb : [ 0.0, (+inf) [
3421  if ( (!((Vgb >=0.0))) )
3422  {
3423  UserError0(*this) << "ADMSHBT_X: Parameter Vgb value " << Vgb << " out of range [ 0.0, (+inf) [";
3424  }
3425 
3426  // Parameter Jsee : [ 0.0, (+inf) [
3427  if ( (!((Jsee >=0.0))) )
3428  {
3429  UserError0(*this) << "ADMSHBT_X: Parameter Jsee value " << Jsee << " out of range [ 0.0, (+inf) [";
3430  }
3431 
3432  // Parameter nee : [ 0.0, (+inf) [
3433  if ( (!((nee >=0.0))) )
3434  {
3435  UserError0(*this) << "ADMSHBT_X: Parameter nee value " << nee << " out of range [ 0.0, (+inf) [";
3436  }
3437 
3438  // Parameter Rbbxx : ] 0.0, (+inf) [
3439  if ( (!((Rbbxx >0.0))) )
3440  {
3441  UserError0(*this) << "ADMSHBT_X: Parameter Rbbxx value " << Rbbxx << " out of range ] 0.0, (+inf) [";
3442  }
3443 
3444  // Parameter Vgbb : [ 0.0, (+inf) [
3445  if ( (!((Vgbb >=0.0))) )
3446  {
3447  UserError0(*this) << "ADMSHBT_X: Parameter Vgbb value " << Vgbb << " out of range [ 0.0, (+inf) [";
3448  }
3449 
3450  // Parameter Jsr : [ 0.0, (+inf) [
3451  if ( (!((Jsr >=0.0))) )
3452  {
3453  UserError0(*this) << "ADMSHBT_X: Parameter Jsr value " << Jsr << " out of range [ 0.0, (+inf) [";
3454  }
3455 
3456  // Parameter nr : [ 0.0, (+inf) [
3457  if ( (!((nr >=0.0))) )
3458  {
3459  UserError0(*this) << "ADMSHBT_X: Parameter nr value " << nr << " out of range [ 0.0, (+inf) [";
3460  }
3461 
3462  // Parameter Vgr : [ 0.0, (+inf) [
3463  if ( (!((Vgr >=0.0))) )
3464  {
3465  UserError0(*this) << "ADMSHBT_X: Parameter Vgr value " << Vgr << " out of range [ 0.0, (+inf) [";
3466  }
3467 
3468  // Parameter XCjc : [ 0.0, 1.0 [
3469  if ( (!((XCjc >=0.0 && XCjc <1.0 ))) )
3470  {
3471  UserError0(*this) << "ADMSHBT_X: Parameter XCjc value " << XCjc << " out of range [ 0.0, 1.0 [";
3472  }
3473 
3474  // Parameter Jsc : [ 0.0, (+inf) [
3475  if ( (!((Jsc >=0.0))) )
3476  {
3477  UserError0(*this) << "ADMSHBT_X: Parameter Jsc value " << Jsc << " out of range [ 0.0, (+inf) [";
3478  }
3479 
3480  // Parameter nc : [ 0.0, (+inf) [
3481  if ( (!((nc >=0.0))) )
3482  {
3483  UserError0(*this) << "ADMSHBT_X: Parameter nc value " << nc << " out of range [ 0.0, (+inf) [";
3484  }
3485 
3486  // Parameter Rcxx : ] 0.0, (+inf) [
3487  if ( (!((Rcxx >0.0))) )
3488  {
3489  UserError0(*this) << "ADMSHBT_X: Parameter Rcxx value " << Rcxx << " out of range ] 0.0, (+inf) [";
3490  }
3491 
3492  // Parameter Vgc : [ 0.0, (+inf) [
3493  if ( (!((Vgc >=0.0))) )
3494  {
3495  UserError0(*this) << "ADMSHBT_X: Parameter Vgc value " << Vgc << " out of range [ 0.0, (+inf) [";
3496  }
3497 
3498  // Parameter Bf : [ 0.0, (+inf) [
3499  if ( (!((Bf >=0.0))) )
3500  {
3501  UserError0(*this) << "ADMSHBT_X: Parameter Bf value " << Bf << " out of range [ 0.0, (+inf) [";
3502  }
3503 
3504  // Parameter kBeta : [ 0.0, (+inf) [
3505  if ( (!((kBeta >=0.0))) )
3506  {
3507  UserError0(*this) << "ADMSHBT_X: Parameter kBeta value " << kBeta << " out of range [ 0.0, (+inf) [";
3508  }
3509 
3510  // Parameter Br : [ 0.0, (+inf) [
3511  if ( (!((Br >=0.0))) )
3512  {
3513  UserError0(*this) << "ADMSHBT_X: Parameter Br value " << Br << " out of range [ 0.0, (+inf) [";
3514  }
3515 
3516  // Parameter VAF : [ 0.0, (+inf) [
3517  if ( (!((VAF >=0.0))) )
3518  {
3519  UserError0(*this) << "ADMSHBT_X: Parameter VAF value " << VAF << " out of range [ 0.0, (+inf) [";
3520  }
3521 
3522  // Parameter VAR : [ 0.0, (+inf) [
3523  if ( (!((VAR >=0.0))) )
3524  {
3525  UserError0(*this) << "ADMSHBT_X: Parameter VAR value " << VAR << " out of range [ 0.0, (+inf) [";
3526  }
3527 
3528  // Parameter IKF : [ 0.0, (+inf) [
3529  if ( (!((IKF >=0.0))) )
3530  {
3531  UserError0(*this) << "ADMSHBT_X: Parameter IKF value " << IKF << " out of range [ 0.0, (+inf) [";
3532  }
3533 
3534  // Parameter IKR : [ 0.0, (+inf) [
3535  if ( (!((IKR >=0.0))) )
3536  {
3537  UserError0(*this) << "ADMSHBT_X: Parameter IKR value " << IKR << " out of range [ 0.0, (+inf) [";
3538  }
3539 
3540  // Parameter Mc : [ 0.0, (+inf) [
3541  if ( (!((Mc >=0.0))) )
3542  {
3543  UserError0(*this) << "ADMSHBT_X: Parameter Mc value " << Mc << " out of range [ 0.0, (+inf) [";
3544  }
3545 
3546  // Parameter BVceo : [ 0.0, (+inf) [
3547  if ( (!((BVceo >=0.0))) )
3548  {
3549  UserError0(*this) << "ADMSHBT_X: Parameter BVceo value " << BVceo << " out of range [ 0.0, (+inf) [";
3550  }
3551 
3552  // Parameter kc : [ 0.0, (+inf) [
3553  if ( (!((kc >=0.0))) )
3554  {
3555  UserError0(*this) << "ADMSHBT_X: Parameter kc value " << kc << " out of range [ 0.0, (+inf) [";
3556  }
3557 
3558  // Parameter BVebo : [ 0.0, (+inf) [
3559  if ( (!((BVebo >=0.0))) )
3560  {
3561  UserError0(*this) << "ADMSHBT_X: Parameter BVebo value " << BVebo << " out of range [ 0.0, (+inf) [";
3562  }
3563 
3564  // Parameter Tr : [ 0.0, (+inf) [
3565  if ( (!((Tr >=0.0))) )
3566  {
3567  UserError0(*this) << "ADMSHBT_X: Parameter Tr value " << Tr << " out of range [ 0.0, (+inf) [";
3568  }
3569 
3570  // Parameter Trx : [ 0.0, (+inf) [
3571  if ( (!((Trx >=0.0))) )
3572  {
3573  UserError0(*this) << "ADMSHBT_X: Parameter Trx value " << Trx << " out of range [ 0.0, (+inf) [";
3574  }
3575 
3576  // Parameter Tf : [ 0.0, (+inf) [
3577  if ( (!((Tf >=0.0))) )
3578  {
3579  UserError0(*this) << "ADMSHBT_X: Parameter Tf value " << Tf << " out of range [ 0.0, (+inf) [";
3580  }
3581 
3582  // Parameter Tft : [ 0.0, (+inf) [
3583  if ( (!((Tft >=0.0))) )
3584  {
3585  UserError0(*this) << "ADMSHBT_X: Parameter Tft value " << Tft << " out of range [ 0.0, (+inf) [";
3586  }
3587 
3588  // Parameter Thcs : [ 0.0, (+inf) [
3589  if ( (!((Thcs >=0.0))) )
3590  {
3591  UserError0(*this) << "ADMSHBT_X: Parameter Thcs value " << Thcs << " out of range [ 0.0, (+inf) [";
3592  }
3593 
3594  // Parameter Ahc : [ 0.0, (+inf) [
3595  if ( (!((Ahc >=0.0))) )
3596  {
3597  UserError0(*this) << "ADMSHBT_X: Parameter Ahc value " << Ahc << " out of range [ 0.0, (+inf) [";
3598  }
3599 
3600  // Parameter Cje : [ 0.0, (+inf) [
3601  if ( (!((Cje >=0.0))) )
3602  {
3603  UserError0(*this) << "ADMSHBT_X: Parameter Cje value " << Cje << " out of range [ 0.0, (+inf) [";
3604  }
3605 
3606  // Parameter mje : [ 0.0, 1 [
3607  if ( (!((mje >=0.0 && mje <1 ))) )
3608  {
3609  UserError0(*this) << "ADMSHBT_X: Parameter mje value " << mje << " out of range [ 0.0, 1 [";
3610  }
3611 
3612  // Parameter Vje : [ 0.0, (+inf) [
3613  if ( (!((Vje >=0.0))) )
3614  {
3615  UserError0(*this) << "ADMSHBT_X: Parameter Vje value " << Vje << " out of range [ 0.0, (+inf) [";
3616  }
3617 
3618  // Parameter Cjc : [ 0.0, (+inf) [
3619  if ( (!((Cjc >=0.0))) )
3620  {
3621  UserError0(*this) << "ADMSHBT_X: Parameter Cjc value " << Cjc << " out of range [ 0.0, (+inf) [";
3622  }
3623 
3624  // Parameter mjc : [ 0.0, (+inf) [
3625  if ( (!((mjc >=0.0))) )
3626  {
3627  UserError0(*this) << "ADMSHBT_X: Parameter mjc value " << mjc << " out of range [ 0.0, (+inf) [";
3628  }
3629 
3630  // Parameter Vjc : [ 0.0, (+inf) [
3631  if ( (!((Vjc >=0.0))) )
3632  {
3633  UserError0(*this) << "ADMSHBT_X: Parameter Vjc value " << Vjc << " out of range [ 0.0, (+inf) [";
3634  }
3635 
3636  // Parameter kjc : ] (-inf) (+inf) [
3637 
3638  // Parameter Cmin : [ 0.0, (+inf) [
3639  if ( (!((Cmin >=0.0))) )
3640  {
3641  UserError0(*this) << "ADMSHBT_X: Parameter Cmin value " << Cmin << " out of range [ 0.0, (+inf) [";
3642  }
3643 
3644  // Parameter J0 : [ 0.0, (+inf) [
3645  if ( (!((J0 >=0.0))) )
3646  {
3647  UserError0(*this) << "ADMSHBT_X: Parameter J0 value " << J0 << " out of range [ 0.0, (+inf) [";
3648  }
3649 
3650  // Parameter XJ0 : [ 0.0, 1.0 ]
3651  if ( (!((XJ0 >=0.0 && XJ0 <=1.0 ))) )
3652  {
3653  UserError0(*this) << "ADMSHBT_X: Parameter XJ0 value " << XJ0 << " out of range [ 0.0, 1.0 ]";
3654  }
3655 
3656  // Parameter Rci0 : ] 0.0, (+inf) [
3657  if ( (!((Rci0 >0.0))) )
3658  {
3659  UserError0(*this) << "ADMSHBT_X: Parameter Rci0 value " << Rci0 << " out of range ] 0.0, (+inf) [";
3660  }
3661 
3662  // Parameter Jk : [ 0.0, (+inf) [
3663  if ( (!((Jk >=0.0))) )
3664  {
3665  UserError0(*this) << "ADMSHBT_X: Parameter Jk value " << Jk << " out of range [ 0.0, (+inf) [";
3666  }
3667 
3668  // Parameter RJk : [ 0.0, (+inf) [
3669  if ( (!((RJk >=0.0))) )
3670  {
3671  UserError0(*this) << "ADMSHBT_X: Parameter RJk value " << RJk << " out of range [ 0.0, (+inf) [";
3672  }
3673 
3674  // Parameter Vces : [ 0.0, (+inf) [
3675  if ( (!((Vces >=0.0))) )
3676  {
3677  UserError0(*this) << "ADMSHBT_X: Parameter Vces value " << Vces << " out of range [ 0.0, (+inf) [";
3678  }
3679 
3680  // Parameter Rc : ] 0.0, (+inf) [
3681  if ( (!((Rc >0.0))) )
3682  {
3683  UserError0(*this) << "ADMSHBT_X: Parameter Rc value " << Rc << " out of range ] 0.0, (+inf) [";
3684  }
3685 
3686  // Parameter Re : ] 0.0, (+inf) [
3687  if ( (!((Re >0.0))) )
3688  {
3689  UserError0(*this) << "ADMSHBT_X: Parameter Re value " << Re << " out of range ] 0.0, (+inf) [";
3690  }
3691 
3692  // Parameter Rb : ] 0.0, (+inf) [
3693  if ( (!((Rb >0.0))) )
3694  {
3695  UserError0(*this) << "ADMSHBT_X: Parameter Rb value " << Rb << " out of range ] 0.0, (+inf) [";
3696  }
3697 
3698  // Parameter Rb2 : ] 0.0, (+inf) [
3699  if ( (!((Rb2 >0.0))) )
3700  {
3701  UserError0(*this) << "ADMSHBT_X: Parameter Rb2 value " << Rb2 << " out of range ] 0.0, (+inf) [";
3702  }
3703 
3704  // Parameter Lc : [ 0.0, (+inf) [
3705  if ( (!((Lc >=0.0))) )
3706  {
3707  UserError0(*this) << "ADMSHBT_X: Parameter Lc value " << Lc << " out of range [ 0.0, (+inf) [";
3708  }
3709 
3710  // Parameter Le : [ 0.0, (+inf) [
3711  if ( (!((Le >=0.0))) )
3712  {
3713  UserError0(*this) << "ADMSHBT_X: Parameter Le value " << Le << " out of range [ 0.0, (+inf) [";
3714  }
3715 
3716  // Parameter Lb : [ 0.0, (+inf) [
3717  if ( (!((Lb >=0.0))) )
3718  {
3719  UserError0(*this) << "ADMSHBT_X: Parameter Lb value " << Lb << " out of range [ 0.0, (+inf) [";
3720  }
3721 
3722  // Parameter Cq : [ 0.0, (+inf) [
3723  if ( (!((Cq >=0.0))) )
3724  {
3725  UserError0(*this) << "ADMSHBT_X: Parameter Cq value " << Cq << " out of range [ 0.0, (+inf) [";
3726  }
3727 
3728  // Parameter Cpb : [ 0.0, (+inf) [
3729  if ( (!((Cpb >=0.0))) )
3730  {
3731  UserError0(*this) << "ADMSHBT_X: Parameter Cpb value " << Cpb << " out of range [ 0.0, (+inf) [";
3732  }
3733 
3734  // Parameter Cpc : [ 0.0, (+inf) [
3735  if ( (!((Cpc >=0.0))) )
3736  {
3737  UserError0(*this) << "ADMSHBT_X: Parameter Cpc value " << Cpc << " out of range [ 0.0, (+inf) [";
3738  }
3739 
3740  // Parameter Tnom : [ (-273.15), (+inf) [
3741  if ( (!((Tnom >=(-273.15)))) )
3742  {
3743  UserError0(*this) << "ADMSHBT_X: Parameter Tnom value " << Tnom << " out of range [ (-273.15), (+inf) [";
3744  }
3745 
3746  // Parameter dtype : [ (-1), 1 ][ 0, 0 ]
3747  if ( (!((dtype >=(-1) && dtype <=1 )) || (dtype >=0 && dtype <=0 )) )
3748  {
3749  UserError0(*this) << "ADMSHBT_X: Parameter dtype value " << dtype << " out of range [ (-1), 1 ] or in excluded range [ 0, 0 ]";
3750  }
3751 
3752 
3753  // and of course, this routine is where we should put the initial_model
3754  // stuff
3755 
3756 
3757  return true;
3758 }
3759 //----------------------------------------------------------------------------
3760 // Function : Model::processInstanceParams
3761 // Purpose :
3762 // Special Notes :
3763 // Scope : public
3764 // Creator :
3765 // Creation Date :
3766 //----------------------------------------------------------------------------
3768 {
3769 
3770  std::vector<Instance*>::iterator iter;
3771  std::vector<Instance*>::iterator first = instanceContainer.begin();
3772  std::vector<Instance*>::iterator last = instanceContainer.end();
3773 
3774  for (iter=first; iter!=last; ++iter)
3775  {
3776  (*iter)->processParams();
3777  }
3778 
3779  return true;
3780 }
3781 
3782 //-----------------------------------------------------------------------------
3783 // Function : Model::Model
3784 // Purpose : model block constructor
3785 // Special Notes :
3786 // Scope : public
3787 // Creator :
3788 // Creation Date :
3789 //-----------------------------------------------------------------------------
3791  const Configuration & configuration,
3792  const ModelBlock & model_block,
3793  const FactoryBlock & factory_block)
3794  : DeviceModel(model_block, configuration.getModelParameters(), factory_block),
3795  Mode(1),
3796  Noise(1),
3797  Debug(0),
3798  DebugPlus(0),
3799  Rth(0.1),
3800  Cth(700*1.0e-9),
3801  Jsf(20e-24),
3802  nf(1.0),
3803  Vg(1.3),
3804  Jse(0.0),
3805  ne(0.0),
3806  Rbxx(1e6),
3807  Vgb(0.0),
3808  Jsee(0.0),
3809  nee(0.0),
3810  Rbbxx(1e6),
3811  Vgbb(0.0),
3812  Jsr(20e-18),
3813  nr(1.0),
3814  Vgr(0.0),
3815  XCjc(0.5),
3816  Jsc(0.0),
3817  nc(0.0),
3818  Rcxx(1e6),
3819  Vgc(0.0),
3820  Bf(100.0),
3821  kBeta(0.0),
3822  Br(1.0),
3823  VAF(0.0),
3824  VAR(0.0),
3825  IKF(0.0),
3826  IKR(0.0),
3827  Mc(0.0),
3828  BVceo(0.0),
3829  kc(0.0),
3830  BVebo(0.0),
3831  Tr(1*1.0e-15),
3832  Trx(1*1.0e-15),
3833  Tf(1*1.0e-12),
3834  Tft(0.0),
3835  Thcs(0.0),
3836  Ahc(0.0),
3837  Cje(1*1.0e-15),
3838  mje(0.5),
3839  Vje(1.3),
3840  Cjc(1*1.0e-15),
3841  mjc(0.5),
3842  Vjc(1.3),
3843  kjc(1.0),
3844  Cmin(0.1*1.0e-15),
3845  J0(1e-3),
3846  XJ0(1.0),
3847  Rci0(1e-3),
3848  Jk(4e-4),
3849  RJk(1e-3),
3850  Vces(1e-3),
3851  Rc(1.0),
3852  Re(1.0),
3853  Rb(1.0),
3854  Rb2(1.0),
3855  Lc(0.0),
3856  Le(0.0),
3857  Lb(0.0),
3858  Cq(0.0),
3859  Cpb(0.0),
3860  Cpc(0.0),
3861  Tnom(20.0),
3862  dtype(1)
3863 {
3864  // Set params to constant default values (from parTable):
3865  setDefaultParams();
3866 
3867  // Set params according to .model line and constant defaults from metadata:
3868  setModParams(model_block.params);
3869 
3870  // Set any non-constant parameter defaults:
3871  // Set any parameters that were not given and whose defaults depend on other
3872  // parameters:
3873 
3874 
3875  if (!given("XYCEADMSMODTEMP"))
3876  admsModTemp=getDeviceOptions().temp.getImmutableValue<double>();
3877 
3878  // Fix the TNOM parameter that has "helpfully" been converted to Kelvin
3879  // by the DeviceEntity class
3880 
3881  if (given("TNOM"))
3882  Tnom -= CONSTCtoK;
3883 
3884  // Calculate any parameters specified as expressions:
3885 
3887 
3888  // calculate dependent (ie computed) params and check for errors:
3889 
3890  // Manually inserted these two lines:
3891  if (getType() == "pnp" || getType() == "PNP")
3892  dtype = -1;
3893 
3894  processParams ();
3895 }
3896 
3897 //-----------------------------------------------------------------------------
3898 // Function : Model::~Model
3899 // Purpose : destructor
3900 // Special Notes :
3901 // Scope : public
3902 // Creator :
3903 // Creation Date :
3904 //-----------------------------------------------------------------------------
3906 {
3907  std::vector<Instance*>::iterator iterI;
3908  std::vector<Instance*>::iterator firstI = instanceContainer.begin ();
3909  std::vector<Instance*>::iterator lastI = instanceContainer.end ();
3910 
3911  // loop over instances:
3912  for (iterI = firstI; iterI != lastI; ++iterI)
3913  {
3914  delete (*iterI);
3915  }
3916 }
3917 
3918 //-----------------------------------------------------------------------------
3919 // Function : Model::printOutInstances
3920 // Purpose : debugging tool.
3921 // Special Notes :
3922 // Scope : public
3923 // Creator :
3924 // Creation Date :
3925 //-----------------------------------------------------------------------------
3926 std::ostream &Model::printOutInstances(std::ostream &os) const
3927 {
3928  std::vector<Instance*>::const_iterator iter;
3929  std::vector<Instance*>::const_iterator first = instanceContainer.begin();
3930  std::vector<Instance*>::const_iterator last = instanceContainer.end();
3931 
3932  int i;
3933  os << std::endl;
3934  os << " name model name Parameters" << std::endl;
3935  for (i=0, iter=first; iter!=last; ++iter, ++i)
3936  {
3937  os << " " << i << ": " << (*iter)->getName() << " ";
3938  os << getName();
3939 
3940  os << std::endl;
3941  os << "TEMP = " << (*iter)->Temp << std::endl;
3942  os << "N = " << (*iter)->N << std::endl;
3943  os << "L = " << (*iter)->L << std::endl;
3944  os << "W = " << (*iter)->W << std::endl;
3945  os << std::endl;
3946  }
3947 
3948  os << std::endl;
3949 
3950  return os;
3951 }
3952 
3953 //-----------------------------------------------------------------------------
3954 // Function : Model::forEachInstance
3955 // Purpose :
3956 // Special Notes :
3957 // Scope : public
3958 // Creator : David Baur
3959 // Creation Date : 2/4/2014
3960 //-----------------------------------------------------------------------------
3961 /// Apply a device instance "op" to all instances associated with this
3962 /// model
3963 ///
3964 /// @param[in] op Operator to apply to all instances.
3965 ///
3966 ///
3967 void Model::forEachInstance(DeviceInstanceOp &op) const /* override */
3968 {
3969  for (std::vector<Instance *>::const_iterator it = instanceContainer.begin(); it != instanceContainer.end(); ++it)
3970  op(*it);
3971 }
3972 
3973 Device *Traits::factory(const Configuration &configuration, const FactoryBlock &factory_block)
3974 {
3975  return new DeviceMaster<Traits>(configuration, factory_block, factory_block.solverState_, factory_block.deviceOptions_);
3976 }
3977 
3979 {
3981  .registerDevice("q", 23)
3982  .registerModelType("npn", 23)
3983  .registerModelType("pnp", 23);
3984 }
3985 
3986 
3987 
3988 } // namespace ADMSHBT_X
3989 } // namespace Device
3990 } // namespace Xyce