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 : Thu, 06 Mar 2014 15:57:34
38 //
39 // Revision Information:
40 // ---------------------
41 //
42 // Revision Number: $Revision: 1.48.2.3 $
43 //
44 // Revision Date : $Date: 2014/03/06 23:33:42 $
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 
700  if (intNameMap.empty())
701  {
702  std::string tmpstr;
703 
704  tmpstr = getName() + "_ei";
705  spiceInternalName(tmpstr);
706  intNameMap[li_ei] = tmpstr;
707 
708  tmpstr = getName() + "_bi";
709  spiceInternalName(tmpstr);
710  intNameMap[li_bi] = tmpstr;
711 
712  tmpstr = getName() + "_bii";
713  spiceInternalName(tmpstr);
714  intNameMap[li_bii] = tmpstr;
715 
716  tmpstr = getName() + "_ci";
717  spiceInternalName(tmpstr);
718  intNameMap[li_ci] = tmpstr;
719 
720  tmpstr = getName() + "_ti";
721  spiceInternalName(tmpstr);
722  intNameMap[li_ti] = tmpstr;
723 
724  tmpstr = getName() + "_ex";
725  spiceInternalName(tmpstr);
726  intNameMap[li_ex] = tmpstr;
727 
728  tmpstr = getName() + "_exx";
729  spiceInternalName(tmpstr);
730  intNameMap[li_exx] = tmpstr;
731 
732  tmpstr = getName() + "_cx";
733  spiceInternalName(tmpstr);
734  intNameMap[li_cx] = tmpstr;
735 
736  tmpstr = getName() + "_b_bi_branch";
737  spiceInternalName(tmpstr);
738  intNameMap[li_BRA_b_bi] = tmpstr;
739  tmpstr = getName() + "_e_ei_branch";
740  spiceInternalName(tmpstr);
741  intNameMap[li_BRA_e_ei] = tmpstr;
742  tmpstr = getName() + "_c_ci_branch";
743  spiceInternalName(tmpstr);
744  intNameMap[li_BRA_c_ci] = tmpstr;
745  }
746  return intNameMap;
747 }
748 
749 //-----------------------------------------------------------------------------
750 // Function : Instance::registerStateLIDs
751 // Purpose :
752 // Special Notes :
753 // Scope : public
754 // Creator : admsXml
755 // Creation Date :
756 //-----------------------------------------------------------------------------
757 void Instance::registerStateLIDs( const std::vector<int> & staLIDVecRef)
758 {
759  AssertLIDs(staLIDVecRef.size() == numStateVars);
760 
761  int numSta = staLIDVecRef.size();
762  if (numSta > 0)
763  {
764  int i=0;
765  staLIDVec = staLIDVecRef;
766 
770  }
771 }
772 
773 //-----------------------------------------------------------------------------
774 // Function : Instance::jacobianStamp
775 // Purpose :
776 // Special Notes : In initial version, we won't support mapping away nodes
777 // Scope : public
778 // Creator : admsXml
779 // Creation Date :
780 //-----------------------------------------------------------------------------
781 const std::vector< std::vector<int> > & Instance::jacobianStamp() const
782 {
783  return jacStamp;
784 }
785 
786 //-----------------------------------------------------------------------------
787 // Function : Instance::registerJacLIDs
788 // Purpose : Create Offset variables used for referencing jacobian
789 // elements
790 // Special Notes :
791 // Scope : public
792 // Creator : admsXml
793 // Creation Date :
794 //-----------------------------------------------------------------------------
795 void Instance::registerJacLIDs( const std::vector< std::vector<int> > & jacLIDVec)
796 {
798  std::vector<int> & map=jacMap;
799  std::vector< std::vector<int> > & map2=jacMap2;
800 
801 
802  // do nothing, we won't use the jac lids anymore, we'll use pointers
803 
804 }
805 
806 //-----------------------------------------------------------------------------
807 // Function : Instance::setupPointers
808 // Purpose : Create pointer variables used for referencing jacobian
809 // elements
810 // Special Notes :
811 // Scope : public
812 // Creator : admsXml
813 // Creation Date :
814 //-----------------------------------------------------------------------------
816 {
817 
818  N_LAS_Matrix * dFdxMatPtr = extData.dFdxMatrixPtr;
819  N_LAS_Matrix * dQdxMatPtr = extData.dQdxMatrixPtr;
820  f_c_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_c);
821  q_c_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_c);
822  f_c_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_b);
823  q_c_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_b);
824  f_c_Equ_BRA_c_ci_Var_Ptr = dFdxMatPtr->returnRawEntryPointer(li_c,li_BRA_c_ci);
825  q_c_Equ_BRA_c_ci_Var_Ptr = dQdxMatPtr->returnRawEntryPointer(li_c,li_BRA_c_ci);
826  f_b_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_b);
827  q_b_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_b);
828  f_b_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_c);
829  q_b_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_c);
830  f_b_Equ_BRA_b_bi_Var_Ptr = dFdxMatPtr->returnRawEntryPointer(li_b,li_BRA_b_bi);
831  q_b_Equ_BRA_b_bi_Var_Ptr = dQdxMatPtr->returnRawEntryPointer(li_b,li_BRA_b_bi);
832  f_e_Equ_BRA_e_ei_Var_Ptr = dFdxMatPtr->returnRawEntryPointer(li_e,li_BRA_e_ei);
833  q_e_Equ_BRA_e_ei_Var_Ptr = dQdxMatPtr->returnRawEntryPointer(li_e,li_BRA_e_ei);
834  f_t_Equ_t_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_t,li_t);
835  q_t_Equ_t_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_t,li_t);
836  f_t_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_t,li_ti);
837  q_t_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_t,li_ti);
838  f_ei_Equ_bii_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_bii);
839  q_ei_Equ_bii_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_bii);
840  f_ei_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_ci);
841  q_ei_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_ci);
842  f_ei_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_ti);
843  q_ei_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_ti);
844  f_ei_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_ei);
845  q_ei_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_ei);
846  f_ei_Equ_ex_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_ex);
847  q_ei_Equ_ex_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_ex);
848  f_ei_Equ_exx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_exx);
849  q_ei_Equ_exx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_exx);
850  f_ei_Equ_BRA_e_ei_Var_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ei,li_BRA_e_ei);
851  q_ei_Equ_BRA_e_ei_Var_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ei,li_BRA_e_ei);
852  f_bi_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_ti);
853  q_bi_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_ti);
854  f_bi_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_bi);
855  q_bi_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_bi);
856  f_bi_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_ci);
857  q_bi_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_ci);
858  f_bi_Equ_bii_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_bii);
859  q_bi_Equ_bii_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_bii);
860  f_bi_Equ_BRA_b_bi_Var_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bi,li_BRA_b_bi);
861  q_bi_Equ_BRA_b_bi_Var_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bi,li_BRA_b_bi);
862  f_bii_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bii,li_ti);
863  q_bii_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bii,li_ti);
864  f_bii_Equ_bii_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bii,li_bii);
865  q_bii_Equ_bii_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bii,li_bii);
866  f_bii_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bii,li_ci);
867  q_bii_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bii,li_ci);
868  f_bii_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bii,li_ei);
869  q_bii_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bii,li_ei);
870  f_bii_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bii,li_bi);
871  q_bii_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bii,li_bi);
872  f_bii_Equ_ex_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bii,li_ex);
873  q_bii_Equ_ex_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bii,li_ex);
874  f_bii_Equ_exx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bii,li_exx);
875  q_bii_Equ_exx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bii,li_exx);
876  f_bii_Equ_cx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_bii,li_cx);
877  q_bii_Equ_cx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_bii,li_cx);
878  f_ci_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_ti);
879  q_ci_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_ti);
880  f_ci_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_bi);
881  q_ci_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_bi);
882  f_ci_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_ci);
883  q_ci_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_ci);
884  f_ci_Equ_bii_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_bii);
885  q_ci_Equ_bii_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_bii);
886  f_ci_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_ei);
887  q_ci_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_ei);
888  f_ci_Equ_cx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_cx);
889  q_ci_Equ_cx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_cx);
890  f_ci_Equ_BRA_c_ci_Var_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ci,li_BRA_c_ci);
891  q_ci_Equ_BRA_c_ci_Var_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ci,li_BRA_c_ci);
892  f_ti_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ti,li_bi);
893  q_ti_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ti,li_bi);
894  f_ti_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ti,li_ci);
895  q_ti_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ti,li_ci);
896  f_ti_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ti,li_ei);
897  q_ti_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ti,li_ei);
898  f_ti_Equ_bii_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ti,li_bii);
899  q_ti_Equ_bii_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ti,li_bii);
900  f_ti_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ti,li_ti);
901  q_ti_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ti,li_ti);
902  f_ti_Equ_t_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ti,li_t);
903  q_ti_Equ_t_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ti,li_t);
904  f_ex_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ex,li_ti);
905  q_ex_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ex,li_ti);
906  f_ex_Equ_ex_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ex,li_ex);
907  q_ex_Equ_ex_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ex,li_ex);
908  f_ex_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ex,li_ei);
909  q_ex_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ex,li_ei);
910  f_ex_Equ_bii_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_ex,li_bii);
911  q_ex_Equ_bii_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_ex,li_bii);
912  f_exx_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_exx,li_ti);
913  q_exx_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_exx,li_ti);
914  f_exx_Equ_exx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_exx,li_exx);
915  q_exx_Equ_exx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_exx,li_exx);
916  f_exx_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_exx,li_ei);
917  q_exx_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_exx,li_ei);
918  f_exx_Equ_bii_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_exx,li_bii);
919  q_exx_Equ_bii_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_exx,li_bii);
920  f_cx_Equ_ti_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_cx,li_ti);
921  q_cx_Equ_ti_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_cx,li_ti);
922  f_cx_Equ_cx_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_cx,li_cx);
923  q_cx_Equ_cx_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_cx,li_cx);
924  f_cx_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_cx,li_ci);
925  q_cx_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_cx,li_ci);
926  f_cx_Equ_bii_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_cx,li_bii);
927  q_cx_Equ_bii_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_cx,li_bii);
928  f_BRA_b_bi_Equ_b_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_BRA_b_bi,li_b);
929  q_BRA_b_bi_Equ_b_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_BRA_b_bi,li_b);
930  f_BRA_b_bi_Equ_bi_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_BRA_b_bi,li_bi);
931  q_BRA_b_bi_Equ_bi_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_BRA_b_bi,li_bi);
932  f_BRA_b_bi_Equ_BRA_b_bi_Var_Ptr=dFdxMatPtr->returnRawEntryPointer(li_BRA_b_bi,li_BRA_b_bi);
933  q_BRA_b_bi_Equ_BRA_b_bi_Var_Ptr=dQdxMatPtr->returnRawEntryPointer(li_BRA_b_bi,li_BRA_b_bi);
934  f_BRA_e_ei_Equ_e_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_BRA_e_ei,li_e);
935  q_BRA_e_ei_Equ_e_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_BRA_e_ei,li_e);
936  f_BRA_e_ei_Equ_ei_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_BRA_e_ei,li_ei);
937  q_BRA_e_ei_Equ_ei_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_BRA_e_ei,li_ei);
938  f_BRA_e_ei_Equ_BRA_e_ei_Var_Ptr=dFdxMatPtr->returnRawEntryPointer(li_BRA_e_ei,li_BRA_e_ei);
939  q_BRA_e_ei_Equ_BRA_e_ei_Var_Ptr=dQdxMatPtr->returnRawEntryPointer(li_BRA_e_ei,li_BRA_e_ei);
940  f_BRA_c_ci_Equ_c_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_BRA_c_ci,li_c);
941  q_BRA_c_ci_Equ_c_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_BRA_c_ci,li_c);
942  f_BRA_c_ci_Equ_ci_Node_Ptr = dFdxMatPtr->returnRawEntryPointer(li_BRA_c_ci,li_ci);
943  q_BRA_c_ci_Equ_ci_Node_Ptr = dQdxMatPtr->returnRawEntryPointer(li_BRA_c_ci,li_ci);
944  f_BRA_c_ci_Equ_BRA_c_ci_Var_Ptr=dFdxMatPtr->returnRawEntryPointer(li_BRA_c_ci,li_BRA_c_ci);
945  q_BRA_c_ci_Equ_BRA_c_ci_Var_Ptr=dQdxMatPtr->returnRawEntryPointer(li_BRA_c_ci,li_BRA_c_ci);
946 
947 
948 }
949 
950 // RHS load functions
951 
952 //-----------------------------------------------------------------------------
953 // Function : Instance::loadDAEFVector
954 // Purpose : load F vector (static contributions) for one instance for
955 // NEW DAE formulation
956 // Special Notes :
957 // Scope : public
958 // Creator : admsXml
959 // Creation Date :
960 //-----------------------------------------------------------------------------
962 {
963 
964  bool bsuccess=true;
965 
982  {
983  double *dFdxdVp = extData.dFdxdVpVectorRawPtr;
984  dFdxdVp[li_c] += Jdxp_static[admsNodeID_c];
985  dFdxdVp[li_b] += Jdxp_static[admsNodeID_b];
986  dFdxdVp[li_e] += Jdxp_static[admsNodeID_e];
987  dFdxdVp[li_t] += Jdxp_static[admsNodeID_t];
988  dFdxdVp[li_ei] += Jdxp_static[admsNodeID_ei];
989  dFdxdVp[li_bi] += Jdxp_static[admsNodeID_bi];
990  dFdxdVp[li_bii] += Jdxp_static[admsNodeID_bii];
991  dFdxdVp[li_ci] += Jdxp_static[admsNodeID_ci];
992  dFdxdVp[li_ti] += Jdxp_static[admsNodeID_ti];
993  dFdxdVp[li_ex] += Jdxp_static[admsNodeID_ex];
994  dFdxdVp[li_exx] += Jdxp_static[admsNodeID_exx];
995  dFdxdVp[li_cx] += Jdxp_static[admsNodeID_cx];
999 
1000  }
1001 
1002  return bsuccess;
1003 }
1004 
1005 //-----------------------------------------------------------------------------
1006 // Function : Instance::loadDAEQVector
1007 // Purpose : load Q vector (dynamic contributions) for one instance for
1008 // NEW DAE formulation
1009 // Special Notes :
1010 // Scope : public
1011 // Creator : admsXml
1012 // Creation Date :
1013 //-----------------------------------------------------------------------------
1015 {
1032  {
1033  double *dQdxdVp = extData.dQdxdVpVectorRawPtr;
1034  dQdxdVp[li_c] += Jdxp_dynamic[admsNodeID_c];
1035  dQdxdVp[li_b] += Jdxp_dynamic[admsNodeID_b];
1036  dQdxdVp[li_e] += Jdxp_dynamic[admsNodeID_e];
1037  dQdxdVp[li_t] += Jdxp_dynamic[admsNodeID_t];
1038  dQdxdVp[li_ei] += Jdxp_dynamic[admsNodeID_ei];
1039  dQdxdVp[li_bi] += Jdxp_dynamic[admsNodeID_bi];
1040  dQdxdVp[li_bii] += Jdxp_dynamic[admsNodeID_bii];
1041  dQdxdVp[li_ci] += Jdxp_dynamic[admsNodeID_ci];
1042  dQdxdVp[li_ti] += Jdxp_dynamic[admsNodeID_ti];
1043  dQdxdVp[li_ex] += Jdxp_dynamic[admsNodeID_ex];
1044  dQdxdVp[li_exx] += Jdxp_dynamic[admsNodeID_exx];
1045  dQdxdVp[li_cx] += Jdxp_dynamic[admsNodeID_cx];
1049  }
1050 
1051  return true;
1052 }
1053 
1054 
1055 //-----------------------------------------------------------------------------
1056 // Function : Instance::updatePrimaryState
1057 // Purpose :
1058 // Special Notes : In this initial implementation, does little more than
1059 // call updateIntermediateVars()
1060 // Scope : public
1061 // Creator : admsXml
1062 // Creation Date :
1063 //-----------------------------------------------------------------------------
1065 {
1066  bool bsuccess = true;
1067 
1068  bsuccess = updateIntermediateVars();
1069 
1070  // if old DAE were implemented, we'd save dynamic contributions as state
1071  // here.
1072 
1073  double * staVec = extData.nextStaVectorRawPtr;
1074  // Also need to save limited voltage drops
1075  // This formulation assumes that we have *always* written the
1076  // limited voltages back into the probeVars[] array.
1077 
1081 
1082  return bsuccess;
1083 }
1084 
1085 //-----------------------------------------------------------------------------
1086 // Function : Instance::updateSecondaryState
1087 // Purpose :
1088 // Special Notes : In this initial implementation, does nothing
1089 // Scope : public
1090 // Creator : admsXml
1091 // Creation Date :
1092 //-----------------------------------------------------------------------------
1094 {
1095  bool bsuccess = true;
1096 
1097  // were old DAE implemented, we'd pull dynamic contribution derivatives
1098  // out of state.
1099 
1100  return bsuccess;
1101 }
1102 
1103 //-----------------------------------------------------------------------------
1104 // Function : Instance::updateIntermediateVars
1105 // Purpose : update intermediate variables for one HBT_X instance
1106 // Special Notes :
1107 // Scope : public
1108 // Creator : admsXml
1109 // Creation Date :
1110 //-----------------------------------------------------------------------------
1112 {
1113 
1114  bool bsuccess=true;
1115  N_LAS_Vector * solVectorPtr = extData.nextSolVectorPtr;
1116 
1117 #ifdef Xyce_DEBUG_DEVICE
1118  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
1119  {
1120  Xyce::dout() << std::endl << subsection_divider << std::endl;
1121  Xyce::dout() << " In ADMSHBT_X::Instance::updateIntermediateVars\n\n";
1122  Xyce::dout() << " name = " << getName() << std::endl;
1123  }
1124 #endif
1125 
1126  // Local variables
1127  AdmsFadType qbe;
1128  AdmsFadType qbtf;
1129  AdmsFadType xtff;
1130  AdmsFadType Wh;
1131  AdmsFadType Ih;
1132  double AHC;
1133  double RCIO;
1134  double InvVpt;
1135  double Vlim;
1136  AdmsFadType qb2;
1137  AdmsFadType qbtra;
1138  AdmsFadType qbtr;
1139  AdmsFadType qb1;
1140  AdmsFadType qb2med;
1141  AdmsFadType xix;
1142  double I00;
1143  AdmsFadType Ipdiss;
1144  AdmsFadType Icdx;
1145  AdmsFadType Ibdxx;
1146  AdmsFadType Ibdx;
1147  AdmsFadType Ib1;
1148  AdmsFadType Ib0;
1149  AdmsFadType EdBeta;
1150  AdmsFadType mm;
1151  double Vbclin;
1152  double epsi;
1153  AdmsFadType Ibx;
1154  AdmsFadType Ib2;
1155  AdmsFadType Ic1;
1156  AdmsFadType Ic1r;
1157  AdmsFadType Ic0;
1158  AdmsFadType qb;
1159  AdmsFadType q2;
1160  AdmsFadType q1;
1161  AdmsFadType Ic1ra;
1162  AdmsFadType Ic0a;
1163  double TWO_Q;
1164  double FOUR_K;
1165  double Area;
1166  AdmsFadType Tex;
1167  AdmsFadType TjK;
1168  AdmsFadType Tj;
1169  AdmsFadType Texi;
1170  AdmsFadType vcei;
1171  AdmsFadType vxxe;
1172  AdmsFadType vxc;
1173  AdmsFadType vxe;
1174  AdmsFadType vbei;
1175  AdmsFadType vbci;
1176  AdmsFadType vbcx;
1177  double tVCrit;
1178  // temporary variables for limiting
1179  double vbei_orig,vbei_limited,vbei_old;
1180  double vbci_orig,vbci_limited,vbci_old;
1181  double vbcx_orig,vbcx_limited,vbcx_old;
1182 
1183 
1184  // set the sizes of the Fad arrays:
1185 
1186  if (probeVars.size() != (19))
1187  {
1188  probeVars.resize(19);
1189  staticContributions.resize(12+3);
1190  dynamicContributions.resize(12+3);
1191  probeDiffs.resize(19,0.0);
1192  Jdxp_static.resize(12+3);
1193  Jdxp_dynamic.resize(12+3);
1194  }
1195 
1196  // initialize contributions to zero (automatically sets derivatives to zero)
1197  for (int i=0; i < 12+3 ; ++i)
1198  {
1199  staticContributions[i]=0;
1200  dynamicContributions[i]=0;
1201  Jdxp_static[i]=0;
1202  Jdxp_dynamic[i]=0;
1203  }
1204 
1205  for (int i=0; i < 19 ; ++i)
1206  {
1207  probeDiffs[i] = 0.0;
1208  }
1209  // extract solution variables and set as Fad independent variables.
1210  probeVars[admsProbeID_V_t_ti] = (*solVectorPtr)[li_t] - (*solVectorPtr)[li_ti];
1212 
1213  probeVars[admsProbeID_V_b_c] = (*solVectorPtr)[li_b] - (*solVectorPtr)[li_c];
1215 
1216  probeVars[admsProbeID_V_c_GND] = (*solVectorPtr)[li_c];
1218 
1219  probeVars[admsProbeID_V_b_GND] = (*solVectorPtr)[li_b];
1221 
1222  probeVars[admsProbeID_V_cx_bii] = (*solVectorPtr)[li_cx] - (*solVectorPtr)[li_bii];
1224 
1225  probeVars[admsProbeID_V_exx_bii] = (*solVectorPtr)[li_exx] - (*solVectorPtr)[li_bii];
1227 
1228  probeVars[admsProbeID_V_ex_bii] = (*solVectorPtr)[li_ex] - (*solVectorPtr)[li_bii];
1230 
1231  probeVars[admsProbeID_V_bii_bi] = (*solVectorPtr)[li_bii] - (*solVectorPtr)[li_bi];
1233 
1234  probeVars[admsProbeID_I_c_ci] = (*solVectorPtr)[li_BRA_c_ci];
1236 
1237  probeVars[admsProbeID_I_e_ei] = (*solVectorPtr)[li_BRA_e_ei];
1239 
1240  probeVars[admsProbeID_I_b_bi] = (*solVectorPtr)[li_BRA_b_bi];
1242 
1243  probeVars[admsProbeID_V_ti_GND] = (*solVectorPtr)[li_ti];
1245 
1246  probeVars[admsProbeID_V_ci_ei] = (*solVectorPtr)[li_ci] - (*solVectorPtr)[li_ei];
1248 
1249  probeVars[admsProbeID_V_exx_ei] = (*solVectorPtr)[li_exx] - (*solVectorPtr)[li_ei];
1251 
1252  probeVars[admsProbeID_V_cx_ci] = (*solVectorPtr)[li_cx] - (*solVectorPtr)[li_ci];
1254 
1255  probeVars[admsProbeID_V_ex_ei] = (*solVectorPtr)[li_ex] - (*solVectorPtr)[li_ei];
1257 
1258  probeVars[admsProbeID_V_bii_ei] = (*solVectorPtr)[li_bii] - (*solVectorPtr)[li_ei];
1260 
1261  probeVars[admsProbeID_V_bii_ci] = (*solVectorPtr)[li_bii] - (*solVectorPtr)[li_ci];
1263 
1264  probeVars[admsProbeID_V_bi_ci] = (*solVectorPtr)[li_bi] - (*solVectorPtr)[li_ci];
1266 
1267 
1268  // pre-multiply any "typed" probes (i.e. those limited with "typedpnjlim")
1272 
1273  // Copy probes into limiting vars
1274  vbei_orig = vbei_limited = probeVars[admsProbeID_V_bii_ei].val();
1276  vbci_orig = vbci_limited = probeVars[admsProbeID_V_bii_ci].val();
1278  vbcx_orig = vbcx_limited = probeVars[admsProbeID_V_bi_ci].val();
1280 
1281  origFlag = true;
1282 
1283  //Manually moved from below
1284  tVCrit = (adms_vt_nom*log((adms_vt_nom/(1.41421356237309504880*(((((model_.Jsf)*L)*W)*N)*1e12)))));
1285  if (getSolverState().newtonIter == 0)
1286  {
1287 
1289  {
1290  // manually inserted code:
1292  {
1293  N_LAS_Vector * flagSolVectorPtr = (extData.flagSolVectorPtr);
1294  if ((*flagSolVectorPtr)[li_e] == 0 ||
1295  (*flagSolVectorPtr)[li_ei] == 0 ||
1296  (*flagSolVectorPtr)[li_ex] == 0 ||
1297  (*flagSolVectorPtr)[li_exx] == 0 ||
1298  (*flagSolVectorPtr)[li_b] == 0 ||
1299  (*flagSolVectorPtr)[li_bi] == 0 ||
1300  (*flagSolVectorPtr)[li_bii] == 0 ||
1301  (*flagSolVectorPtr)[li_c] == 0 ||
1302  (*flagSolVectorPtr)[li_ci] == 0 ||
1303  (*flagSolVectorPtr)[li_cx] == 0 ||
1304  (*flagSolVectorPtr)[li_t] == 0 ||
1305  (*flagSolVectorPtr)[li_ti] == 0 )
1306  {
1307  vbcx_limited = vbci_limited = 0;
1308  vbei_limited = tVCrit;
1309  origFlag = false;
1310  }
1311  }
1312  else
1313  {
1314  vbcx_limited = vbci_limited = 0;
1315  vbei_limited = tVCrit;
1316  origFlag = false;
1317 #ifdef Xyce_DEBUG_DEVICE
1319  {
1320  Xyce::dout() << " Setting device initial condition to Base-Emitter drop=tVCri (" << tVCrit << ")" << std::endl;
1321  }
1322 #endif
1323  }
1324  }
1325  // end manually inserted code
1326 
1327  if (!(getSolverState().dcopFlag)||(getSolverState().locaEnabledFlag && getSolverState().dcopFlag))
1328  {
1332  }
1333  else
1334  {
1335  vbei_old = vbei_limited;
1336  vbci_old = vbci_limited;
1337  vbcx_old = vbcx_limited;
1338  }
1339  }
1340  else
1341  {
1345  }
1346 
1347  // -- code converted from analog/code block
1348  // Manually moved to above
1349  //tVCrit = (adms_vt_nom*log((adms_vt_nom/(1.41421356237309504880*(((((model_.Jsf)*L)*W)*N)*1e12)))));
1350 
1351 
1352  //vbcx = ($limit(V(bi,ci),"typedpnjlim",$vt(),tVCrit,dtype));
1354  {
1355  int icheck=0;
1356  vbcx_limited = devSupport.pnjlim(vbcx_limited,vbcx_old,adms_vt_nom,tVCrit,&icheck);
1357  if (icheck == 1)
1358  origFlag = false;
1359  if (!origFlag)
1360  {
1361  probeDiffs[admsProbeID_V_bi_ci] = vbcx_limited - vbcx_orig;
1363  }
1364  }
1366 
1367 
1368 
1369  //vbci = ($limit(V(bii,ci),"typedpnjlim",$vt(),tVCrit,dtype));
1370  if (getDeviceOptions().voltageLimiterFlag)
1371  {
1372  int icheck=0;
1373  vbci_limited = devSupport.pnjlim(vbci_limited,vbci_old,adms_vt_nom,tVCrit,&icheck);
1374  if (icheck == 1)
1375  origFlag = false;
1376  if (!origFlag)
1377  {
1378  probeDiffs[admsProbeID_V_bii_ci] = vbci_limited - vbci_orig;
1380  }
1381  }
1383 
1384 
1385 
1386  //vbei = ($limit(V(bii,ei),"typedpnjlim",$vt(),tVCrit,dtype));
1387  if (getDeviceOptions().voltageLimiterFlag)
1388  {
1389  int icheck=0;
1390  vbei_limited = devSupport.pnjlim(vbei_limited,vbei_old,adms_vt_nom,tVCrit,&icheck);
1391  if (icheck == 1)
1392  origFlag = false;
1393  if (!origFlag)
1394  {
1395  probeDiffs[admsProbeID_V_bii_ei] = vbei_limited - vbei_orig;
1397  }
1398  }
1400 
1404  vcei = ((model_.dtype)*(probeVars[admsProbeID_V_ci_ei]));
1405  Texi = (probeVars[admsProbeID_V_ti_GND]);
1406  Tj = (Texi+Temp);
1407  TjK = (Tj+273.15);
1408  Tex = (Tj-(model_.Tnom));
1409  Area = (((L*W)*1.0e12)*N);
1410  FOUR_K = (4*1.3806226e-23);
1411  TWO_Q = (2*1.6021918e-19);
1412  Ic0a = model_.analogFunctions.diode<AdmsFadType>(vbei,(model_.Jsf),(model_.Vg),(model_.nf),Area,Tj,(model_.Tnom));
1413  Ic1ra = model_.analogFunctions.diode<AdmsFadType>(vbci,((model_.XCjc)*(model_.Jsr)),(model_.Vgr),(model_.nr),Area,Tj,(model_.Tnom));
1414  if ((((model_.VAF)>0.0)&&((model_.VAR)>0.0)))
1415  {
1416  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)));
1417  }
1418  else
1419  {
1420  if ((((model_.VAF)>0.0)&&((model_.VAR)==0.0)))
1421  {
1423  }
1424  else
1425  {
1426  if ((((model_.VAF)==0.0)&&((model_.VAR)>0.0)))
1427  {
1429  }
1430  else
1431  {
1432  q1 = 1.0;
1433  }
1434  }
1435  }
1436  if ((((model_.IKF)>0.0)&&((model_.IKR)>0.0)))
1437  {
1438  q2 = ((Ic0a/(Area*(model_.IKF)))+(Ic1ra/(Area*(model_.IKR))));
1439  }
1440  else
1441  {
1442  if ((((model_.IKF)>0.0)&&((model_.IKR)==0.0)))
1443  {
1444  q2 = (Ic0a/(Area*(model_.IKF)));
1445  }
1446  else
1447  {
1448  if ((((model_.IKF)==0.0)&&((model_.IKR)>0.0)))
1449  {
1450  q2 = (Ic1ra/(Area*(model_.IKR)));
1451  }
1452  else
1453  {
1454  q2 = 0.0;
1455  }
1456  }
1457  }
1458  qb = ((q1+sqrt(((q1*q1)+(4.0*q2))))/2.0);
1459  Ic0 = (Ic0a/qb);
1460  Ic1r = (Ic1ra/qb);
1461  Ic1 = (Ic0-Ic1r);
1462  Ib2 = (model_.analogFunctions.diode<AdmsFadType>(vbci,((model_.XCjc)*(model_.Jsr)),(model_.Vgr),(model_.nr),Area,Tj,(model_.Tnom))/(model_.Br));
1463  Ibx = (model_.analogFunctions.diode<AdmsFadType>(vbcx,((1.0-(model_.XCjc))*(model_.Jsr)),(model_.Vgr),(model_.nr),Area,Tj,(model_.Tnom))/(model_.Br));
1464  epsi = 1.0e-6;
1465  Vbclin = ((model_.BVceo)*pow((1.0-epsi),(1/(model_.Mc))));
1466  mm = model_.analogFunctions.MM<AdmsFadType>(vbci,(model_.BVceo),(model_.Mc),Vbclin,(model_.Bf),(model_.kc));
1467  if ((mm>1.0))
1468  {
1469  if (((model_.kBeta)>0.0))
1470  {
1471  if ((((model_.Bf)-((model_.kBeta)*Tex))>1e-6))
1472  {
1473  EdBeta = (((1/((model_.Bf)-((model_.kBeta)*Tex)))-((model_.kc)*(mm-1)))/(((model_.kc)*(mm-1))+1));
1474  }
1475  else
1476  {
1477  EdBeta = ((1e6-((model_.kc)*(mm-1)))/(((model_.kc)*(mm-1))+1));
1478  }
1479  }
1480  else
1481  {
1482  EdBeta = (((1/(model_.Bf))-((model_.kc)*(mm-1)))/(((model_.kc)*(mm-1))+1));
1483  }
1484  }
1485  else
1486  {
1487  if (((model_.kBeta)>0.0))
1488  {
1489  if ((((model_.Bf)-((model_.kBeta)*Tex))>1e-6))
1490  {
1491  EdBeta = (1/((model_.Bf)-((model_.kBeta)*Tex)));
1492  }
1493  else
1494  {
1495  EdBeta = 1e6;
1496  }
1497  }
1498  else
1499  {
1500  EdBeta = (1/(model_.Bf));
1501  }
1502  }
1503  Ib0 = (Ic0a*EdBeta);
1504  if (((model_.BVebo)>0))
1505  {
1506  Ib1 = (Ib0-model_.analogFunctions.diode<AdmsFadType>(((-(model_.BVebo))-vbei),(model_.Jsf),0.0,1.0,Area,0.0,0.0));
1507  }
1508  else
1509  {
1510  Ib1 = Ib0;
1511  }
1512  if ((((model_.Jse)>0.0)&&((model_.ne)>0)))
1513  {
1514  Ibdx = model_.analogFunctions.diode<AdmsFadType>(vxe,(model_.Jse),(model_.Vgb),(model_.ne),Area,Tj,(model_.Tnom));
1515  }
1516  else
1517  {
1518  Ibdx = (vxe*1e-12);
1519  }
1520  if ((((model_.Jsee)>0.0)&&((model_.nee)>0)))
1521  {
1522  Ibdxx = model_.analogFunctions.diode<AdmsFadType>(vxxe,(model_.Jsee),(model_.Vgbb),(model_.nee),Area,Tj,(model_.Tnom));
1523  }
1524  else
1525  {
1526  Ibdxx = (vxxe*1e-12);
1527  }
1528  if ((((model_.Jsc)>0.0)&&((model_.nc)>0)))
1529  {
1530  Icdx = model_.analogFunctions.diode<AdmsFadType>(vxc,(model_.Jsc),(model_.Vgc),(model_.nc),Area,Tj,(model_.Tnom));
1531  }
1532  else
1533  {
1534  Icdx = (vxc*1e-12);
1535  }
1536  Ipdiss = ((((Ic1*vcei)+(Ib1*vbei))+(Ib2*vbci))+(Ibx*vbcx));
1537  if ((Ipdiss<0.0))
1538  {
1539  Ipdiss = 0;
1540  }
1541  I00 = ((model_.J0)*Area);
1542  if ((((model_.XCjc)<1.0)&&((model_.XCjc)>0.0)))
1543  {
1544  if ((((model_.J0)<=0.0)||(Ic0<0.0)))
1545  {
1546  qb2med = (((model_.XCjc)*model_.analogFunctions.charge<AdmsFadType>(vbci,((model_.Cjc)-(model_.Cmin)),(model_.Vjc),(model_.mjc),Area))+((((model_.XCjc)*Area)*(model_.Cmin))*vbci));
1547  }
1548  else
1549  {
1550  xix = (Ic0/I00);
1551  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));
1552  }
1553  }
1554  else
1555  {
1556  if ((((model_.J0)<0.0)||(Ic0<0.0)))
1557  {
1558  qb2med = (model_.analogFunctions.charge<AdmsFadType>(vbci,((model_.Cjc)-(model_.Cmin)),(model_.Vjc),(model_.mjc),Area)+((Area*(model_.Cmin))*vbci));
1559  }
1560  else
1561  {
1562  xix = (Ic0/I00);
1563  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));
1564  }
1565  }
1566  if ((((model_.XCjc)<1.0)&&((model_.XCjc)>0.0)))
1567  {
1568  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));
1569  }
1570  else
1571  {
1572  qb1 = 0.0;
1573  }
1574  qbtr = ((model_.Tr)*Ic1r);
1575  qbtra = ((model_.Trx)*Ibx);
1576  qb2 = (qb2med+qbtr);
1577  if ((((model_.Jk)>0.0)&&((model_.Rci0)>0.0)))
1578  {
1579  if (((model_.RJk)>0.0))
1580  {
1581  Vlim = (((model_.Jk)*(model_.Rci0))/(1.0-((model_.Rci0)/(model_.RJk))));
1582  InvVpt = ((1.0-((model_.Rci0)/(model_.RJk)))/((model_.Jk)*(model_.RJk)));
1583  }
1584  else
1585  {
1586  Vlim = (((model_.Jk)*(model_.Rci0))/1.016);
1587  InvVpt = 0.0;
1588  }
1589  }
1590  if ((((((model_.Thcs)>0.0)&&((model_.Ahc)>0.0))&&((model_.Jk)>0.0))&&(Ic0>0.0)))
1591  {
1592  RCIO = ((model_.Rci0)/Area);
1593  AHC = (Area*(model_.Ahc));
1594  if ((((model_.Rci0)<(model_.RJk))||((model_.RJk)<=0.0)))
1595  {
1596  Ih = (1.0-(model_.analogFunctions.ICK<AdmsFadType>(vcei,RCIO,Vlim,InvVpt,(model_.Vces))/Ic0));
1597  }
1598  else
1599  {
1600  Ih = (1.0-(model_.analogFunctions.Vceff<AdmsFadType>(vcei,(model_.Vces))/(RCIO*Ic0)));
1601  }
1602  Wh = ((Ih+sqrt(((Ih*Ih)+AHC)))/(1.0+sqrt((1.0+AHC))));
1603  xtff = (((model_.Thcs)*Ic0)*(Wh*Wh));
1604  }
1605  else
1606  {
1607  xtff = 0;
1608  }
1609  qbtf = (((model_.Tf)+((model_.Tft)*Tex))*Ic0);
1610  qbe = ((xtff+qbtf)+model_.analogFunctions.charge<AdmsFadType>(vbei,(model_.Cje),(model_.Vje),(model_.mje),Area));
1611  // I(bi,ci) <+ ((dtype*Ibx))
1612  {
1613  AdmsFadType contribTemp;
1614  contribTemp= ((model_.dtype)*Ibx);
1615  staticContributions[admsNodeID_bi] += contribTemp;
1616  staticContributions[admsNodeID_ci] -= contribTemp;
1617 
1620  }
1621  // I(bi,ci) <+ ((dtype*ddt((qb1+qbtra))))
1622  {
1623  AdmsFadType contribTemp;
1624  contribTemp= ((model_.dtype)*((qb1+qbtra)));
1625  dynamicContributions[admsNodeID_bi] += contribTemp;
1626  dynamicContributions[admsNodeID_ci] -= contribTemp;
1627 
1630  }
1631  // I(bii,ci) <+ ((dtype*Ib2))
1632  {
1633  AdmsFadType contribTemp;
1634  contribTemp= ((model_.dtype)*Ib2);
1635  staticContributions[admsNodeID_bii] += contribTemp;
1636  staticContributions[admsNodeID_ci] -= contribTemp;
1637 
1640  }
1641  // I(bii,ci) <+ ((dtype*ddt(qb2)))
1642  {
1643  AdmsFadType contribTemp;
1644  contribTemp= ((model_.dtype)*(qb2));
1645  dynamicContributions[admsNodeID_bii] += contribTemp;
1646  dynamicContributions[admsNodeID_ci] -= contribTemp;
1647 
1650  }
1651  // I(bii,ei) <+ ((dtype*Ib1))
1652  {
1653  AdmsFadType contribTemp;
1654  contribTemp= ((model_.dtype)*Ib1);
1655  staticContributions[admsNodeID_bii] += contribTemp;
1656  staticContributions[admsNodeID_ei] -= contribTemp;
1657 
1660  }
1661  // I(bii,ei) <+ ((dtype*ddt(qbe)))
1662  {
1663  AdmsFadType contribTemp;
1664  contribTemp= ((model_.dtype)*(qbe));
1665  dynamicContributions[admsNodeID_bii] += contribTemp;
1666  dynamicContributions[admsNodeID_ei] -= contribTemp;
1667 
1670  }
1671  // I(ci,ei) <+ ((dtype*Ic1))
1672  {
1673  AdmsFadType contribTemp;
1674  contribTemp= ((model_.dtype)*Ic1);
1675  staticContributions[admsNodeID_ci] += contribTemp;
1676  staticContributions[admsNodeID_ei] -= contribTemp;
1677 
1680  }
1681  // I(ex,ei) <+ ((dtype*Ibdx))
1684  // I(exx,ei) <+ ((dtype*Ibdxx))
1687  // I(cx,ci) <+ ((dtype*Icdx))
1690  // V(b,bi) <+ ((I(b,bi)*(Rb/N)))
1692  // V(b,bi) <+ (ddt((I(b,bi)*Lb)))
1694  // V(e,ei) <+ ((I(e,ei)*(Re/N)))
1696  // V(e,ei) <+ (ddt((I(e,ei)*Le)))
1698  // V(c,ci) <+ ((I(c,ci)*(Rc/N)))
1700  // V(c,ci) <+ (ddt((I(c,ci)*Lc)))
1702  // I(bii,bi) <+ ((V(bii,bi)/(Rb2/N)))
1705  if ((((model_.Jse)>0.0)&&((model_.ne)>0)))
1706  {
1707  // I(ex,bii) <+ ((V(ex,bii)/(Rbxx/N)))
1710  }
1711  else
1712  {
1713  // I(ex,bii) <+ ((V(ex,bii)*1e-12))
1716  }
1717  if ((((model_.Jsee)>0.0)&&((model_.nee)>0)))
1718  {
1719  // I(exx,bii) <+ ((V(exx,bii)/(Rbbxx/N)))
1722  }
1723  else
1724  {
1725  // I(exx,bii) <+ ((V(exx,bii)*1e-12))
1728  }
1729  if ((((model_.Jsc)>0.0)&&((model_.nc)>0)))
1730  {
1731  // I(cx,bii) <+ ((V(cx,bii)/(Rcxx/N)))
1734  }
1735  else
1736  {
1737  // I(cx,bii) <+ ((V(cx,bii)*1e-12))
1740  }
1741  // I(b,GND) <+ (ddt((Cpb*V(b,GND))))
1743  // I(c,GND) <+ (ddt((Cpc*V(c,GND))))
1745  // I(b,c) <+ (ddt((Cq*V(b,c))))
1747  dynamicContributions[admsNodeID_c] -= (((model_.Cq)*(probeVars[admsProbeID_V_b_c])));
1748  // I(ti,GND) <+ ((-Ipdiss))
1749  {
1750  AdmsFadType contribTemp;
1751  contribTemp= (-Ipdiss);
1752  staticContributions[admsNodeID_ti] += contribTemp;
1753 
1755  }
1756  if ((model_.Rth))
1757  {
1758  // I(t,ti) <+ ((V(t,ti)/Rth))
1761  // I(t,ti) <+ ((Cth*ddt(V(t,ti))))
1763  dynamicContributions[admsNodeID_ti] -= ((model_.Cth)*((probeVars[admsProbeID_V_t_ti])));
1764  }
1765  else
1766  {
1767  // I(t,ti) <+ ((V(t,ti)*1e3))
1770  }
1771 
1772  // Additional term resulting from contributions into V(b,bi)
1775 
1776  // Additional term resulting from contributions into V(e,ei)
1779 
1780  // Additional term resulting from contributions into V(c,ci)
1783  // Final term for branch equation admsBRA_ID_b_bi
1784  staticContributions[admsBRA_ID_b_bi] -= (*solVectorPtr)[li_b]-(*solVectorPtr)[li_bi];
1785  // Final term for branch equation admsBRA_ID_e_ei
1786  staticContributions[admsBRA_ID_e_ei] -= (*solVectorPtr)[li_e]-(*solVectorPtr)[li_ei];
1787  // Final term for branch equation admsBRA_ID_c_ci
1788  staticContributions[admsBRA_ID_c_ci] -= (*solVectorPtr)[li_c]-(*solVectorPtr)[li_ci];
1789 
1790 
1791  // -- endcode converted from analog/code block
1792 #ifdef Xyce_DEBUG_DEVICE
1794  {
1795  Xyce::dout() << " probeVars[admsProbeID_V_t_ti] = "
1796  <<probeVars[admsProbeID_V_t_ti].val() << std::endl;
1797  Xyce::dout() << " probeVars[admsProbeID_V_b_c] = "
1798  <<probeVars[admsProbeID_V_b_c].val() << std::endl;
1799  Xyce::dout() << " probeVars[admsProbeID_V_c_GND] = "
1800  <<probeVars[admsProbeID_V_c_GND].val() << std::endl;
1801  Xyce::dout() << " probeVars[admsProbeID_V_b_GND] = "
1802  <<probeVars[admsProbeID_V_b_GND].val() << std::endl;
1803  Xyce::dout() << " probeVars[admsProbeID_V_cx_bii] = "
1804  <<probeVars[admsProbeID_V_cx_bii].val() << std::endl;
1805  Xyce::dout() << " probeVars[admsProbeID_V_exx_bii] = "
1806  <<probeVars[admsProbeID_V_exx_bii].val() << std::endl;
1807  Xyce::dout() << " probeVars[admsProbeID_V_ex_bii] = "
1808  <<probeVars[admsProbeID_V_ex_bii].val() << std::endl;
1809  Xyce::dout() << " probeVars[admsProbeID_V_bii_bi] = "
1810  <<probeVars[admsProbeID_V_bii_bi].val() << std::endl;
1811  Xyce::dout() << " probeVars[admsProbeID_I_c_ci] = "
1812  <<probeVars[admsProbeID_I_c_ci].val() << std::endl;
1813  Xyce::dout() << " probeVars[admsProbeID_I_e_ei] = "
1814  <<probeVars[admsProbeID_I_e_ei].val() << std::endl;
1815  Xyce::dout() << " probeVars[admsProbeID_I_b_bi] = "
1816  <<probeVars[admsProbeID_I_b_bi].val() << std::endl;
1817  Xyce::dout() << " probeVars[admsProbeID_V_ti_GND] = "
1818  <<probeVars[admsProbeID_V_ti_GND].val() << std::endl;
1819  Xyce::dout() << " probeVars[admsProbeID_V_ci_ei] = "
1820  <<probeVars[admsProbeID_V_ci_ei].val() << std::endl;
1821  Xyce::dout() << " probeVars[admsProbeID_V_exx_ei] = "
1822  <<probeVars[admsProbeID_V_exx_ei].val() << std::endl;
1823  Xyce::dout() << " probeVars[admsProbeID_V_cx_ci] = "
1824  <<probeVars[admsProbeID_V_cx_ci].val() << std::endl;
1825  Xyce::dout() << " probeVars[admsProbeID_V_ex_ei] = "
1826  <<probeVars[admsProbeID_V_ex_ei].val() << std::endl;
1827  Xyce::dout() << " probeVars[admsProbeID_V_bii_ei] = "
1828  <<probeVars[admsProbeID_V_bii_ei].val() << std::endl;
1829  Xyce::dout() << " probeVars[admsProbeID_V_bii_ci] = "
1830  <<probeVars[admsProbeID_V_bii_ci].val() << std::endl;
1831  Xyce::dout() << " probeVars[admsProbeID_V_bi_ci] = "
1832  <<probeVars[admsProbeID_V_bi_ci].val() << std::endl;
1833  Xyce::dout() << " staticContributions[admsNodeID_c] = "
1834  <<staticContributions[admsNodeID_c].val() << std::endl;
1835  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_t_ti) << std::endl;
1836  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_b_c) << std::endl;
1837  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_c_GND) << std::endl;
1838  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_b_GND) << std::endl;
1839  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_cx_bii) << std::endl;
1840  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_exx_bii) << std::endl;
1841  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_ex_bii) << std::endl;
1842  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_bii_bi) << std::endl;
1843  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_I_c_ci) << std::endl;
1844  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_I_e_ei) << std::endl;
1845  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_I_b_bi) << std::endl;
1846  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_ti_GND) << std::endl;
1847  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_ci_ei) << std::endl;
1848  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_exx_ei) << std::endl;
1849  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_cx_ci) << std::endl;
1850  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_ex_ei) << std::endl;
1851  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_bii_ei) << std::endl;
1852  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_bii_ci) << std::endl;
1853  Xyce::dout() << " staticContributions[admsNodeID_c].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_c].dx(admsProbeID_V_bi_ci) << std::endl;
1854  Xyce::dout() << " dynamicContributions[admsNodeID_c] = "
1855  <<dynamicContributions[admsNodeID_c].val() << std::endl;
1856  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_t_ti) << std::endl;
1857  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c) << std::endl;
1858  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_c_GND) << std::endl;
1859  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_GND) << std::endl;
1860  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_cx_bii) << std::endl;
1861  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_exx_bii) << std::endl;
1862  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ex_bii) << std::endl;
1863  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bii_bi) << std::endl;
1864  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_I_c_ci) << std::endl;
1865  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_I_e_ei) << std::endl;
1866  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_I_b_bi) << std::endl;
1867  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ti_GND) << std::endl;
1868  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ci_ei) << std::endl;
1869  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_exx_ei) << std::endl;
1870  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_cx_ci) << std::endl;
1871  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_ex_ei) << std::endl;
1872  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bii_ei) << std::endl;
1873  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bii_ci) << std::endl;
1874  Xyce::dout() << " dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_c].dx(admsProbeID_V_bi_ci) << std::endl;
1875  Xyce::dout() << " Jdxp_static[admsNodeID_c] = "
1876  <<Jdxp_static[admsNodeID_c] << std::endl;
1877  Xyce::dout() << " Jdxp_dynamic[admsNodeID_c] = "
1878  <<Jdxp_dynamic[admsNodeID_c] << std::endl;
1879  Xyce::dout() << " staticContributions[admsNodeID_b] = "
1880  <<staticContributions[admsNodeID_b].val() << std::endl;
1881  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_t_ti) << std::endl;
1882  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_b_c) << std::endl;
1883  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_c_GND) << std::endl;
1884  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_b_GND) << std::endl;
1885  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_cx_bii) << std::endl;
1886  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_exx_bii) << std::endl;
1887  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_ex_bii) << std::endl;
1888  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_bii_bi) << std::endl;
1889  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_I_c_ci) << std::endl;
1890  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_I_e_ei) << std::endl;
1891  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_I_b_bi) << std::endl;
1892  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_ti_GND) << std::endl;
1893  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_ci_ei) << std::endl;
1894  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_exx_ei) << std::endl;
1895  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_cx_ci) << std::endl;
1896  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_ex_ei) << std::endl;
1897  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_bii_ei) << std::endl;
1898  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_bii_ci) << std::endl;
1899  Xyce::dout() << " staticContributions[admsNodeID_b].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_b].dx(admsProbeID_V_bi_ci) << std::endl;
1900  Xyce::dout() << " dynamicContributions[admsNodeID_b] = "
1901  <<dynamicContributions[admsNodeID_b].val() << std::endl;
1902  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_t_ti) << std::endl;
1903  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c) << std::endl;
1904  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_c_GND) << std::endl;
1905  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_GND) << std::endl;
1906  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_cx_bii) << std::endl;
1907  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_exx_bii) << std::endl;
1908  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ex_bii) << std::endl;
1909  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bii_bi) << std::endl;
1910  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_I_c_ci) << std::endl;
1911  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_I_e_ei) << std::endl;
1912  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_I_b_bi) << std::endl;
1913  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ti_GND) << std::endl;
1914  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ci_ei) << std::endl;
1915  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_exx_ei) << std::endl;
1916  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_cx_ci) << std::endl;
1917  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_ex_ei) << std::endl;
1918  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bii_ei) << std::endl;
1919  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bii_ci) << std::endl;
1920  Xyce::dout() << " dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_b].dx(admsProbeID_V_bi_ci) << std::endl;
1921  Xyce::dout() << " Jdxp_static[admsNodeID_b] = "
1922  <<Jdxp_static[admsNodeID_b] << std::endl;
1923  Xyce::dout() << " Jdxp_dynamic[admsNodeID_b] = "
1924  <<Jdxp_dynamic[admsNodeID_b] << std::endl;
1925  Xyce::dout() << " staticContributions[admsNodeID_e] = "
1926  <<staticContributions[admsNodeID_e].val() << std::endl;
1927  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_t_ti) << std::endl;
1928  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_b_c) << std::endl;
1929  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_c_GND) << std::endl;
1930  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_b_GND) << std::endl;
1931  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_cx_bii) << std::endl;
1932  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_exx_bii) << std::endl;
1933  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_ex_bii) << std::endl;
1934  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_bii_bi) << std::endl;
1935  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_I_c_ci) << std::endl;
1936  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_I_e_ei) << std::endl;
1937  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_I_b_bi) << std::endl;
1938  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_ti_GND) << std::endl;
1939  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_ci_ei) << std::endl;
1940  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_exx_ei) << std::endl;
1941  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_cx_ci) << std::endl;
1942  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_ex_ei) << std::endl;
1943  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_bii_ei) << std::endl;
1944  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_bii_ci) << std::endl;
1945  Xyce::dout() << " staticContributions[admsNodeID_e].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_e].dx(admsProbeID_V_bi_ci) << std::endl;
1946  Xyce::dout() << " dynamicContributions[admsNodeID_e] = "
1947  <<dynamicContributions[admsNodeID_e].val() << std::endl;
1948  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_t_ti) << std::endl;
1949  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_c) << std::endl;
1950  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_c_GND) << std::endl;
1951  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_b_GND) << std::endl;
1952  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_cx_bii) << std::endl;
1953  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_exx_bii) << std::endl;
1954  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ex_bii) << std::endl;
1955  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bii_bi) << std::endl;
1956  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_I_c_ci) << std::endl;
1957  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_I_e_ei) << std::endl;
1958  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_I_b_bi) << std::endl;
1959  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ti_GND) << std::endl;
1960  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ci_ei) << std::endl;
1961  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_exx_ei) << std::endl;
1962  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_cx_ci) << std::endl;
1963  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_ex_ei) << std::endl;
1964  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bii_ei) << std::endl;
1965  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bii_ci) << std::endl;
1966  Xyce::dout() << " dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_e].dx(admsProbeID_V_bi_ci) << std::endl;
1967  Xyce::dout() << " Jdxp_static[admsNodeID_e] = "
1968  <<Jdxp_static[admsNodeID_e] << std::endl;
1969  Xyce::dout() << " Jdxp_dynamic[admsNodeID_e] = "
1970  <<Jdxp_dynamic[admsNodeID_e] << std::endl;
1971  Xyce::dout() << " staticContributions[admsNodeID_t] = "
1972  <<staticContributions[admsNodeID_t].val() << std::endl;
1973  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_t_ti) << std::endl;
1974  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_b_c) << std::endl;
1975  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_c_GND) << std::endl;
1976  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_b_GND) << std::endl;
1977  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_cx_bii) << std::endl;
1978  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_exx_bii) << std::endl;
1979  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_ex_bii) << std::endl;
1980  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_bii_bi) << std::endl;
1981  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_I_c_ci) << std::endl;
1982  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_I_e_ei) << std::endl;
1983  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_I_b_bi) << std::endl;
1984  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_ti_GND) << std::endl;
1985  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_ci_ei) << std::endl;
1986  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_exx_ei) << std::endl;
1987  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_cx_ci) << std::endl;
1988  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_ex_ei) << std::endl;
1989  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_bii_ei) << std::endl;
1990  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_bii_ci) << std::endl;
1991  Xyce::dout() << " staticContributions[admsNodeID_t].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_t].dx(admsProbeID_V_bi_ci) << std::endl;
1992  Xyce::dout() << " dynamicContributions[admsNodeID_t] = "
1993  <<dynamicContributions[admsNodeID_t].val() << std::endl;
1994  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_t_ti) << std::endl;
1995  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_b_c) << std::endl;
1996  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_c_GND) << std::endl;
1997  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_b_GND) << std::endl;
1998  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_cx_bii) << std::endl;
1999  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_exx_bii) << std::endl;
2000  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ex_bii) << std::endl;
2001  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_bii_bi) << std::endl;
2002  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_I_c_ci) << std::endl;
2003  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_I_e_ei) << std::endl;
2004  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_I_b_bi) << std::endl;
2005  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ti_GND) << std::endl;
2006  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ci_ei) << std::endl;
2007  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_exx_ei) << std::endl;
2008  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_cx_ci) << std::endl;
2009  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_ex_ei) << std::endl;
2010  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_bii_ei) << std::endl;
2011  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_bii_ci) << std::endl;
2012  Xyce::dout() << " dynamicContributions[admsNodeID_t].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_t].dx(admsProbeID_V_bi_ci) << std::endl;
2013  Xyce::dout() << " Jdxp_static[admsNodeID_t] = "
2014  <<Jdxp_static[admsNodeID_t] << std::endl;
2015  Xyce::dout() << " Jdxp_dynamic[admsNodeID_t] = "
2016  <<Jdxp_dynamic[admsNodeID_t] << std::endl;
2017  Xyce::dout() << " staticContributions[admsNodeID_ei] = "
2018  <<staticContributions[admsNodeID_ei].val() << std::endl;
2019  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_t_ti) << std::endl;
2020  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_b_c) << std::endl;
2021  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_c_GND) << std::endl;
2022  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_b_GND) << std::endl;
2023  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_cx_bii) << std::endl;
2024  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_exx_bii) << std::endl;
2025  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_ex_bii) << std::endl;
2026  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_bi) << std::endl;
2027  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_I_c_ci) << std::endl;
2028  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_I_e_ei) << std::endl;
2029  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_I_b_bi) << std::endl;
2030  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_ti_GND) << std::endl;
2031  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_ci_ei) << std::endl;
2032  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_exx_ei) << std::endl;
2033  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_cx_ci) << std::endl;
2034  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_ex_ei) << std::endl;
2035  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ei) << std::endl;
2036  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ci) << std::endl;
2037  Xyce::dout() << " staticContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ci) << std::endl;
2038  Xyce::dout() << " dynamicContributions[admsNodeID_ei] = "
2039  <<dynamicContributions[admsNodeID_ei].val() << std::endl;
2040  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_t_ti) << std::endl;
2041  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_b_c) << std::endl;
2042  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_c_GND) << std::endl;
2043  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_b_GND) << std::endl;
2044  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_cx_bii) << std::endl;
2045  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_exx_bii) << std::endl;
2046  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ex_bii) << std::endl;
2047  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bii_bi) << std::endl;
2048  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_I_c_ci) << std::endl;
2049  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_I_e_ei) << std::endl;
2050  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_I_b_bi) << std::endl;
2051  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ti_GND) << std::endl;
2052  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ci_ei) << std::endl;
2053  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_exx_ei) << std::endl;
2054  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_cx_ci) << std::endl;
2055  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ex_ei) << std::endl;
2056  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ei) << std::endl;
2057  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ci) << std::endl;
2058  Xyce::dout() << " dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_bi_ci) << std::endl;
2059  Xyce::dout() << " Jdxp_static[admsNodeID_ei] = "
2060  <<Jdxp_static[admsNodeID_ei] << std::endl;
2061  Xyce::dout() << " Jdxp_dynamic[admsNodeID_ei] = "
2062  <<Jdxp_dynamic[admsNodeID_ei] << std::endl;
2063  Xyce::dout() << " staticContributions[admsNodeID_bi] = "
2064  <<staticContributions[admsNodeID_bi].val() << std::endl;
2065  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_t_ti) << std::endl;
2066  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_b_c) << std::endl;
2067  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_c_GND) << std::endl;
2068  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_b_GND) << std::endl;
2069  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_cx_bii) << std::endl;
2070  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_exx_bii) << std::endl;
2071  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_ex_bii) << std::endl;
2072  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_bii_bi) << std::endl;
2073  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_I_c_ci) << std::endl;
2074  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_I_e_ei) << std::endl;
2075  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_I_b_bi) << std::endl;
2076  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_ti_GND) << std::endl;
2077  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_ci_ei) << std::endl;
2078  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_exx_ei) << std::endl;
2079  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_cx_ci) << std::endl;
2080  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_ex_ei) << std::endl;
2081  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_bii_ei) << std::endl;
2082  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_bii_ci) << std::endl;
2083  Xyce::dout() << " staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci) << std::endl;
2084  Xyce::dout() << " dynamicContributions[admsNodeID_bi] = "
2085  <<dynamicContributions[admsNodeID_bi].val() << std::endl;
2086  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_t_ti) << std::endl;
2087  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_b_c) << std::endl;
2088  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_c_GND) << std::endl;
2089  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_b_GND) << std::endl;
2090  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_cx_bii) << std::endl;
2091  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_exx_bii) << std::endl;
2092  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ex_bii) << std::endl;
2093  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bii_bi) << std::endl;
2094  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_I_c_ci) << std::endl;
2095  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_I_e_ei) << std::endl;
2096  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_I_b_bi) << std::endl;
2097  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ti_GND) << std::endl;
2098  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ci_ei) << std::endl;
2099  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_exx_ei) << std::endl;
2100  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_cx_ci) << std::endl;
2101  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ex_ei) << std::endl;
2102  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bii_ei) << std::endl;
2103  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bii_ci) << std::endl;
2104  Xyce::dout() << " dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci) << std::endl;
2105  Xyce::dout() << " Jdxp_static[admsNodeID_bi] = "
2106  <<Jdxp_static[admsNodeID_bi] << std::endl;
2107  Xyce::dout() << " Jdxp_dynamic[admsNodeID_bi] = "
2108  <<Jdxp_dynamic[admsNodeID_bi] << std::endl;
2109  Xyce::dout() << " staticContributions[admsNodeID_bii] = "
2110  <<staticContributions[admsNodeID_bii].val() << std::endl;
2111  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_t_ti) << std::endl;
2112  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_b_c) << std::endl;
2113  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_c_GND) << std::endl;
2114  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_b_GND) << std::endl;
2115  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_cx_bii) << std::endl;
2116  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_exx_bii) << std::endl;
2117  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_ex_bii) << std::endl;
2118  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_bi) << std::endl;
2119  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_I_c_ci) << std::endl;
2120  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_I_e_ei) << std::endl;
2121  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_I_b_bi) << std::endl;
2122  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_ti_GND) << std::endl;
2123  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_ci_ei) << std::endl;
2124  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_exx_ei) << std::endl;
2125  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_cx_ci) << std::endl;
2126  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_ex_ei) << std::endl;
2127  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ei) << std::endl;
2128  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ci) << std::endl;
2129  Xyce::dout() << " staticContributions[admsNodeID_bii].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_bii].dx(admsProbeID_V_bi_ci) << std::endl;
2130  Xyce::dout() << " dynamicContributions[admsNodeID_bii] = "
2131  <<dynamicContributions[admsNodeID_bii].val() << std::endl;
2132  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_t_ti) << std::endl;
2133  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_b_c) << std::endl;
2134  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_c_GND) << std::endl;
2135  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_b_GND) << std::endl;
2136  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_cx_bii) << std::endl;
2137  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_exx_bii) << std::endl;
2138  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ex_bii) << std::endl;
2139  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bii_bi) << std::endl;
2140  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_I_c_ci) << std::endl;
2141  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_I_e_ei) << std::endl;
2142  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_I_b_bi) << std::endl;
2143  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ti_GND) << std::endl;
2144  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ci_ei) << std::endl;
2145  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_exx_ei) << std::endl;
2146  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_cx_ci) << std::endl;
2147  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ex_ei) << std::endl;
2148  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ei) << std::endl;
2149  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ci) << std::endl;
2150  Xyce::dout() << " dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_bi_ci) << std::endl;
2151  Xyce::dout() << " Jdxp_static[admsNodeID_bii] = "
2152  <<Jdxp_static[admsNodeID_bii] << std::endl;
2153  Xyce::dout() << " Jdxp_dynamic[admsNodeID_bii] = "
2154  <<Jdxp_dynamic[admsNodeID_bii] << std::endl;
2155  Xyce::dout() << " staticContributions[admsNodeID_ci] = "
2156  <<staticContributions[admsNodeID_ci].val() << std::endl;
2157  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_t_ti) << std::endl;
2158  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_b_c) << std::endl;
2159  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_c_GND) << std::endl;
2160  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_b_GND) << std::endl;
2161  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_bii) << std::endl;
2162  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_exx_bii) << std::endl;
2163  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_ex_bii) << std::endl;
2164  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_bi) << std::endl;
2165  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_I_c_ci) << std::endl;
2166  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_I_e_ei) << std::endl;
2167  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_I_b_bi) << std::endl;
2168  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_ti_GND) << std::endl;
2169  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_ci_ei) << std::endl;
2170  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_exx_ei) << std::endl;
2171  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci) << std::endl;
2172  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_ex_ei) << std::endl;
2173  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei) << std::endl;
2174  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ci) << std::endl;
2175  Xyce::dout() << " staticContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci) << std::endl;
2176  Xyce::dout() << " dynamicContributions[admsNodeID_ci] = "
2177  <<dynamicContributions[admsNodeID_ci].val() << std::endl;
2178  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_t_ti) << std::endl;
2179  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_b_c) << std::endl;
2180  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_c_GND) << std::endl;
2181  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_b_GND) << std::endl;
2182  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_cx_bii) << std::endl;
2183  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_exx_bii) << std::endl;
2184  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ex_bii) << std::endl;
2185  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_bi) << std::endl;
2186  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_I_c_ci) << std::endl;
2187  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_I_e_ei) << std::endl;
2188  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_I_b_bi) << std::endl;
2189  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ti_GND) << std::endl;
2190  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ci_ei) << std::endl;
2191  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_exx_ei) << std::endl;
2192  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci) << std::endl;
2193  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ex_ei) << std::endl;
2194  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei) << std::endl;
2195  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ci) << std::endl;
2196  Xyce::dout() << " dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci) << std::endl;
2197  Xyce::dout() << " Jdxp_static[admsNodeID_ci] = "
2198  <<Jdxp_static[admsNodeID_ci] << std::endl;
2199  Xyce::dout() << " Jdxp_dynamic[admsNodeID_ci] = "
2200  <<Jdxp_dynamic[admsNodeID_ci] << std::endl;
2201  Xyce::dout() << " staticContributions[admsNodeID_ti] = "
2202  <<staticContributions[admsNodeID_ti].val() << std::endl;
2203  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti) << std::endl;
2204  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_b_c) << std::endl;
2205  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_c_GND) << std::endl;
2206  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_b_GND) << std::endl;
2207  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_cx_bii) << std::endl;
2208  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_exx_bii) << std::endl;
2209  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_ex_bii) << std::endl;
2210  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_bii_bi) << std::endl;
2211  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_I_c_ci) << std::endl;
2212  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_I_e_ei) << std::endl;
2213  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_I_b_bi) << std::endl;
2214  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_ti_GND) << std::endl;
2215  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_ci_ei) << std::endl;
2216  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_exx_ei) << std::endl;
2217  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_cx_ci) << std::endl;
2218  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_ex_ei) << std::endl;
2219  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ei) << std::endl;
2220  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ci) << std::endl;
2221  Xyce::dout() << " staticContributions[admsNodeID_ti].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_ti].dx(admsProbeID_V_bi_ci) << std::endl;
2222  Xyce::dout() << " dynamicContributions[admsNodeID_ti] = "
2223  <<dynamicContributions[admsNodeID_ti].val() << std::endl;
2224  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti) << std::endl;
2225  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_b_c) << std::endl;
2226  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_c_GND) << std::endl;
2227  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_b_GND) << std::endl;
2228  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_cx_bii) << std::endl;
2229  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_exx_bii) << std::endl;
2230  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_ex_bii) << std::endl;
2231  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_bii_bi) << std::endl;
2232  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_I_c_ci) << std::endl;
2233  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_I_e_ei) << std::endl;
2234  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_I_b_bi) << std::endl;
2235  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_ti_GND) << std::endl;
2236  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_ci_ei) << std::endl;
2237  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_exx_ei) << std::endl;
2238  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_cx_ci) << std::endl;
2239  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_ex_ei) << std::endl;
2240  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ei) << std::endl;
2241  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_bii_ci) << std::endl;
2242  Xyce::dout() << " dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_bi_ci) << std::endl;
2243  Xyce::dout() << " Jdxp_static[admsNodeID_ti] = "
2244  <<Jdxp_static[admsNodeID_ti] << std::endl;
2245  Xyce::dout() << " Jdxp_dynamic[admsNodeID_ti] = "
2246  <<Jdxp_dynamic[admsNodeID_ti] << std::endl;
2247  Xyce::dout() << " staticContributions[admsNodeID_ex] = "
2248  <<staticContributions[admsNodeID_ex].val() << std::endl;
2249  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_t_ti) << std::endl;
2250  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_b_c) << std::endl;
2251  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_c_GND) << std::endl;
2252  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_b_GND) << std::endl;
2253  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_cx_bii) << std::endl;
2254  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_exx_bii) << std::endl;
2255  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_bii) << std::endl;
2256  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_bii_bi) << std::endl;
2257  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_I_c_ci) << std::endl;
2258  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_I_e_ei) << std::endl;
2259  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_I_b_bi) << std::endl;
2260  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_ti_GND) << std::endl;
2261  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_ci_ei) << std::endl;
2262  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_exx_ei) << std::endl;
2263  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_cx_ci) << std::endl;
2264  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_ei) << std::endl;
2265  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_bii_ei) << std::endl;
2266  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_bii_ci) << std::endl;
2267  Xyce::dout() << " staticContributions[admsNodeID_ex].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_ex].dx(admsProbeID_V_bi_ci) << std::endl;
2268  Xyce::dout() << " dynamicContributions[admsNodeID_ex] = "
2269  <<dynamicContributions[admsNodeID_ex].val() << std::endl;
2270  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_t_ti) << std::endl;
2271  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_b_c) << std::endl;
2272  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_c_GND) << std::endl;
2273  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_b_GND) << std::endl;
2274  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_cx_bii) << std::endl;
2275  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_exx_bii) << std::endl;
2276  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_ex_bii) << std::endl;
2277  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_bii_bi) << std::endl;
2278  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_I_c_ci) << std::endl;
2279  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_I_e_ei) << std::endl;
2280  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_I_b_bi) << std::endl;
2281  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_ti_GND) << std::endl;
2282  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_ci_ei) << std::endl;
2283  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_exx_ei) << std::endl;
2284  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_cx_ci) << std::endl;
2285  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_ex_ei) << std::endl;
2286  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_bii_ei) << std::endl;
2287  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_bii_ci) << std::endl;
2288  Xyce::dout() << " dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_ex].dx(admsProbeID_V_bi_ci) << std::endl;
2289  Xyce::dout() << " Jdxp_static[admsNodeID_ex] = "
2290  <<Jdxp_static[admsNodeID_ex] << std::endl;
2291  Xyce::dout() << " Jdxp_dynamic[admsNodeID_ex] = "
2292  <<Jdxp_dynamic[admsNodeID_ex] << std::endl;
2293  Xyce::dout() << " staticContributions[admsNodeID_exx] = "
2294  <<staticContributions[admsNodeID_exx].val() << std::endl;
2295  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_t_ti) << std::endl;
2296  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_b_c) << std::endl;
2297  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_c_GND) << std::endl;
2298  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_b_GND) << std::endl;
2299  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_cx_bii) << std::endl;
2300  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_bii) << std::endl;
2301  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_ex_bii) << std::endl;
2302  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_bii_bi) << std::endl;
2303  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_I_c_ci) << std::endl;
2304  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_I_e_ei) << std::endl;
2305  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_I_b_bi) << std::endl;
2306  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_ti_GND) << std::endl;
2307  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_ci_ei) << std::endl;
2308  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_ei) << std::endl;
2309  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_cx_ci) << std::endl;
2310  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_ex_ei) << std::endl;
2311  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_bii_ei) << std::endl;
2312  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_bii_ci) << std::endl;
2313  Xyce::dout() << " staticContributions[admsNodeID_exx].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_exx].dx(admsProbeID_V_bi_ci) << std::endl;
2314  Xyce::dout() << " dynamicContributions[admsNodeID_exx] = "
2315  <<dynamicContributions[admsNodeID_exx].val() << std::endl;
2316  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_t_ti) << std::endl;
2317  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_b_c) << std::endl;
2318  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_c_GND) << std::endl;
2319  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_b_GND) << std::endl;
2320  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_cx_bii) << std::endl;
2321  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_exx_bii) << std::endl;
2322  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_ex_bii) << std::endl;
2323  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_bii_bi) << std::endl;
2324  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_I_c_ci) << std::endl;
2325  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_I_e_ei) << std::endl;
2326  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_I_b_bi) << std::endl;
2327  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_ti_GND) << std::endl;
2328  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_ci_ei) << std::endl;
2329  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_exx_ei) << std::endl;
2330  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_cx_ci) << std::endl;
2331  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_ex_ei) << std::endl;
2332  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_bii_ei) << std::endl;
2333  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_bii_ci) << std::endl;
2334  Xyce::dout() << " dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_exx].dx(admsProbeID_V_bi_ci) << std::endl;
2335  Xyce::dout() << " Jdxp_static[admsNodeID_exx] = "
2336  <<Jdxp_static[admsNodeID_exx] << std::endl;
2337  Xyce::dout() << " Jdxp_dynamic[admsNodeID_exx] = "
2338  <<Jdxp_dynamic[admsNodeID_exx] << std::endl;
2339  Xyce::dout() << " staticContributions[admsNodeID_cx] = "
2340  <<staticContributions[admsNodeID_cx].val() << std::endl;
2341  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_t_ti) << std::endl;
2342  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_b_c) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_b_c) << std::endl;
2343  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_c_GND) << std::endl;
2344  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_b_GND) << std::endl;
2345  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_bii) << std::endl;
2346  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_exx_bii) << std::endl;
2347  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_ex_bii) << std::endl;
2348  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_bii_bi) << std::endl;
2349  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_I_c_ci) << std::endl;
2350  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_I_e_ei) << std::endl;
2351  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_I_b_bi) << std::endl;
2352  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_ti_GND) << std::endl;
2353  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_ci_ei) << std::endl;
2354  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_exx_ei) << std::endl;
2355  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci) << std::endl;
2356  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_ex_ei) << std::endl;
2357  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_bii_ei) << std::endl;
2358  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_bii_ci) << std::endl;
2359  Xyce::dout() << " staticContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ci) << std::endl;
2360  Xyce::dout() << " dynamicContributions[admsNodeID_cx] = "
2361  <<dynamicContributions[admsNodeID_cx].val() << std::endl;
2362  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_t_ti) << std::endl;
2363  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_b_c) << std::endl;
2364  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_c_GND) << std::endl;
2365  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_b_GND) << std::endl;
2366  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_cx_bii) << std::endl;
2367  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_exx_bii) << std::endl;
2368  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ex_bii) << std::endl;
2369  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bii_bi) << std::endl;
2370  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_I_c_ci) << std::endl;
2371  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_I_e_ei) << std::endl;
2372  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_I_b_bi) << std::endl;
2373  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ti_GND) << std::endl;
2374  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ci_ei) << std::endl;
2375  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_exx_ei) << std::endl;
2376  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci) << std::endl;
2377  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_ex_ei) << std::endl;
2378  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bii_ei) << std::endl;
2379  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bii_ci) << std::endl;
2380  Xyce::dout() << " dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsNodeID_cx].dx(admsProbeID_V_bi_ci) << std::endl;
2381  Xyce::dout() << " Jdxp_static[admsNodeID_cx] = "
2382  <<Jdxp_static[admsNodeID_cx] << std::endl;
2383  Xyce::dout() << " Jdxp_dynamic[admsNodeID_cx] = "
2384  <<Jdxp_dynamic[admsNodeID_cx] << std::endl;
2385  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi] = "
2386  <<staticContributions[admsBRA_ID_b_bi].val() << std::endl;
2387  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_t_ti) << std::endl;
2388  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_b_c) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_b_c) << std::endl;
2389  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_c_GND) << std::endl;
2390  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_b_GND) << std::endl;
2391  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_cx_bii) << std::endl;
2392  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_exx_bii) << std::endl;
2393  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ex_bii) << std::endl;
2394  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_bi) << std::endl;
2395  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_c_ci) << std::endl;
2396  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_e_ei) << std::endl;
2397  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_b_bi) << std::endl;
2398  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ti_GND) << std::endl;
2399  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ci_ei) << std::endl;
2400  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_exx_ei) << std::endl;
2401  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_cx_ci) << std::endl;
2402  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ex_ei) << std::endl;
2403  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_ei) << std::endl;
2404  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_ci) << std::endl;
2405  Xyce::dout() << " staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bi_ci) << std::endl;
2406  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi] = "
2407  <<dynamicContributions[admsBRA_ID_b_bi].val() << std::endl;
2408  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_t_ti) << std::endl;
2409  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_b_c) << std::endl;
2410  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_c_GND) << std::endl;
2411  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_b_GND) << std::endl;
2412  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_cx_bii) << std::endl;
2413  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_exx_bii) << std::endl;
2414  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ex_bii) << std::endl;
2415  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_bi) << std::endl;
2416  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_c_ci) << std::endl;
2417  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_e_ei) << std::endl;
2418  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_b_bi) << std::endl;
2419  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ti_GND) << std::endl;
2420  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ci_ei) << std::endl;
2421  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_exx_ei) << std::endl;
2422  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_cx_ci) << std::endl;
2423  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_ex_ei) << std::endl;
2424  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_ei) << std::endl;
2425  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bii_ci) << std::endl;
2426  Xyce::dout() << " dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_V_bi_ci) << std::endl;
2427  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei] = "
2428  <<staticContributions[admsBRA_ID_e_ei].val() << std::endl;
2429  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_t_ti) << std::endl;
2430  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_b_c) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_b_c) << std::endl;
2431  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_c_GND) << std::endl;
2432  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_b_GND) << std::endl;
2433  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_cx_bii) << std::endl;
2434  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_exx_bii) << std::endl;
2435  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ex_bii) << std::endl;
2436  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_bi) << std::endl;
2437  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_c_ci) << std::endl;
2438  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_e_ei) << std::endl;
2439  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_b_bi) << std::endl;
2440  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ti_GND) << std::endl;
2441  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ci_ei) << std::endl;
2442  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_exx_ei) << std::endl;
2443  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_cx_ci) << std::endl;
2444  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ex_ei) << std::endl;
2445  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_ei) << std::endl;
2446  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_ci) << std::endl;
2447  Xyce::dout() << " staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bi_ci) << std::endl;
2448  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei] = "
2449  <<dynamicContributions[admsBRA_ID_e_ei].val() << std::endl;
2450  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_t_ti) << std::endl;
2451  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_b_c) << std::endl;
2452  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_c_GND) << std::endl;
2453  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_b_GND) << std::endl;
2454  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_cx_bii) << std::endl;
2455  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_exx_bii) << std::endl;
2456  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ex_bii) << std::endl;
2457  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_bi) << std::endl;
2458  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_c_ci) << std::endl;
2459  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_e_ei) << std::endl;
2460  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_b_bi) << std::endl;
2461  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ti_GND) << std::endl;
2462  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ci_ei) << std::endl;
2463  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_exx_ei) << std::endl;
2464  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_cx_ci) << std::endl;
2465  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_ex_ei) << std::endl;
2466  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_ei) << std::endl;
2467  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bii_ci) << std::endl;
2468  Xyce::dout() << " dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_V_bi_ci) << std::endl;
2469  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci] = "
2470  <<staticContributions[admsBRA_ID_c_ci].val() << std::endl;
2471  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_t_ti) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_t_ti) << std::endl;
2472  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_b_c) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_b_c) << std::endl;
2473  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_c_GND) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_c_GND) << std::endl;
2474  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_b_GND) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_b_GND) << std::endl;
2475  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_cx_bii) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_cx_bii) << std::endl;
2476  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_exx_bii) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_exx_bii) << std::endl;
2477  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ex_bii) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ex_bii) << std::endl;
2478  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_bi) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_bi) << std::endl;
2479  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_c_ci) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_c_ci) << std::endl;
2480  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_e_ei) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_e_ei) << std::endl;
2481  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_b_bi) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_b_bi) << std::endl;
2482  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ti_GND) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ti_GND) << std::endl;
2483  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ci_ei) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ci_ei) << std::endl;
2484  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_exx_ei) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_exx_ei) << std::endl;
2485  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_cx_ci) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_cx_ci) << std::endl;
2486  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ex_ei) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ex_ei) << std::endl;
2487  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_ei) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_ei) << std::endl;
2488  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_ci) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_ci) << std::endl;
2489  Xyce::dout() << " staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bi_ci) = " <<staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bi_ci) << std::endl;
2490  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci] = "
2491  <<dynamicContributions[admsBRA_ID_c_ci].val() << std::endl;
2492  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_t_ti) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_t_ti) << std::endl;
2493  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_b_c) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_b_c) << std::endl;
2494  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_c_GND) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_c_GND) << std::endl;
2495  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_b_GND) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_b_GND) << std::endl;
2496  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_cx_bii) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_cx_bii) << std::endl;
2497  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_exx_bii) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_exx_bii) << std::endl;
2498  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ex_bii) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ex_bii) << std::endl;
2499  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_bi) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_bi) << std::endl;
2500  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_c_ci) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_c_ci) << std::endl;
2501  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_e_ei) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_e_ei) << std::endl;
2502  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_b_bi) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_b_bi) << std::endl;
2503  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ti_GND) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ti_GND) << std::endl;
2504  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ci_ei) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ci_ei) << std::endl;
2505  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_exx_ei) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_exx_ei) << std::endl;
2506  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_cx_ci) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_cx_ci) << std::endl;
2507  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ex_ei) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_ex_ei) << std::endl;
2508  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_ei) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_ei) << std::endl;
2509  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_ci) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bii_ci) << std::endl;
2510  Xyce::dout() << " dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bi_ci) = " <<dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_V_bi_ci) << std::endl;
2511 
2512  if (!origFlag)
2513  Xyce::dout() << "This step was limited by this device." << std::endl;
2514  }
2515 #endif // Xyce_DEBUG_DEVICE
2516  return true;
2517 }
2518 
2519 //-----------------------------------------------------------------------------
2520 // Function : Instance::loadDAEdFdx
2521 // Purpose :
2522 // Special Notes : Load the dFdx ("static jacobian") matrix
2523 // Scope : public
2524 // Creator : admsXml
2525 // Creation Date :
2526 //-----------------------------------------------------------------------------
2528 {
2529  bool bsuccess = true;
2530  N_LAS_Matrix * dFdxMatPtr = extData.dFdxMatrixPtr;
2531 
2532 #ifdef Xyce_DEBUG_DEVICE
2533  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2534  {
2535  Xyce::dout() << subsection_divider << std::endl;
2536  Xyce::dout() << "ADMSHBT_X::Instance::loadDAEdFdx (" << getName() << "):" << std::endl;
2537  }
2538 #endif
2539  (*f_bi_Equ_ti_Node_Ptr) += +staticContributions[admsNodeID_bi].dx(admsProbeID_V_ti_GND);
2540 
2541 
2542 #ifdef Xyce_DEBUG_DEVICE
2543  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2544  {
2545  Xyce::dout() << " (*f_bi_Equ_ti_Node_Ptr) += " << +staticContributions[admsNodeID_bi].dx(admsProbeID_V_ti_GND)<< std::endl;
2546  }
2547 #endif
2548  (*f_ci_Equ_ti_Node_Ptr) += +staticContributions[admsNodeID_ci].dx(admsProbeID_V_ti_GND);
2549 
2550 
2551 #ifdef Xyce_DEBUG_DEVICE
2552  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2553  {
2554  Xyce::dout() << " (*f_ci_Equ_ti_Node_Ptr) += " << +staticContributions[admsNodeID_ci].dx(admsProbeID_V_ti_GND)<< std::endl;
2555  }
2556 #endif
2558 
2559 
2560 #ifdef Xyce_DEBUG_DEVICE
2561  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2562  {
2563  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;
2564  }
2565 #endif
2566  (*f_bi_Equ_ci_Node_Ptr) += -staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci);
2567 
2568 
2569 #ifdef Xyce_DEBUG_DEVICE
2570  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2571  {
2572  Xyce::dout() << " (*f_bi_Equ_ci_Node_Ptr) += " << -staticContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci)<< std::endl;
2573  }
2574 #endif
2575  (*f_ci_Equ_bi_Node_Ptr) += +staticContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci);
2576 
2577 
2578 #ifdef Xyce_DEBUG_DEVICE
2579  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2580  {
2581  Xyce::dout() << " (*f_ci_Equ_bi_Node_Ptr) += " << +staticContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci)<< std::endl;
2582  }
2583 #endif
2585 
2586 
2587 #ifdef Xyce_DEBUG_DEVICE
2588  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2589  {
2591  }
2592 #endif
2593  (*f_bii_Equ_ti_Node_Ptr) += +staticContributions[admsNodeID_bii].dx(admsProbeID_V_ti_GND);
2594 
2595 
2596 #ifdef Xyce_DEBUG_DEVICE
2597  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2598  {
2599  Xyce::dout() << " (*f_bii_Equ_ti_Node_Ptr) += " << +staticContributions[admsNodeID_bii].dx(admsProbeID_V_ti_GND)<< std::endl;
2600  }
2601 #endif
2603 
2604 
2605 #ifdef Xyce_DEBUG_DEVICE
2606  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2607  {
2609  }
2610 #endif
2611  (*f_bii_Equ_ci_Node_Ptr) += -staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ci);
2612 
2613 
2614 #ifdef Xyce_DEBUG_DEVICE
2615  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2616  {
2617  Xyce::dout() << " (*f_bii_Equ_ci_Node_Ptr) += " << -staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ci)<< std::endl;
2618  }
2619 #endif
2621 
2622 
2623 #ifdef Xyce_DEBUG_DEVICE
2624  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2625  {
2626  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;
2627  }
2628 #endif
2629  (*f_bii_Equ_ei_Node_Ptr) += -staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ei);
2630 
2631 
2632 #ifdef Xyce_DEBUG_DEVICE
2633  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2634  {
2635  Xyce::dout() << " (*f_bii_Equ_ei_Node_Ptr) += " << -staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_ei)<< std::endl;
2636  }
2637 #endif
2638  (*f_ci_Equ_ei_Node_Ptr) += -staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei);
2639 
2640 
2641 #ifdef Xyce_DEBUG_DEVICE
2642  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2643  {
2644  Xyce::dout() << " (*f_ci_Equ_ei_Node_Ptr) += " << -staticContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei)<< std::endl;
2645  }
2646 #endif
2648 
2649 
2650 #ifdef Xyce_DEBUG_DEVICE
2651  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2652  {
2653  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;
2654  }
2655 #endif
2656  (*f_ei_Equ_ci_Node_Ptr) += -staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ci);
2657 
2658 
2659 #ifdef Xyce_DEBUG_DEVICE
2660  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2661  {
2662  Xyce::dout() << " (*f_ei_Equ_ci_Node_Ptr) += " << -staticContributions[admsNodeID_ei].dx(admsProbeID_V_bii_ci)<< std::endl;
2663  }
2664 #endif
2665  (*f_ei_Equ_ti_Node_Ptr) += +staticContributions[admsNodeID_ei].dx(admsProbeID_V_ti_GND);
2666 
2667 
2668 #ifdef Xyce_DEBUG_DEVICE
2669  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2670  {
2671  Xyce::dout() << " (*f_ei_Equ_ti_Node_Ptr) += " << +staticContributions[admsNodeID_ei].dx(admsProbeID_V_ti_GND)<< std::endl;
2672  }
2673 #endif
2675 
2676 
2677 #ifdef Xyce_DEBUG_DEVICE
2678  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2679  {
2681  }
2682 #endif
2683  (*f_ex_Equ_ti_Node_Ptr) += +staticContributions[admsNodeID_ex].dx(admsProbeID_V_ti_GND);
2684 
2685 
2686 #ifdef Xyce_DEBUG_DEVICE
2687  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2688  {
2689  Xyce::dout() << " (*f_ex_Equ_ti_Node_Ptr) += " << +staticContributions[admsNodeID_ex].dx(admsProbeID_V_ti_GND)<< std::endl;
2690  }
2691 #endif
2693 
2694 
2695 #ifdef Xyce_DEBUG_DEVICE
2696  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2697  {
2698  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;
2699  }
2700 #endif
2701  (*f_ex_Equ_ei_Node_Ptr) += -staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_ei);
2702 
2703 
2704 #ifdef Xyce_DEBUG_DEVICE
2705  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2706  {
2707  Xyce::dout() << " (*f_ex_Equ_ei_Node_Ptr) += " << -staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_ei)<< std::endl;
2708  }
2709 #endif
2710  (*f_ei_Equ_ex_Node_Ptr) += +staticContributions[admsNodeID_ei].dx(admsProbeID_V_ex_ei);
2711 
2712 
2713 #ifdef Xyce_DEBUG_DEVICE
2714  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2715  {
2716  Xyce::dout() << " (*f_ei_Equ_ex_Node_Ptr) += " << +staticContributions[admsNodeID_ei].dx(admsProbeID_V_ex_ei)<< std::endl;
2717  }
2718 #endif
2719  (*f_exx_Equ_ti_Node_Ptr) += +staticContributions[admsNodeID_exx].dx(admsProbeID_V_ti_GND);
2720 
2721 
2722 #ifdef Xyce_DEBUG_DEVICE
2723  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2724  {
2725  Xyce::dout() << " (*f_exx_Equ_ti_Node_Ptr) += " << +staticContributions[admsNodeID_exx].dx(admsProbeID_V_ti_GND)<< std::endl;
2726  }
2727 #endif
2729 
2730 
2731 #ifdef Xyce_DEBUG_DEVICE
2732  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2733  {
2734  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;
2735  }
2736 #endif
2737  (*f_exx_Equ_ei_Node_Ptr) += -staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_ei);
2738 
2739 
2740 #ifdef Xyce_DEBUG_DEVICE
2741  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2742  {
2743  Xyce::dout() << " (*f_exx_Equ_ei_Node_Ptr) += " << -staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_ei)<< std::endl;
2744  }
2745 #endif
2746  (*f_ei_Equ_exx_Node_Ptr) += +staticContributions[admsNodeID_ei].dx(admsProbeID_V_exx_ei);
2747 
2748 
2749 #ifdef Xyce_DEBUG_DEVICE
2750  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2751  {
2752  Xyce::dout() << " (*f_ei_Equ_exx_Node_Ptr) += " << +staticContributions[admsNodeID_ei].dx(admsProbeID_V_exx_ei)<< std::endl;
2753  }
2754 #endif
2755  (*f_cx_Equ_ti_Node_Ptr) += +staticContributions[admsNodeID_cx].dx(admsProbeID_V_ti_GND);
2756 
2757 
2758 #ifdef Xyce_DEBUG_DEVICE
2759  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2760  {
2761  Xyce::dout() << " (*f_cx_Equ_ti_Node_Ptr) += " << +staticContributions[admsNodeID_cx].dx(admsProbeID_V_ti_GND)<< std::endl;
2762  }
2763 #endif
2765 
2766 
2767 #ifdef Xyce_DEBUG_DEVICE
2768  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2769  {
2770  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;
2771  }
2772 #endif
2773  (*f_cx_Equ_ci_Node_Ptr) += -staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci);
2774 
2775 
2776 #ifdef Xyce_DEBUG_DEVICE
2777  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2778  {
2779  Xyce::dout() << " (*f_cx_Equ_ci_Node_Ptr) += " << -staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_ci)<< std::endl;
2780  }
2781 #endif
2782  (*f_ci_Equ_cx_Node_Ptr) += +staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci);
2783 
2784 
2785 #ifdef Xyce_DEBUG_DEVICE
2786  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2787  {
2788  Xyce::dout() << " (*f_ci_Equ_cx_Node_Ptr) += " << +staticContributions[admsNodeID_ci].dx(admsProbeID_V_cx_ci)<< std::endl;
2789  }
2790 #endif
2791  (*f_bii_Equ_bi_Node_Ptr) += -staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_bi);
2792 
2793 
2794 #ifdef Xyce_DEBUG_DEVICE
2795  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2796  {
2797  Xyce::dout() << " (*f_bii_Equ_bi_Node_Ptr) += " << -staticContributions[admsNodeID_bii].dx(admsProbeID_V_bii_bi)<< std::endl;
2798  }
2799 #endif
2800  (*f_bi_Equ_bii_Node_Ptr) += +staticContributions[admsNodeID_bi].dx(admsProbeID_V_bii_bi);
2801 
2802 
2803 #ifdef Xyce_DEBUG_DEVICE
2804  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2805  {
2806  Xyce::dout() << " (*f_bi_Equ_bii_Node_Ptr) += " << +staticContributions[admsNodeID_bi].dx(admsProbeID_V_bii_bi)<< std::endl;
2807  }
2808 #endif
2809  (*f_ex_Equ_bii_Node_Ptr) += -staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_bii);
2810 
2811 
2812 #ifdef Xyce_DEBUG_DEVICE
2813  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2814  {
2815  Xyce::dout() << " (*f_ex_Equ_bii_Node_Ptr) += " << -staticContributions[admsNodeID_ex].dx(admsProbeID_V_ex_bii)<< std::endl;
2816  }
2817 #endif
2818  (*f_bii_Equ_ex_Node_Ptr) += +staticContributions[admsNodeID_bii].dx(admsProbeID_V_ex_bii);
2819 
2820 
2821 #ifdef Xyce_DEBUG_DEVICE
2822  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2823  {
2824  Xyce::dout() << " (*f_bii_Equ_ex_Node_Ptr) += " << +staticContributions[admsNodeID_bii].dx(admsProbeID_V_ex_bii)<< std::endl;
2825  }
2826 #endif
2827  (*f_exx_Equ_bii_Node_Ptr) += -staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_bii);
2828 
2829 
2830 #ifdef Xyce_DEBUG_DEVICE
2831  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2832  {
2833  Xyce::dout() << " (*f_exx_Equ_bii_Node_Ptr) += " << -staticContributions[admsNodeID_exx].dx(admsProbeID_V_exx_bii)<< std::endl;
2834  }
2835 #endif
2836  (*f_bii_Equ_exx_Node_Ptr) += +staticContributions[admsNodeID_bii].dx(admsProbeID_V_exx_bii);
2837 
2838 
2839 #ifdef Xyce_DEBUG_DEVICE
2840  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2841  {
2842  Xyce::dout() << " (*f_bii_Equ_exx_Node_Ptr) += " << +staticContributions[admsNodeID_bii].dx(admsProbeID_V_exx_bii)<< std::endl;
2843  }
2844 #endif
2845  (*f_cx_Equ_bii_Node_Ptr) += -staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_bii);
2846 
2847 
2848 #ifdef Xyce_DEBUG_DEVICE
2849  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2850  {
2851  Xyce::dout() << " (*f_cx_Equ_bii_Node_Ptr) += " << -staticContributions[admsNodeID_cx].dx(admsProbeID_V_cx_bii)<< std::endl;
2852  }
2853 #endif
2854  (*f_bii_Equ_cx_Node_Ptr) += +staticContributions[admsNodeID_bii].dx(admsProbeID_V_cx_bii);
2855 
2856 
2857 #ifdef Xyce_DEBUG_DEVICE
2858  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2859  {
2860  Xyce::dout() << " (*f_bii_Equ_cx_Node_Ptr) += " << +staticContributions[admsNodeID_bii].dx(admsProbeID_V_cx_bii)<< std::endl;
2861  }
2862 #endif
2863  (*f_ti_Equ_bi_Node_Ptr) += +staticContributions[admsNodeID_ti].dx(admsProbeID_V_bi_ci);
2864 
2865 
2866 #ifdef Xyce_DEBUG_DEVICE
2867  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2868  {
2869  Xyce::dout() << " (*f_ti_Equ_bi_Node_Ptr) += " << +staticContributions[admsNodeID_ti].dx(admsProbeID_V_bi_ci)<< std::endl;
2870  }
2871 #endif
2873 
2874 
2875 #ifdef Xyce_DEBUG_DEVICE
2876  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2877  {
2879  }
2880 #endif
2882 
2883 
2884 #ifdef Xyce_DEBUG_DEVICE
2885  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2886  {
2887  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;
2888  }
2889 #endif
2891 
2892 
2893 #ifdef Xyce_DEBUG_DEVICE
2894  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2895  {
2896  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;
2897  }
2898 #endif
2900 
2901 
2902 #ifdef Xyce_DEBUG_DEVICE
2903  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2904  {
2905  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;
2906  }
2907 #endif
2908  (*f_t_Equ_t_Node_Ptr) += +staticContributions[admsNodeID_t].dx(admsProbeID_V_t_ti);
2909 
2910 
2911 #ifdef Xyce_DEBUG_DEVICE
2912  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2913  {
2914  Xyce::dout() << " (*f_t_Equ_t_Node_Ptr) += " << +staticContributions[admsNodeID_t].dx(admsProbeID_V_t_ti)<< std::endl;
2915  }
2916 #endif
2917  (*f_t_Equ_ti_Node_Ptr) += -staticContributions[admsNodeID_t].dx(admsProbeID_V_t_ti);
2918 
2919 
2920 #ifdef Xyce_DEBUG_DEVICE
2921  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2922  {
2923  Xyce::dout() << " (*f_t_Equ_ti_Node_Ptr) += " << -staticContributions[admsNodeID_t].dx(admsProbeID_V_t_ti)<< std::endl;
2924  }
2925 #endif
2926  (*f_ti_Equ_t_Node_Ptr) += +staticContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti);
2927 
2928 
2929 #ifdef Xyce_DEBUG_DEVICE
2930  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2931  {
2932  Xyce::dout() << " (*f_ti_Equ_t_Node_Ptr) += " << +staticContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti)<< std::endl;
2933  }
2934 #endif
2935  (*f_c_Equ_BRA_c_ci_Var_Ptr) += staticContributions[admsNodeID_c].dx(admsProbeID_I_c_ci);
2936 
2937 
2938 #ifdef Xyce_DEBUG_DEVICE
2939  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2940  {
2941  Xyce::dout() << " (*f_c_Equ_BRA_c_ci_Var_Ptr) += " <<staticContributions[admsNodeID_c].dx(admsProbeID_I_c_ci) << std::endl;
2942 
2943  }
2944 #endif
2945  (*f_b_Equ_BRA_b_bi_Var_Ptr) += staticContributions[admsNodeID_b].dx(admsProbeID_I_b_bi);
2946 
2947 
2948 #ifdef Xyce_DEBUG_DEVICE
2949  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2950  {
2951  Xyce::dout() << " (*f_b_Equ_BRA_b_bi_Var_Ptr) += " <<staticContributions[admsNodeID_b].dx(admsProbeID_I_b_bi) << std::endl;
2952 
2953  }
2954 #endif
2955  (*f_e_Equ_BRA_e_ei_Var_Ptr) += staticContributions[admsNodeID_e].dx(admsProbeID_I_e_ei);
2956 
2957 
2958 #ifdef Xyce_DEBUG_DEVICE
2959  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2960  {
2961  Xyce::dout() << " (*f_e_Equ_BRA_e_ei_Var_Ptr) += " <<staticContributions[admsNodeID_e].dx(admsProbeID_I_e_ei) << std::endl;
2962 
2963  }
2964 #endif
2965  (*f_ei_Equ_BRA_e_ei_Var_Ptr) += staticContributions[admsNodeID_ei].dx(admsProbeID_I_e_ei);
2966 
2967 
2968 #ifdef Xyce_DEBUG_DEVICE
2969  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2970  {
2971  Xyce::dout() << " (*f_ei_Equ_BRA_e_ei_Var_Ptr) += " <<staticContributions[admsNodeID_ei].dx(admsProbeID_I_e_ei) << std::endl;
2972 
2973  }
2974 #endif
2975  (*f_bi_Equ_BRA_b_bi_Var_Ptr) += staticContributions[admsNodeID_bi].dx(admsProbeID_I_b_bi);
2976 
2977 
2978 #ifdef Xyce_DEBUG_DEVICE
2979  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2980  {
2981  Xyce::dout() << " (*f_bi_Equ_BRA_b_bi_Var_Ptr) += " <<staticContributions[admsNodeID_bi].dx(admsProbeID_I_b_bi) << std::endl;
2982 
2983  }
2984 #endif
2985  (*f_ci_Equ_BRA_c_ci_Var_Ptr) += staticContributions[admsNodeID_ci].dx(admsProbeID_I_c_ci);
2986 
2987 
2988 #ifdef Xyce_DEBUG_DEVICE
2989  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
2990  {
2991  Xyce::dout() << " (*f_ci_Equ_BRA_c_ci_Var_Ptr) += " <<staticContributions[admsNodeID_ci].dx(admsProbeID_I_c_ci) << std::endl;
2992 
2993  }
2994 #endif
2995  // there also need to be extra loads for branch b,bi
2996  // Load for branch b,bi equ var b
2997  (*f_BRA_b_bi_Equ_b_Node_Ptr) += -1;
2998 
2999 #ifdef Xyce_DEBUG_DEVICE
3000  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3001  { Xyce::dout() << " (*f_BRA_b_bi_Equ_b_Node_Ptr) += " << -1<< std::endl;
3002 
3003  }
3004 #endif
3005  // Load for branch b,bi equ var bi
3006  (*f_BRA_b_bi_Equ_bi_Node_Ptr) += +1;
3007 
3008 #ifdef Xyce_DEBUG_DEVICE
3009  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3010  { Xyce::dout() << " (*f_BRA_b_bi_Equ_bi_Node_Ptr) += " << +1<< std::endl;
3011 
3012  }
3013 #endif
3014  //load for branch b,bi equ branch b,bi var
3015  (*f_BRA_b_bi_Equ_BRA_b_bi_Var_Ptr) += staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_b_bi);
3016 
3017 #ifdef Xyce_DEBUG_DEVICE
3018  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3019  {Xyce::dout() << " (*f_BRA_b_bi_Equ_BRA_b_bi_Var_Ptr) += " << staticContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_b_bi) << std::endl;
3020 
3021  }
3022 #endif
3023  // there also need to be extra loads for branch e,ei
3024  // Load for branch e,ei equ var e
3025  (*f_BRA_e_ei_Equ_e_Node_Ptr) += -1;
3026 
3027 #ifdef Xyce_DEBUG_DEVICE
3028  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3029  { Xyce::dout() << " (*f_BRA_e_ei_Equ_e_Node_Ptr) += " << -1<< std::endl;
3030 
3031  }
3032 #endif
3033  // Load for branch e,ei equ var ei
3034  (*f_BRA_e_ei_Equ_ei_Node_Ptr) += +1;
3035 
3036 #ifdef Xyce_DEBUG_DEVICE
3037  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3038  { Xyce::dout() << " (*f_BRA_e_ei_Equ_ei_Node_Ptr) += " << +1<< std::endl;
3039 
3040  }
3041 #endif
3042  //load for branch e,ei equ branch e,ei var
3043  (*f_BRA_e_ei_Equ_BRA_e_ei_Var_Ptr) += staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_e_ei);
3044 
3045 #ifdef Xyce_DEBUG_DEVICE
3046  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3047  {Xyce::dout() << " (*f_BRA_e_ei_Equ_BRA_e_ei_Var_Ptr) += " << staticContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_e_ei) << std::endl;
3048 
3049  }
3050 #endif
3051  // there also need to be extra loads for branch c,ci
3052  // Load for branch c,ci equ var c
3053  (*f_BRA_c_ci_Equ_c_Node_Ptr) += -1;
3054 
3055 #ifdef Xyce_DEBUG_DEVICE
3056  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3057  { Xyce::dout() << " (*f_BRA_c_ci_Equ_c_Node_Ptr) += " << -1<< std::endl;
3058 
3059  }
3060 #endif
3061  // Load for branch c,ci equ var ci
3062  (*f_BRA_c_ci_Equ_ci_Node_Ptr) += +1;
3063 
3064 #ifdef Xyce_DEBUG_DEVICE
3065  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3066  { Xyce::dout() << " (*f_BRA_c_ci_Equ_ci_Node_Ptr) += " << +1<< std::endl;
3067 
3068  }
3069 #endif
3070  //load for branch c,ci equ branch c,ci var
3071  (*f_BRA_c_ci_Equ_BRA_c_ci_Var_Ptr) += staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_c_ci);
3072 
3073 #ifdef Xyce_DEBUG_DEVICE
3074  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3075  {Xyce::dout() << " (*f_BRA_c_ci_Equ_BRA_c_ci_Var_Ptr) += " << staticContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_c_ci) << std::endl;
3076 
3077  }
3078 #endif
3079 
3080 
3081  return bsuccess;
3082 }
3083 
3084 
3085 //-----------------------------------------------------------------------------
3086 // Function : Instance::loadDAEdQdx
3087 // Purpose :
3088 // Special Notes : Load the dQdx ("dynamic jacobian") matrix
3089 // Scope : public
3090 // Creator : admsXml
3091 // Creation Date :
3092 //-----------------------------------------------------------------------------
3094 {
3095  bool bsuccess = true;
3096  N_LAS_Matrix * dQdxMatPtr = extData.dQdxMatrixPtr;
3097 
3098 #ifdef Xyce_DEBUG_DEVICE
3099  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3100  {
3101  Xyce::dout() << subsection_divider << std::endl;
3102  Xyce::dout() << "ADMSHBT_X::Instance::loadDAEdQdx (" << getName() << "):" << std::endl;
3103  }
3104 #endif
3105  (*q_bi_Equ_ti_Node_Ptr) += +dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ti_GND);
3106 
3107 
3108 #ifdef Xyce_DEBUG_DEVICE
3109  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3110  {
3111  Xyce::dout() << " (*q_bi_Equ_ti_Node_Ptr) += " << +dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_ti_GND)<< std::endl;
3112  }
3113 #endif
3114  (*q_ci_Equ_ti_Node_Ptr) += +dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ti_GND);
3115 
3116 
3117 #ifdef Xyce_DEBUG_DEVICE
3118  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3119  {
3120  Xyce::dout() << " (*q_ci_Equ_ti_Node_Ptr) += " << +dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_ti_GND)<< std::endl;
3121  }
3122 #endif
3123  (*q_bi_Equ_bi_Node_Ptr) += +dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci);
3124 
3125 
3126 #ifdef Xyce_DEBUG_DEVICE
3127  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3128  {
3129  Xyce::dout() << " (*q_bi_Equ_bi_Node_Ptr) += " << +dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci)<< std::endl;
3130  }
3131 #endif
3132  (*q_bi_Equ_ci_Node_Ptr) += -dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci);
3133 
3134 
3135 #ifdef Xyce_DEBUG_DEVICE
3136  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3137  {
3138  Xyce::dout() << " (*q_bi_Equ_ci_Node_Ptr) += " << -dynamicContributions[admsNodeID_bi].dx(admsProbeID_V_bi_ci)<< std::endl;
3139  }
3140 #endif
3141  (*q_ci_Equ_bi_Node_Ptr) += +dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci);
3142 
3143 
3144 #ifdef Xyce_DEBUG_DEVICE
3145  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3146  {
3147  Xyce::dout() << " (*q_ci_Equ_bi_Node_Ptr) += " << +dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bi_ci)<< std::endl;
3148  }
3149 #endif
3151 
3152 
3153 #ifdef Xyce_DEBUG_DEVICE
3154  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3155  {
3156  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;
3157  }
3158 #endif
3159  (*q_bii_Equ_ti_Node_Ptr) += +dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ti_GND);
3160 
3161 
3162 #ifdef Xyce_DEBUG_DEVICE
3163  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3164  {
3165  Xyce::dout() << " (*q_bii_Equ_ti_Node_Ptr) += " << +dynamicContributions[admsNodeID_bii].dx(admsProbeID_V_ti_GND)<< std::endl;
3166  }
3167 #endif
3169 
3170 
3171 #ifdef Xyce_DEBUG_DEVICE
3172  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3173  {
3174  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;
3175  }
3176 #endif
3178 
3179 
3180 #ifdef Xyce_DEBUG_DEVICE
3181  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3182  {
3183  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;
3184  }
3185 #endif
3187 
3188 
3189 #ifdef Xyce_DEBUG_DEVICE
3190  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3191  {
3192  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;
3193  }
3194 #endif
3196 
3197 
3198 #ifdef Xyce_DEBUG_DEVICE
3199  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3200  {
3201  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;
3202  }
3203 #endif
3204  (*q_ci_Equ_ei_Node_Ptr) += -dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei);
3205 
3206 
3207 #ifdef Xyce_DEBUG_DEVICE
3208  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3209  {
3210  Xyce::dout() << " (*q_ci_Equ_ei_Node_Ptr) += " << -dynamicContributions[admsNodeID_ci].dx(admsProbeID_V_bii_ei)<< std::endl;
3211  }
3212 #endif
3214 
3215 
3216 #ifdef Xyce_DEBUG_DEVICE
3217  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3218  {
3219  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;
3220  }
3221 #endif
3223 
3224 
3225 #ifdef Xyce_DEBUG_DEVICE
3226  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3227  {
3228  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;
3229  }
3230 #endif
3231  (*q_ei_Equ_ti_Node_Ptr) += +dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ti_GND);
3232 
3233 
3234 #ifdef Xyce_DEBUG_DEVICE
3235  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3236  {
3237  Xyce::dout() << " (*q_ei_Equ_ti_Node_Ptr) += " << +dynamicContributions[admsNodeID_ei].dx(admsProbeID_V_ti_GND)<< std::endl;
3238  }
3239 #endif
3241 
3242 
3243 #ifdef Xyce_DEBUG_DEVICE
3244  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3245  {
3246  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;
3247  }
3248 #endif
3250 
3251 
3252 #ifdef Xyce_DEBUG_DEVICE
3253  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3254  {
3255  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;
3256  }
3257 #endif
3259 
3260 
3261 #ifdef Xyce_DEBUG_DEVICE
3262  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3263  {
3264  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;
3265  }
3266 #endif
3267  (*q_b_Equ_c_Node_Ptr) += -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c);
3268 
3269 
3270 #ifdef Xyce_DEBUG_DEVICE
3271  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3272  {
3273  Xyce::dout() << " (*q_b_Equ_c_Node_Ptr) += " << -dynamicContributions[admsNodeID_b].dx(admsProbeID_V_b_c)<< std::endl;
3274  }
3275 #endif
3276  (*q_c_Equ_b_Node_Ptr) += +dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c);
3277 
3278 
3279 #ifdef Xyce_DEBUG_DEVICE
3280  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3281  {
3282  Xyce::dout() << " (*q_c_Equ_b_Node_Ptr) += " << +dynamicContributions[admsNodeID_c].dx(admsProbeID_V_b_c)<< std::endl;
3283  }
3284 #endif
3285  (*q_ti_Equ_ti_Node_Ptr) += -dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti);
3286 
3287 
3288 #ifdef Xyce_DEBUG_DEVICE
3289  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3290  {
3291  Xyce::dout() << " (*q_ti_Equ_ti_Node_Ptr) += " << -dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti)<< std::endl;
3292  }
3293 #endif
3294  (*q_t_Equ_t_Node_Ptr) += +dynamicContributions[admsNodeID_t].dx(admsProbeID_V_t_ti);
3295 
3296 
3297 #ifdef Xyce_DEBUG_DEVICE
3298  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3299  {
3300  Xyce::dout() << " (*q_t_Equ_t_Node_Ptr) += " << +dynamicContributions[admsNodeID_t].dx(admsProbeID_V_t_ti)<< std::endl;
3301  }
3302 #endif
3303  (*q_t_Equ_ti_Node_Ptr) += -dynamicContributions[admsNodeID_t].dx(admsProbeID_V_t_ti);
3304 
3305 
3306 #ifdef Xyce_DEBUG_DEVICE
3307  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3308  {
3309  Xyce::dout() << " (*q_t_Equ_ti_Node_Ptr) += " << -dynamicContributions[admsNodeID_t].dx(admsProbeID_V_t_ti)<< std::endl;
3310  }
3311 #endif
3312  (*q_ti_Equ_t_Node_Ptr) += +dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti);
3313 
3314 
3315 #ifdef Xyce_DEBUG_DEVICE
3316  if (getDeviceOptions().debugLevel > 0 && getSolverState().debugTimeFlag)
3317  {
3318  Xyce::dout() << " (*q_ti_Equ_t_Node_Ptr) += " << +dynamicContributions[admsNodeID_ti].dx(admsProbeID_V_t_ti)<< std::endl;
3319  }
3320 #endif
3321  (*q_c_Equ_BRA_c_ci_Var_Ptr) += dynamicContributions[admsNodeID_c].dx(admsProbeID_I_c_ci);
3322  (*q_b_Equ_BRA_b_bi_Var_Ptr) += dynamicContributions[admsNodeID_b].dx(admsProbeID_I_b_bi);
3323  (*q_e_Equ_BRA_e_ei_Var_Ptr) += dynamicContributions[admsNodeID_e].dx(admsProbeID_I_e_ei);
3324  (*q_ei_Equ_BRA_e_ei_Var_Ptr) += dynamicContributions[admsNodeID_ei].dx(admsProbeID_I_e_ei);
3325  (*q_bi_Equ_BRA_b_bi_Var_Ptr) += dynamicContributions[admsNodeID_bi].dx(admsProbeID_I_b_bi);
3326  (*q_ci_Equ_BRA_c_ci_Var_Ptr) += dynamicContributions[admsNodeID_ci].dx(admsProbeID_I_c_ci);
3327  // there also need to be extra loads for branch b,bi
3328  // Load for branch b,bi equ var b
3329  // Load for branch b,bi equ var bi
3330  //load for branch b,bi equ branch b,bi var
3331  (*q_BRA_b_bi_Equ_BRA_b_bi_Var_Ptr) += dynamicContributions[admsBRA_ID_b_bi].dx(admsProbeID_I_b_bi);
3332  // there also need to be extra loads for branch e,ei
3333  // Load for branch e,ei equ var e
3334  // Load for branch e,ei equ var ei
3335  //load for branch e,ei equ branch e,ei var
3336  (*q_BRA_e_ei_Equ_BRA_e_ei_Var_Ptr) += dynamicContributions[admsBRA_ID_e_ei].dx(admsProbeID_I_e_ei);
3337  // there also need to be extra loads for branch c,ci
3338  // Load for branch c,ci equ var c
3339  // Load for branch c,ci equ var ci
3340  //load for branch c,ci equ branch c,ci var
3341  (*q_BRA_c_ci_Equ_BRA_c_ci_Var_Ptr) += dynamicContributions[admsBRA_ID_c_ci].dx(admsProbeID_I_c_ci);
3342 
3343 
3344  return bsuccess;
3345 }
3346 
3347 //-----------------------------------------------------------------------------
3348 // Function : Instance::updateTemperature
3349 // Purpose : Set temperature and update any parameters that depend on it
3350 // Special Notes : In Xyce ADMS, we'll simply copy the temperature, which is
3351 // in Kelvin, to our "admsTemperature" variable, which needs
3352 // to be in Celsius.
3353 // Scope : public
3354 // Creator : admsXml
3355 // Creation Date :
3356 //-----------------------------------------------------------------------------
3357 bool Instance::updateTemperature(const double & temperatureTemp)
3358 {
3359 
3360  admsTemperature = temperatureTemp;
3361  adms_vt_nom = adms_vt(temperatureTemp);
3362 
3363  return true;
3364 }
3365 
3366 // Class Model
3367 //-----------------------------------------------------------------------------
3368 // Function : Model::processParams
3369 // Purpose :
3370 // Special Notes :
3371 // Scope : public
3372 // Creator : admsXml
3373 // Creation Date :
3374 //-----------------------------------------------------------------------------
3376 {
3377 
3378  // Now we need to check that any parameters are within their ranges as
3379  // specified in the verilog:
3380 
3381  // Parameter Mode : [ 0, 4 ]
3382  if ( (!((Mode >=0 && Mode <=4 ))) )
3383  {
3384  UserError0(*this) << "ADMSHBT_X: Parameter Mode value " << Mode << " out of range [ 0, 4 ]";
3385  }
3386 
3387  // Parameter Noise : [ 0, 4 ]
3388  if ( (!((Noise >=0 && Noise <=4 ))) )
3389  {
3390  UserError0(*this) << "ADMSHBT_X: Parameter Noise value " << Noise << " out of range [ 0, 4 ]";
3391  }
3392 
3393  // Parameter Debug : [ 0, (+inf) [
3394  if ( (!((Debug >=0))) )
3395  {
3396  UserError0(*this) << "ADMSHBT_X: Parameter Debug value " << Debug << " out of range [ 0, (+inf) [";
3397  }
3398 
3399  // Parameter DebugPlus : [ 0, (+inf) [
3400  if ( (!((DebugPlus >=0))) )
3401  {
3402  UserError0(*this) << "ADMSHBT_X: Parameter DebugPlus value " << DebugPlus << " out of range [ 0, (+inf) [";
3403  }
3404 
3405  // Parameter Rth : [ 0.0, (+inf) [
3406  if ( (!((Rth >=0.0))) )
3407  {
3408  UserError0(*this) << "ADMSHBT_X: Parameter Rth value " << Rth << " out of range [ 0.0, (+inf) [";
3409  }
3410 
3411  // Parameter Cth : [ 0.0, (+inf) [
3412  if ( (!((Cth >=0.0))) )
3413  {
3414  UserError0(*this) << "ADMSHBT_X: Parameter Cth value " << Cth << " out of range [ 0.0, (+inf) [";
3415  }
3416 
3417  // Parameter Jsf : [ 0.0, (+inf) [
3418  if ( (!((Jsf >=0.0))) )
3419  {
3420  UserError0(*this) << "ADMSHBT_X: Parameter Jsf value " << Jsf << " out of range [ 0.0, (+inf) [";
3421  }
3422 
3423  // Parameter nf : [ 0.0, (+inf) [
3424  if ( (!((nf >=0.0))) )
3425  {
3426  UserError0(*this) << "ADMSHBT_X: Parameter nf value " << nf << " out of range [ 0.0, (+inf) [";
3427  }
3428 
3429  // Parameter Vg : [ (-2.0), (+inf) [
3430  if ( (!((Vg >=(-2.0)))) )
3431  {
3432  UserError0(*this) << "ADMSHBT_X: Parameter Vg value " << Vg << " out of range [ (-2.0), (+inf) [";
3433  }
3434 
3435  // Parameter Jse : [ 0.0, (+inf) [
3436  if ( (!((Jse >=0.0))) )
3437  {
3438  UserError0(*this) << "ADMSHBT_X: Parameter Jse value " << Jse << " out of range [ 0.0, (+inf) [";
3439  }
3440 
3441  // Parameter ne : [ 0.0, (+inf) [
3442  if ( (!((ne >=0.0))) )
3443  {
3444  UserError0(*this) << "ADMSHBT_X: Parameter ne value " << ne << " out of range [ 0.0, (+inf) [";
3445  }
3446 
3447  // Parameter Rbxx : ] 0.0, (+inf) [
3448  if ( (!((Rbxx >0.0))) )
3449  {
3450  UserError0(*this) << "ADMSHBT_X: Parameter Rbxx value " << Rbxx << " out of range ] 0.0, (+inf) [";
3451  }
3452 
3453  // Parameter Vgb : [ 0.0, (+inf) [
3454  if ( (!((Vgb >=0.0))) )
3455  {
3456  UserError0(*this) << "ADMSHBT_X: Parameter Vgb value " << Vgb << " out of range [ 0.0, (+inf) [";
3457  }
3458 
3459  // Parameter Jsee : [ 0.0, (+inf) [
3460  if ( (!((Jsee >=0.0))) )
3461  {
3462  UserError0(*this) << "ADMSHBT_X: Parameter Jsee value " << Jsee << " out of range [ 0.0, (+inf) [";
3463  }
3464 
3465  // Parameter nee : [ 0.0, (+inf) [
3466  if ( (!((nee >=0.0))) )
3467  {
3468  UserError0(*this) << "ADMSHBT_X: Parameter nee value " << nee << " out of range [ 0.0, (+inf) [";
3469  }
3470 
3471  // Parameter Rbbxx : ] 0.0, (+inf) [
3472  if ( (!((Rbbxx >0.0))) )
3473  {
3474  UserError0(*this) << "ADMSHBT_X: Parameter Rbbxx value " << Rbbxx << " out of range ] 0.0, (+inf) [";
3475  }
3476 
3477  // Parameter Vgbb : [ 0.0, (+inf) [
3478  if ( (!((Vgbb >=0.0))) )
3479  {
3480  UserError0(*this) << "ADMSHBT_X: Parameter Vgbb value " << Vgbb << " out of range [ 0.0, (+inf) [";
3481  }
3482 
3483  // Parameter Jsr : [ 0.0, (+inf) [
3484  if ( (!((Jsr >=0.0))) )
3485  {
3486  UserError0(*this) << "ADMSHBT_X: Parameter Jsr value " << Jsr << " out of range [ 0.0, (+inf) [";
3487  }
3488 
3489  // Parameter nr : [ 0.0, (+inf) [
3490  if ( (!((nr >=0.0))) )
3491  {
3492  UserError0(*this) << "ADMSHBT_X: Parameter nr value " << nr << " out of range [ 0.0, (+inf) [";
3493  }
3494 
3495  // Parameter Vgr : [ 0.0, (+inf) [
3496  if ( (!((Vgr >=0.0))) )
3497  {
3498  UserError0(*this) << "ADMSHBT_X: Parameter Vgr value " << Vgr << " out of range [ 0.0, (+inf) [";
3499  }
3500 
3501  // Parameter XCjc : [ 0.0, 1.0 [
3502  if ( (!((XCjc >=0.0 && XCjc <1.0 ))) )
3503  {
3504  UserError0(*this) << "ADMSHBT_X: Parameter XCjc value " << XCjc << " out of range [ 0.0, 1.0 [";
3505  }
3506 
3507  // Parameter Jsc : [ 0.0, (+inf) [
3508  if ( (!((Jsc >=0.0))) )
3509  {
3510  UserError0(*this) << "ADMSHBT_X: Parameter Jsc value " << Jsc << " out of range [ 0.0, (+inf) [";
3511  }
3512 
3513  // Parameter nc : [ 0.0, (+inf) [
3514  if ( (!((nc >=0.0))) )
3515  {
3516  UserError0(*this) << "ADMSHBT_X: Parameter nc value " << nc << " out of range [ 0.0, (+inf) [";
3517  }
3518 
3519  // Parameter Rcxx : ] 0.0, (+inf) [
3520  if ( (!((Rcxx >0.0))) )
3521  {
3522  UserError0(*this) << "ADMSHBT_X: Parameter Rcxx value " << Rcxx << " out of range ] 0.0, (+inf) [";
3523  }
3524 
3525  // Parameter Vgc : [ 0.0, (+inf) [
3526  if ( (!((Vgc >=0.0))) )
3527  {
3528  UserError0(*this) << "ADMSHBT_X: Parameter Vgc value " << Vgc << " out of range [ 0.0, (+inf) [";
3529  }
3530 
3531  // Parameter Bf : [ 0.0, (+inf) [
3532  if ( (!((Bf >=0.0))) )
3533  {
3534  UserError0(*this) << "ADMSHBT_X: Parameter Bf value " << Bf << " out of range [ 0.0, (+inf) [";
3535  }
3536 
3537  // Parameter kBeta : [ 0.0, (+inf) [
3538  if ( (!((kBeta >=0.0))) )
3539  {
3540  UserError0(*this) << "ADMSHBT_X: Parameter kBeta value " << kBeta << " out of range [ 0.0, (+inf) [";
3541  }
3542 
3543  // Parameter Br : [ 0.0, (+inf) [
3544  if ( (!((Br >=0.0))) )
3545  {
3546  UserError0(*this) << "ADMSHBT_X: Parameter Br value " << Br << " out of range [ 0.0, (+inf) [";
3547  }
3548 
3549  // Parameter VAF : [ 0.0, (+inf) [
3550  if ( (!((VAF >=0.0))) )
3551  {
3552  UserError0(*this) << "ADMSHBT_X: Parameter VAF value " << VAF << " out of range [ 0.0, (+inf) [";
3553  }
3554 
3555  // Parameter VAR : [ 0.0, (+inf) [
3556  if ( (!((VAR >=0.0))) )
3557  {
3558  UserError0(*this) << "ADMSHBT_X: Parameter VAR value " << VAR << " out of range [ 0.0, (+inf) [";
3559  }
3560 
3561  // Parameter IKF : [ 0.0, (+inf) [
3562  if ( (!((IKF >=0.0))) )
3563  {
3564  UserError0(*this) << "ADMSHBT_X: Parameter IKF value " << IKF << " out of range [ 0.0, (+inf) [";
3565  }
3566 
3567  // Parameter IKR : [ 0.0, (+inf) [
3568  if ( (!((IKR >=0.0))) )
3569  {
3570  UserError0(*this) << "ADMSHBT_X: Parameter IKR value " << IKR << " out of range [ 0.0, (+inf) [";
3571  }
3572 
3573  // Parameter Mc : [ 0.0, (+inf) [
3574  if ( (!((Mc >=0.0))) )
3575  {
3576  UserError0(*this) << "ADMSHBT_X: Parameter Mc value " << Mc << " out of range [ 0.0, (+inf) [";
3577  }
3578 
3579  // Parameter BVceo : [ 0.0, (+inf) [
3580  if ( (!((BVceo >=0.0))) )
3581  {
3582  UserError0(*this) << "ADMSHBT_X: Parameter BVceo value " << BVceo << " out of range [ 0.0, (+inf) [";
3583  }
3584 
3585  // Parameter kc : [ 0.0, (+inf) [
3586  if ( (!((kc >=0.0))) )
3587  {
3588  UserError0(*this) << "ADMSHBT_X: Parameter kc value " << kc << " out of range [ 0.0, (+inf) [";
3589  }
3590 
3591  // Parameter BVebo : [ 0.0, (+inf) [
3592  if ( (!((BVebo >=0.0))) )
3593  {
3594  UserError0(*this) << "ADMSHBT_X: Parameter BVebo value " << BVebo << " out of range [ 0.0, (+inf) [";
3595  }
3596 
3597  // Parameter Tr : [ 0.0, (+inf) [
3598  if ( (!((Tr >=0.0))) )
3599  {
3600  UserError0(*this) << "ADMSHBT_X: Parameter Tr value " << Tr << " out of range [ 0.0, (+inf) [";
3601  }
3602 
3603  // Parameter Trx : [ 0.0, (+inf) [
3604  if ( (!((Trx >=0.0))) )
3605  {
3606  UserError0(*this) << "ADMSHBT_X: Parameter Trx value " << Trx << " out of range [ 0.0, (+inf) [";
3607  }
3608 
3609  // Parameter Tf : [ 0.0, (+inf) [
3610  if ( (!((Tf >=0.0))) )
3611  {
3612  UserError0(*this) << "ADMSHBT_X: Parameter Tf value " << Tf << " out of range [ 0.0, (+inf) [";
3613  }
3614 
3615  // Parameter Tft : [ 0.0, (+inf) [
3616  if ( (!((Tft >=0.0))) )
3617  {
3618  UserError0(*this) << "ADMSHBT_X: Parameter Tft value " << Tft << " out of range [ 0.0, (+inf) [";
3619  }
3620 
3621  // Parameter Thcs : [ 0.0, (+inf) [
3622  if ( (!((Thcs >=0.0))) )
3623  {
3624  UserError0(*this) << "ADMSHBT_X: Parameter Thcs value " << Thcs << " out of range [ 0.0, (+inf) [";
3625  }
3626 
3627  // Parameter Ahc : [ 0.0, (+inf) [
3628  if ( (!((Ahc >=0.0))) )
3629  {
3630  UserError0(*this) << "ADMSHBT_X: Parameter Ahc value " << Ahc << " out of range [ 0.0, (+inf) [";
3631  }
3632 
3633  // Parameter Cje : [ 0.0, (+inf) [
3634  if ( (!((Cje >=0.0))) )
3635  {
3636  UserError0(*this) << "ADMSHBT_X: Parameter Cje value " << Cje << " out of range [ 0.0, (+inf) [";
3637  }
3638 
3639  // Parameter mje : [ 0.0, 1 [
3640  if ( (!((mje >=0.0 && mje <1 ))) )
3641  {
3642  UserError0(*this) << "ADMSHBT_X: Parameter mje value " << mje << " out of range [ 0.0, 1 [";
3643  }
3644 
3645  // Parameter Vje : [ 0.0, (+inf) [
3646  if ( (!((Vje >=0.0))) )
3647  {
3648  UserError0(*this) << "ADMSHBT_X: Parameter Vje value " << Vje << " out of range [ 0.0, (+inf) [";
3649  }
3650 
3651  // Parameter Cjc : [ 0.0, (+inf) [
3652  if ( (!((Cjc >=0.0))) )
3653  {
3654  UserError0(*this) << "ADMSHBT_X: Parameter Cjc value " << Cjc << " out of range [ 0.0, (+inf) [";
3655  }
3656 
3657  // Parameter mjc : [ 0.0, (+inf) [
3658  if ( (!((mjc >=0.0))) )
3659  {
3660  UserError0(*this) << "ADMSHBT_X: Parameter mjc value " << mjc << " out of range [ 0.0, (+inf) [";
3661  }
3662 
3663  // Parameter Vjc : [ 0.0, (+inf) [
3664  if ( (!((Vjc >=0.0))) )
3665  {
3666  UserError0(*this) << "ADMSHBT_X: Parameter Vjc value " << Vjc << " out of range [ 0.0, (+inf) [";
3667  }
3668 
3669  // Parameter kjc : ] (-inf) (+inf) [
3670 
3671  // Parameter Cmin : [ 0.0, (+inf) [
3672  if ( (!((Cmin >=0.0))) )
3673  {
3674  UserError0(*this) << "ADMSHBT_X: Parameter Cmin value " << Cmin << " out of range [ 0.0, (+inf) [";
3675  }
3676 
3677  // Parameter J0 : [ 0.0, (+inf) [
3678  if ( (!((J0 >=0.0))) )
3679  {
3680  UserError0(*this) << "ADMSHBT_X: Parameter J0 value " << J0 << " out of range [ 0.0, (+inf) [";
3681  }
3682 
3683  // Parameter XJ0 : [ 0.0, 1.0 ]
3684  if ( (!((XJ0 >=0.0 && XJ0 <=1.0 ))) )
3685  {
3686  UserError0(*this) << "ADMSHBT_X: Parameter XJ0 value " << XJ0 << " out of range [ 0.0, 1.0 ]";
3687  }
3688 
3689  // Parameter Rci0 : ] 0.0, (+inf) [
3690  if ( (!((Rci0 >0.0))) )
3691  {
3692  UserError0(*this) << "ADMSHBT_X: Parameter Rci0 value " << Rci0 << " out of range ] 0.0, (+inf) [";
3693  }
3694 
3695  // Parameter Jk : [ 0.0, (+inf) [
3696  if ( (!((Jk >=0.0))) )
3697  {
3698  UserError0(*this) << "ADMSHBT_X: Parameter Jk value " << Jk << " out of range [ 0.0, (+inf) [";
3699  }
3700 
3701  // Parameter RJk : [ 0.0, (+inf) [
3702  if ( (!((RJk >=0.0))) )
3703  {
3704  UserError0(*this) << "ADMSHBT_X: Parameter RJk value " << RJk << " out of range [ 0.0, (+inf) [";
3705  }
3706 
3707  // Parameter Vces : [ 0.0, (+inf) [
3708  if ( (!((Vces >=0.0))) )
3709  {
3710  UserError0(*this) << "ADMSHBT_X: Parameter Vces value " << Vces << " out of range [ 0.0, (+inf) [";
3711  }
3712 
3713  // Parameter Rc : ] 0.0, (+inf) [
3714  if ( (!((Rc >0.0))) )
3715  {
3716  UserError0(*this) << "ADMSHBT_X: Parameter Rc value " << Rc << " out of range ] 0.0, (+inf) [";
3717  }
3718 
3719  // Parameter Re : ] 0.0, (+inf) [
3720  if ( (!((Re >0.0))) )
3721  {
3722  UserError0(*this) << "ADMSHBT_X: Parameter Re value " << Re << " out of range ] 0.0, (+inf) [";
3723  }
3724 
3725  // Parameter Rb : ] 0.0, (+inf) [
3726  if ( (!((Rb >0.0))) )
3727  {
3728  UserError0(*this) << "ADMSHBT_X: Parameter Rb value " << Rb << " out of range ] 0.0, (+inf) [";
3729  }
3730 
3731  // Parameter Rb2 : ] 0.0, (+inf) [
3732  if ( (!((Rb2 >0.0))) )
3733  {
3734  UserError0(*this) << "ADMSHBT_X: Parameter Rb2 value " << Rb2 << " out of range ] 0.0, (+inf) [";
3735  }
3736 
3737  // Parameter Lc : [ 0.0, (+inf) [
3738  if ( (!((Lc >=0.0))) )
3739  {
3740  UserError0(*this) << "ADMSHBT_X: Parameter Lc value " << Lc << " out of range [ 0.0, (+inf) [";
3741  }
3742 
3743  // Parameter Le : [ 0.0, (+inf) [
3744  if ( (!((Le >=0.0))) )
3745  {
3746  UserError0(*this) << "ADMSHBT_X: Parameter Le value " << Le << " out of range [ 0.0, (+inf) [";
3747  }
3748 
3749  // Parameter Lb : [ 0.0, (+inf) [
3750  if ( (!((Lb >=0.0))) )
3751  {
3752  UserError0(*this) << "ADMSHBT_X: Parameter Lb value " << Lb << " out of range [ 0.0, (+inf) [";
3753  }
3754 
3755  // Parameter Cq : [ 0.0, (+inf) [
3756  if ( (!((Cq >=0.0))) )
3757  {
3758  UserError0(*this) << "ADMSHBT_X: Parameter Cq value " << Cq << " out of range [ 0.0, (+inf) [";
3759  }
3760 
3761  // Parameter Cpb : [ 0.0, (+inf) [
3762  if ( (!((Cpb >=0.0))) )
3763  {
3764  UserError0(*this) << "ADMSHBT_X: Parameter Cpb value " << Cpb << " out of range [ 0.0, (+inf) [";
3765  }
3766 
3767  // Parameter Cpc : [ 0.0, (+inf) [
3768  if ( (!((Cpc >=0.0))) )
3769  {
3770  UserError0(*this) << "ADMSHBT_X: Parameter Cpc value " << Cpc << " out of range [ 0.0, (+inf) [";
3771  }
3772 
3773  // Parameter Tnom : [ (-273.15), (+inf) [
3774  if ( (!((Tnom >=(-273.15)))) )
3775  {
3776  UserError0(*this) << "ADMSHBT_X: Parameter Tnom value " << Tnom << " out of range [ (-273.15), (+inf) [";
3777  }
3778 
3779  // Parameter dtype : [ (-1), 1 ][ 0, 0 ]
3780  if ( (!((dtype >=(-1) && dtype <=1 )) || (dtype >=0 && dtype <=0 )) )
3781  {
3782  UserError0(*this) << "ADMSHBT_X: Parameter dtype value " << dtype << " out of range [ (-1), 1 ] or in excluded range [ 0, 0 ]";
3783  }
3784 
3785 
3786  // and of course, this routine is where we should put the initial_model
3787  // stuff
3788 
3789 
3790  return true;
3791 }
3792 //----------------------------------------------------------------------------
3793 // Function : Model::processInstanceParams
3794 // Purpose :
3795 // Special Notes :
3796 // Scope : public
3797 // Creator :
3798 // Creation Date :
3799 //----------------------------------------------------------------------------
3801 {
3802 
3803  std::vector<Instance*>::iterator iter;
3804  std::vector<Instance*>::iterator first = instanceContainer.begin();
3805  std::vector<Instance*>::iterator last = instanceContainer.end();
3806 
3807  for (iter=first; iter!=last; ++iter)
3808  {
3809  (*iter)->processParams();
3810  }
3811 
3812  return true;
3813 }
3814 
3815 //-----------------------------------------------------------------------------
3816 // Function : Model::Model
3817 // Purpose : model block constructor
3818 // Special Notes :
3819 // Scope : public
3820 // Creator :
3821 // Creation Date :
3822 //-----------------------------------------------------------------------------
3824  const Configuration & configuration,
3825  const ModelBlock & model_block,
3826  const FactoryBlock & factory_block)
3827  : DeviceModel(model_block, configuration.getModelParameters(), factory_block),
3828  Mode(1),
3829  Noise(1),
3830  Debug(0),
3831  DebugPlus(0),
3832  Rth(0.1),
3833  Cth(700*1.0e-9),
3834  Jsf(20e-24),
3835  nf(1.0),
3836  Vg(1.3),
3837  Jse(0.0),
3838  ne(0.0),
3839  Rbxx(1e6),
3840  Vgb(0.0),
3841  Jsee(0.0),
3842  nee(0.0),
3843  Rbbxx(1e6),
3844  Vgbb(0.0),
3845  Jsr(20e-18),
3846  nr(1.0),
3847  Vgr(0.0),
3848  XCjc(0.5),
3849  Jsc(0.0),
3850  nc(0.0),
3851  Rcxx(1e6),
3852  Vgc(0.0),
3853  Bf(100.0),
3854  kBeta(0.0),
3855  Br(1.0),
3856  VAF(0.0),
3857  VAR(0.0),
3858  IKF(0.0),
3859  IKR(0.0),
3860  Mc(0.0),
3861  BVceo(0.0),
3862  kc(0.0),
3863  BVebo(0.0),
3864  Tr(1*1.0e-15),
3865  Trx(1*1.0e-15),
3866  Tf(1*1.0e-12),
3867  Tft(0.0),
3868  Thcs(0.0),
3869  Ahc(0.0),
3870  Cje(1*1.0e-15),
3871  mje(0.5),
3872  Vje(1.3),
3873  Cjc(1*1.0e-15),
3874  mjc(0.5),
3875  Vjc(1.3),
3876  kjc(1.0),
3877  Cmin(0.1*1.0e-15),
3878  J0(1e-3),
3879  XJ0(1.0),
3880  Rci0(1e-3),
3881  Jk(4e-4),
3882  RJk(1e-3),
3883  Vces(1e-3),
3884  Rc(1.0),
3885  Re(1.0),
3886  Rb(1.0),
3887  Rb2(1.0),
3888  Lc(0.0),
3889  Le(0.0),
3890  Lb(0.0),
3891  Cq(0.0),
3892  Cpb(0.0),
3893  Cpc(0.0),
3894  Tnom(20.0),
3895  dtype(1)
3896 {
3897  // Set params to constant default values (from parTable):
3898  setDefaultParams();
3899 
3900  // Set params according to .model line and constant defaults from metadata:
3901  setModParams(model_block.params);
3902 
3903  // Set any non-constant parameter defaults:
3904  // Set any parameters that were not given and whose defaults depend on other
3905  // parameters:
3906 
3907 
3908  if (!given("XYCEADMSMODTEMP"))
3909  admsModTemp=getDeviceOptions().temp.getImmutableValue<double>();
3910 
3911  // Fix the TNOM parameter that has "helpfully" been converted to Kelvin
3912  // by the DeviceEntity class
3913 
3914  if (given("TNOM"))
3915  Tnom -= CONSTCtoK;
3916 
3917  // Calculate any parameters specified as expressions:
3918 
3920 
3921  // calculate dependent (ie computed) params and check for errors:
3922 
3923  // Manually inserted these two lines:
3924  if (getType() == "pnp" || getType() == "PNP")
3925  dtype = -1;
3926 
3927  processParams ();
3928 }
3929 
3930 //-----------------------------------------------------------------------------
3931 // Function : Model::~Model
3932 // Purpose : destructor
3933 // Special Notes :
3934 // Scope : public
3935 // Creator :
3936 // Creation Date :
3937 //-----------------------------------------------------------------------------
3939 {
3940  std::vector<Instance*>::iterator iterI;
3941  std::vector<Instance*>::iterator firstI = instanceContainer.begin ();
3942  std::vector<Instance*>::iterator lastI = instanceContainer.end ();
3943 
3944  // loop over instances:
3945  for (iterI = firstI; iterI != lastI; ++iterI)
3946  {
3947  delete (*iterI);
3948  }
3949 }
3950 
3951 //-----------------------------------------------------------------------------
3952 // Function : Model::printOutInstances
3953 // Purpose : debugging tool.
3954 // Special Notes :
3955 // Scope : public
3956 // Creator :
3957 // Creation Date :
3958 //-----------------------------------------------------------------------------
3959 std::ostream &Model::printOutInstances(std::ostream &os) const
3960 {
3961  std::vector<Instance*>::const_iterator iter;
3962  std::vector<Instance*>::const_iterator first = instanceContainer.begin();
3963  std::vector<Instance*>::const_iterator last = instanceContainer.end();
3964 
3965  int i;
3966  os << std::endl;
3967  os << " name model name Parameters" << std::endl;
3968  for (i=0, iter=first; iter!=last; ++iter, ++i)
3969  {
3970  os << " " << i << ": " << (*iter)->getName() << " ";
3971  os << getName();
3972 
3973  os << std::endl;
3974  os << "TEMP = " << (*iter)->Temp << std::endl;
3975  os << "N = " << (*iter)->N << std::endl;
3976  os << "L = " << (*iter)->L << std::endl;
3977  os << "W = " << (*iter)->W << std::endl;
3978  os << std::endl;
3979  }
3980 
3981  os << std::endl;
3982 
3983  return os;
3984 }
3985 
3986 //-----------------------------------------------------------------------------
3987 // Function : Model::forEachInstance
3988 // Purpose :
3989 // Special Notes :
3990 // Scope : public
3991 // Creator : David Baur
3992 // Creation Date : 2/4/2014
3993 //-----------------------------------------------------------------------------
3994 /// Apply a device instance "op" to all instances associated with this
3995 /// model
3996 ///
3997 /// @param[in] op Operator to apply to all instances.
3998 ///
3999 ///
4000 void Model::forEachInstance(DeviceInstanceOp &op) const /* override */
4001 {
4002  for (std::vector<Instance *>::const_iterator it = instanceContainer.begin(); it != instanceContainer.end(); ++it)
4003  op(*it);
4004 }
4005 
4006 Device *Traits::factory(const Configuration &configuration, const FactoryBlock &factory_block)
4007 {
4008  return new DeviceMaster<Traits>(configuration, factory_block, factory_block.solverState_, factory_block.deviceOptions_);
4009 }
4010 
4012 {
4014  .registerDevice("q", 23)
4015  .registerModelType("npn", 23)
4016  .registerModelType("pnp", 23);
4017 }
4018 
4019 
4020 
4021 } // namespace ADMSHBT_X
4022 } // namespace Device
4023 } // namespace Xyce