From c94120cbf958c7a287355e22d1c0354d3e760f18 Mon Sep 17 00:00:00 2001 From: Markus Mueller Date: Mon, 1 Jun 2020 14:30:40 +0200 Subject: [PATCH] first hicum convergence with SH --- output_ngspice_dc.ngspice | 30 ++++ src/spicelib/devices/hicum2/hicum2.c | 1 + src/spicelib/devices/hicum2/hicum2ask.c | 3 + src/spicelib/devices/hicum2/hicum2conv.c | 20 ++- src/spicelib/devices/hicum2/hicum2defs.h | 8 +- src/spicelib/devices/hicum2/hicum2getic.c | 4 + src/spicelib/devices/hicum2/hicum2load.c | 13 ++ src/spicelib/devices/hicum2/hicum2param.c | 4 + src/spicelib/devices/hicum2/hicumL2.cpp | 181 ++++++++++++---------- 9 files changed, 177 insertions(+), 87 deletions(-) diff --git a/output_ngspice_dc.ngspice b/output_ngspice_dc.ngspice index 35472a6e8..e877597d0 100644 --- a/output_ngspice_dc.ngspice +++ b/output_ngspice_dc.ngspice @@ -379,3 +379,33 @@ 2.00000000e+00 1.00000000e+00 1.36982667e+03 -1.89862216e+01 0.00000000e+00 3.38971970e-15 2.67839855e-15 6.38858410e-15 4.78059983e-15 0.00000000e+00 0.00000000e+00 2.18307477e+12 2.62438762e-15 0.00000000e+00 0.00000000e+00 -4.00000000e-18 -2.00000000e-18 -3.01906360e-33 7.59448865e-17 3.19625139e-02 0.00000000e+00 0.00000000e+00 -6.99448865e-17 -2.00000000e-18 6.99448865e-17 1.00000000e+00 0.00000000e+00 1.83514391e+01 3.35143910e+00 1.00000000e+01 1.99941623e+00 5.00000000e+17 5.00000000e+17 3.80896136e+14 2.19604996e+16 5.00000000e+17 2.68500000e+01 4.93335981e-13 3.00000000e+02 7.59188864e-35 0.00000000e+00 0.00000000e+00 -2.00000000e+00 -6.92160082e-17 -6.70287820e-18 0.00000000e+00 2.00000000e+00 0.00000000e+00 4.00000000e-18 4.00000000e-27 0.00000000e+00 2.00000000e+00 2.00000000e+00 2.00000000e+00 6.99449565e-20 6.99448865e-26 0.00000000e+00 2.00000000e-27 0.00000000e+00 0.00000000e+00 2.00000000e+00 1.39918886e-16 2.00000200e-21 4.00000000e-18 0.00000000e+00 6.99448865e-17 2.00000000e-18 2.00000000e+00 1.00000000e+00 9.55379684e+04 9.35541367e+01 0.00000000e+00 3.42973994e-15 2.68597980e-15 6.49556737e-15 4.82929539e-15 0.00000000e+00 0.00000000e+00 2.16872634e+12 1.90884478e-13 0.00000000e+00 0.00000000e+00 5.29588111e-17 -1.88888900e-18 5.67365891e-17 4.95451585e-15 3.19625139e-02 0.00000000e+00 0.00000000e+00 -5.00558578e-15 -2.00000000e-18 4.94873808e-15 1.00000000e+00 0.00000000e+00 1.82845339e+01 3.28453386e+00 1.00000000e+01 1.99941623e+00 5.00000000e+17 5.00000000e+17 5.23874319e+12 5.01503301e+14 5.00000000e+17 2.68500000e+01 4.88281100e-13 3.00000000e+02 -1.11111000e-19 0.00000000e+00 0.00000000e+00 -1.88888900e+00 1.11111000e-01 1.80411242e-16 0.00000000e+00 2.00000000e+00 0.00000000e+00 1.11111000e-01 1.11111000e-01 1.11111000e-01 2.00000000e+00 2.00000000e+00 2.00000000e+00 5.00559078e-18 5.00558578e-24 0.00000000e+00 2.00000000e-27 0.00000000e+00 0.00000000e+00 2.00000000e+00 1.00132550e-14 2.00000200e-21 0.00000000e+00 0.00000000e+00 5.00558578e-15 2.00000000e-18 2.00000000e+00 1.00000000e+00 6.91497550e+06 1.35697609e+02 0.00000000e+00 3.47203065e-15 2.69538166e-15 6.62162431e-15 4.88713124e-15 0.00000000e+00 0.00000000e+00 2.15058655e+12 1.38296475e-11 0.00000000e+00 0.00000000e+00 2.64419246e-15 -1.77777800e-18 2.64774801e-15 3.58810593e-13 3.19625139e-02 0.00000000e+00 0.00000000e+00 -3.61453008e-13 -2.00000000e-18 3.58805038e-13 1.00000000e+00 0.00000000e+00 1.82192342e+01 3.21923425e+00 1.00000000e+01 1.99941623e+00 5.00000000e+17 5.00000000e+17 7.23084175e+10 1.09713802e+13 5.00000000e+17 2.68500000e+01 4.83114548e-13 3.00000000e+02 -2.22222000e-19 0.00000000e+00 0.00000000e+00 -1.77777800e+00 2.22222000e-01 8.52096171e-15 0.00000000e+00 2.00000000e+00 0.00000000e+00 2.22222000e-01 2.22222000e-01 2.22222000e-01 2.00000000e+00 2.00000000e+00 2.00000000e+00 3.61453370e-16 3.61453008e-22 0.00000000e+00 2.00000000e-27 0.00000000e+00 0.00000000e+00 2.00000000e+00 7.23056464e-13 2.00000200e-21 0.00000000e+00 0.00000000e+00 3.61453008e-13 2.00000000e-18 + n_c @q_q_h[area] @q_q_h[betaac] @q_q_h[betadc] @q_q_h[ccs] @q_q_h[cmui] @q_q_h[cmux] @q_q_h[cpii] @q_q_h[cpix] @q_q_h[crbi] @q_q_h[dtsh] @q_q_h[ft] @q_q_h[gmi] @q_q_h[gms] @q_q_h[iavl] @q_q_h[ib] @q_q_h[ibci] @q_q_h[ibei] @q_q_h[ic] @q_q_h[ick] @q_q_h[icvb] @q_q_h[icvc] @q_q_h[ie] @q_q_h[is] @q_q_h[it] @q_q_h[m] @q_q_h[p] @q_q_h[rb] @q_q_h[rbi] @q_q_h[rcx_t] @q_q_h[re_t] @q_q_h[rmui] @q_q_h[rmux] @q_q_h[roi] @q_q_h[rpii] @q_q_h[rpix] @q_q_h[temp] @q_q_h[tf] @q_q_h[tk] @q_q_h[vbbp] @q_q_h[vbc] @q_q_h[vbe] @q_q_h[vbici] @q_q_h[vbiei] @q_q_h[vbpbi] @q_q_h[vce] @q_q_h[vciei] @q_q_h[vsc] n_b n_b_forced n_bx n_c n_c_forced n_cx n_e n_e_forced n_ex n_s n_sx n_t q_q_h#collCI q_q_h#emitEI q_q_h#subsSI v_v_b#branch v_v_c#branch v_v_e#branch v_v_s#branch + 9.99998505e-01 1.00000000e+00 3.38101001e+04 6.90055211e+02 0.00000000e+00 4.62422050e-15 3.21673801e-15 2.00384503e-14 5.15386052e-15 0.00000000e+00 0.00000000e+00 1.69149103e+12 2.22120610e-02 0.00000000e+00 0.00000000e+00 1.08311930e-06 -6.89788767e-17 1.08311930e-06 7.47412116e-04 2.75500466e-02 0.00000000e+00 0.00000000e+00 -7.48511897e-04 -9.92524384e-19 7.47412116e-04 1.00000000e+00 0.00000000e+00 1.77677402e+01 2.76774017e+00 1.00000000e+01 1.99941623e+00 1.41764568e+17 3.27754676e+17 4.50205858e+01 2.68299686e+04 1.49532054e+06 2.68500000e+01 3.93533566e-13 3.00000000e+02 -1.66617861e-08 0.00000000e+00 0.00000000e+00 -1.92543881e-01 7.98482419e-01 2.99779279e-06 0.00000000e+00 9.91026300e-01 0.00000000e+00 7.99999998e-01 7.99999999e-01 8.00000000e-01 9.99998505e-01 9.99999253e-01 1.00000000e+00 1.49702379e-06 7.48511897e-07 0.00000000e+00 9.92524384e-22 0.00000000e+00 0.00000000e+00 9.92524384e-01 1.49808386e-03 1.98504877e-21 -1.09978112e-06 -7.47412116e-04 7.48511897e-04 9.92524384e-19 + n_c @q_q_h[area] @q_q_h[betaac] @q_q_h[betadc] @q_q_h[ccs] @q_q_h[cmui] @q_q_h[cmux] @q_q_h[cpii] @q_q_h[cpix] @q_q_h[crbi] @q_q_h[dtsh] @q_q_h[ft] @q_q_h[gmi] @q_q_h[gms] @q_q_h[iavl] @q_q_h[ib] @q_q_h[ibci] @q_q_h[ibei] @q_q_h[ic] @q_q_h[ick] @q_q_h[icvb] @q_q_h[icvc] @q_q_h[ie] @q_q_h[is] @q_q_h[it] @q_q_h[m] @q_q_h[p] @q_q_h[rb] @q_q_h[rbi] @q_q_h[rcx_t] @q_q_h[re_t] @q_q_h[rmui] @q_q_h[rmux] @q_q_h[roi] @q_q_h[rpii] @q_q_h[rpix] @q_q_h[temp] @q_q_h[tf] @q_q_h[tk] @q_q_h[vbbp] @q_q_h[vbc] @q_q_h[vbe] @q_q_h[vbici] @q_q_h[vbiei] @q_q_h[vbpbi] @q_q_h[vce] @q_q_h[vciei] @q_q_h[vsc] n_b n_b_forced n_bx n_c n_c_forced n_cx n_e n_e_forced n_ex n_s n_sx n_t q_q_h#collCI q_q_h#emitEI q_q_h#subsSI v_v_b#branch v_v_c#branch v_v_e#branch v_v_s#branch + 9.99998505e-01 1.00000000e+00 3.38101001e+04 6.90055211e+02 0.00000000e+00 4.62422050e-15 3.21673801e-15 2.00384503e-14 5.15386052e-15 0.00000000e+00 0.00000000e+00 1.69149103e+12 2.22120610e-02 0.00000000e+00 0.00000000e+00 1.08311930e-06 -6.89788767e-17 1.08311930e-06 7.47412116e-04 2.75500466e-02 0.00000000e+00 0.00000000e+00 -7.48511897e-04 -9.92524384e-19 7.47412116e-04 1.00000000e+00 0.00000000e+00 1.77677402e+01 2.76774017e+00 1.00000000e+01 1.99941623e+00 1.41764568e+17 3.27754676e+17 4.50205858e+01 2.68299686e+04 1.49532054e+06 2.68500000e+01 3.93533566e-13 3.00000000e+02 -1.66617861e-08 0.00000000e+00 0.00000000e+00 -1.92543881e-01 7.98482419e-01 2.99779279e-06 0.00000000e+00 9.91026300e-01 0.00000000e+00 7.99999998e-01 7.99999999e-01 8.00000000e-01 9.99998505e-01 9.99999253e-01 1.00000000e+00 1.49702379e-06 7.48511897e-07 0.00000000e+00 9.92524384e-22 0.00000000e+00 0.00000000e+00 9.92524384e-01 1.49808386e-03 1.98504877e-21 -1.09978112e-06 -7.47412116e-04 7.48511897e-04 9.92524384e-19 + n_c @q_q_h[area] @q_q_h[betaac] @q_q_h[betadc] @q_q_h[ccs] @q_q_h[cmui] @q_q_h[cmux] @q_q_h[cpii] @q_q_h[cpix] @q_q_h[crbi] @q_q_h[dtsh] @q_q_h[ft] @q_q_h[gmi] @q_q_h[gms] @q_q_h[iavl] @q_q_h[ib] @q_q_h[ibci] @q_q_h[ibei] @q_q_h[ic] @q_q_h[ick] @q_q_h[icvb] @q_q_h[icvc] @q_q_h[ie] @q_q_h[is] @q_q_h[it] @q_q_h[m] @q_q_h[p] @q_q_h[rb] @q_q_h[rbi] @q_q_h[rcx_t] @q_q_h[re_t] @q_q_h[rmui] @q_q_h[rmux] @q_q_h[roi] @q_q_h[rpii] @q_q_h[rpix] @q_q_h[temp] @q_q_h[tf] @q_q_h[tk] @q_q_h[vbbp] @q_q_h[vbc] @q_q_h[vbe] @q_q_h[vbici] @q_q_h[vbiei] @q_q_h[vbpbi] @q_q_h[vce] @q_q_h[vciei] @q_q_h[vsc] n_b n_b_forced n_bx n_c n_c_forced n_cx n_e n_e_forced n_ex n_s n_sx n_t q_q_h#collCI q_q_h#emitEI q_q_h#subsSI v_v_b#branch v_v_c#branch v_v_e#branch v_v_s#branch + 9.99998505e-01 1.00000000e+00 3.38101001e+04 6.90055211e+02 0.00000000e+00 4.62422050e-15 3.21673801e-15 2.00384503e-14 5.15386052e-15 0.00000000e+00 0.00000000e+00 1.69149103e+12 2.22120610e-02 0.00000000e+00 0.00000000e+00 1.08311930e-06 -6.89788767e-17 1.08311930e-06 7.47412116e-04 2.75500466e-02 0.00000000e+00 0.00000000e+00 -7.48511897e-04 -9.92524384e-19 7.47412116e-04 1.00000000e+00 0.00000000e+00 1.77677402e+01 2.76774017e+00 1.00000000e+01 1.99941623e+00 1.41764568e+17 3.27754676e+17 4.50205858e+01 2.68299686e+04 1.49532054e+06 2.68500000e+01 3.93533566e-13 3.00000000e+02 -1.66617861e-08 0.00000000e+00 0.00000000e+00 -1.92543881e-01 7.98482419e-01 2.99779279e-06 0.00000000e+00 9.91026300e-01 0.00000000e+00 7.99999998e-01 7.99999999e-01 8.00000000e-01 9.99998505e-01 9.99999253e-01 1.00000000e+00 1.49702379e-06 7.48511897e-07 0.00000000e+00 9.92524384e-22 0.00000000e+00 0.00000000e+00 9.92524384e-01 1.49808386e-03 1.98504877e-21 -1.09978112e-06 -7.47412116e-04 7.48511897e-04 9.92524384e-19 + n_c @q_q_h[area] @q_q_h[betaac] @q_q_h[betadc] @q_q_h[ccs] @q_q_h[cmui] @q_q_h[cmux] @q_q_h[cpii] @q_q_h[cpix] @q_q_h[crbi] @q_q_h[dtsh] @q_q_h[ft] @q_q_h[gmi] @q_q_h[gms] @q_q_h[iavl] @q_q_h[ib] @q_q_h[ibci] @q_q_h[ibei] @q_q_h[ic] @q_q_h[ick] @q_q_h[icvb] @q_q_h[icvc] @q_q_h[ie] @q_q_h[is] @q_q_h[it] @q_q_h[m] @q_q_h[p] @q_q_h[rb] @q_q_h[rbi] @q_q_h[rcx_t] @q_q_h[re_t] @q_q_h[rmui] @q_q_h[rmux] @q_q_h[roi] @q_q_h[rpii] @q_q_h[rpix] @q_q_h[temp] @q_q_h[tf] @q_q_h[tk] @q_q_h[vbbp] @q_q_h[vbc] @q_q_h[vbe] @q_q_h[vbici] @q_q_h[vbiei] @q_q_h[vbpbi] @q_q_h[vce] @q_q_h[vciei] @q_q_h[vsc] n_b n_b_forced n_bx n_c n_c_forced n_cx n_e n_e_forced n_ex n_s n_sx n_t q_q_h#collCI q_q_h#emitEI q_q_h#subsSI v_v_b#branch v_v_c#branch v_v_e#branch v_v_s#branch + 9.99998505e-01 1.00000000e+00 3.38101001e+04 6.90055211e+02 0.00000000e+00 4.62422050e-15 3.21673801e-15 2.00384503e-14 5.15386052e-15 0.00000000e+00 0.00000000e+00 1.69149103e+12 2.22120610e-02 0.00000000e+00 0.00000000e+00 1.08311930e-06 -6.89788767e-17 1.08311930e-06 7.47412116e-04 2.75500466e-02 0.00000000e+00 0.00000000e+00 -7.48511897e-04 -9.92524384e-19 7.47412116e-04 1.00000000e+00 0.00000000e+00 1.77677402e+01 2.76774017e+00 1.00000000e+01 1.99941623e+00 1.41764568e+17 3.27754676e+17 4.50205858e+01 2.68299686e+04 1.49532054e+06 2.68500000e+01 3.93533566e-13 3.00000000e+02 -1.66617861e-08 0.00000000e+00 0.00000000e+00 -1.92543881e-01 7.98482419e-01 2.99779279e-06 0.00000000e+00 9.91026300e-01 0.00000000e+00 7.99999998e-01 7.99999999e-01 8.00000000e-01 9.99998505e-01 9.99999253e-01 1.00000000e+00 1.49702379e-06 7.48511897e-07 0.00000000e+00 9.92524384e-22 0.00000000e+00 0.00000000e+00 9.92524384e-01 1.49808386e-03 1.98504877e-21 -1.09978112e-06 -7.47412116e-04 7.48511897e-04 9.92524384e-19 + n_c @q_q_h[area] @q_q_h[betaac] @q_q_h[betadc] @q_q_h[ccs] @q_q_h[cmui] @q_q_h[cmux] @q_q_h[cpii] @q_q_h[cpix] @q_q_h[crbi] @q_q_h[dtsh] @q_q_h[ft] @q_q_h[gmi] @q_q_h[gms] @q_q_h[iavl] @q_q_h[ib] @q_q_h[ibci] @q_q_h[ibei] @q_q_h[ic] @q_q_h[ick] @q_q_h[icvb] @q_q_h[icvc] @q_q_h[ie] @q_q_h[is] @q_q_h[it] @q_q_h[m] @q_q_h[p] @q_q_h[rb] @q_q_h[rbi] @q_q_h[rcx_t] @q_q_h[re_t] @q_q_h[rmui] @q_q_h[rmux] @q_q_h[roi] @q_q_h[rpii] @q_q_h[rpix] @q_q_h[temp] @q_q_h[tf] @q_q_h[tk] @q_q_h[vbbp] @q_q_h[vbc] @q_q_h[vbe] @q_q_h[vbici] @q_q_h[vbiei] @q_q_h[vbpbi] @q_q_h[vce] @q_q_h[vciei] @q_q_h[vsc] n_b n_b_forced n_bx n_c n_c_forced n_cx n_e n_e_forced n_ex n_s n_sx n_t q_q_h#collCI q_q_h#emitEI q_q_h#subsSI v_v_b#branch v_v_c#branch v_v_e#branch v_v_s#branch + 9.99998505e-01 1.00000000e+00 3.38101001e+04 6.90055211e+02 0.00000000e+00 4.62422050e-15 3.21673801e-15 2.00384503e-14 5.15386052e-15 0.00000000e+00 0.00000000e+00 1.69149103e+12 2.22120610e-02 0.00000000e+00 0.00000000e+00 1.08311930e-06 -6.89788767e-17 1.08311930e-06 7.47412116e-04 2.75500466e-02 0.00000000e+00 0.00000000e+00 -7.48511897e-04 -9.92524384e-19 7.47412116e-04 1.00000000e+00 0.00000000e+00 1.77677402e+01 2.76774017e+00 1.00000000e+01 1.99941623e+00 1.41764568e+17 3.27754676e+17 4.50205858e+01 2.68299686e+04 1.49532054e+06 2.68500000e+01 3.93533566e-13 3.00000000e+02 -1.66617861e-08 0.00000000e+00 0.00000000e+00 -1.92543881e-01 7.98482419e-01 2.99779279e-06 0.00000000e+00 9.91026300e-01 0.00000000e+00 7.99999998e-01 7.99999999e-01 8.00000000e-01 9.99998505e-01 9.99999253e-01 1.00000000e+00 1.49702379e-06 7.48511897e-07 0.00000000e+00 9.92524384e-22 0.00000000e+00 0.00000000e+00 9.92524384e-01 1.49808386e-03 1.98504877e-21 -1.09978112e-06 -7.47412116e-04 7.48511897e-04 9.92524384e-19 + n_c @q_q_h[area] @q_q_h[betaac] @q_q_h[betadc] @q_q_h[ccs] @q_q_h[cmui] @q_q_h[cmux] @q_q_h[cpii] @q_q_h[cpix] @q_q_h[crbi] @q_q_h[dtsh] @q_q_h[ft] @q_q_h[gmi] @q_q_h[gms] @q_q_h[iavl] @q_q_h[ib] @q_q_h[ibci] @q_q_h[ibei] @q_q_h[ic] @q_q_h[ick] @q_q_h[icvb] @q_q_h[icvc] @q_q_h[ie] @q_q_h[is] @q_q_h[it] @q_q_h[m] @q_q_h[p] @q_q_h[rb] @q_q_h[rbi] @q_q_h[rcx_t] @q_q_h[re_t] @q_q_h[rmui] @q_q_h[rmux] @q_q_h[roi] @q_q_h[rpii] @q_q_h[rpix] @q_q_h[temp] @q_q_h[tf] @q_q_h[tk] @q_q_h[vbbp] @q_q_h[vbc] @q_q_h[vbe] @q_q_h[vbici] @q_q_h[vbiei] @q_q_h[vbpbi] @q_q_h[vce] @q_q_h[vciei] @q_q_h[vsc] n_b n_b_forced n_bx n_c n_c_forced n_cx n_e n_e_forced n_ex n_s n_sx n_t q_q_h#collCI q_q_h#emitEI q_q_h#subsSI v_v_b#branch v_v_c#branch v_v_e#branch v_v_s#branch + 9.99998505e-01 1.00000000e+00 3.38101001e+04 6.90055211e+02 0.00000000e+00 4.62422050e-15 3.21673801e-15 2.00384503e-14 5.15386052e-15 0.00000000e+00 0.00000000e+00 1.69149103e+12 2.22120610e-02 0.00000000e+00 0.00000000e+00 1.08311930e-06 -6.89788767e-17 1.08311930e-06 7.47412116e-04 2.75500466e-02 0.00000000e+00 0.00000000e+00 -7.48511897e-04 -9.92524384e-19 7.47412116e-04 1.00000000e+00 0.00000000e+00 1.77677402e+01 2.76774017e+00 1.00000000e+01 1.99941623e+00 1.41764568e+17 3.27754676e+17 4.50205858e+01 2.68299686e+04 1.49532054e+06 2.68500000e+01 3.93533566e-13 3.00000000e+02 -1.66617861e-08 0.00000000e+00 0.00000000e+00 -1.92543881e-01 7.98482419e-01 2.99779279e-06 0.00000000e+00 9.91026300e-01 0.00000000e+00 7.99999998e-01 7.99999999e-01 8.00000000e-01 9.99998505e-01 9.99999253e-01 1.00000000e+00 1.49702379e-06 7.48511897e-07 0.00000000e+00 9.92524384e-22 0.00000000e+00 0.00000000e+00 9.92524384e-01 1.49808386e-03 1.98504877e-21 -1.09978112e-06 -7.47412116e-04 7.48511897e-04 9.92524384e-19 + n_c @q_q_h[area] @q_q_h[betaac] @q_q_h[betadc] @q_q_h[ccs] @q_q_h[cmui] @q_q_h[cmux] @q_q_h[cpii] @q_q_h[cpix] @q_q_h[crbi] @q_q_h[dtsh] @q_q_h[ft] @q_q_h[gmi] @q_q_h[gms] @q_q_h[iavl] @q_q_h[ib] @q_q_h[ibci] @q_q_h[ibei] @q_q_h[ic] @q_q_h[ick] @q_q_h[icvb] @q_q_h[icvc] @q_q_h[ie] @q_q_h[is] @q_q_h[it] @q_q_h[m] @q_q_h[p] @q_q_h[rb] @q_q_h[rbi] @q_q_h[rcx_t] @q_q_h[re_t] @q_q_h[rmui] @q_q_h[rmux] @q_q_h[roi] @q_q_h[rpii] @q_q_h[rpix] @q_q_h[temp] @q_q_h[tf] @q_q_h[tk] @q_q_h[vbbp] @q_q_h[vbc] @q_q_h[vbe] @q_q_h[vbici] @q_q_h[vbiei] @q_q_h[vbpbi] @q_q_h[vce] @q_q_h[vciei] @q_q_h[vsc] n_b n_b_forced n_bx n_c n_c_forced n_cx n_e n_e_forced n_ex n_s n_sx n_t q_q_h#collCI q_q_h#emitEI q_q_h#subsSI v_v_b#branch v_v_c#branch v_v_e#branch v_v_s#branch + 9.99998505e-01 1.00000000e+00 3.38101001e+04 6.90055211e+02 0.00000000e+00 4.62422050e-15 3.21673801e-15 2.00384503e-14 5.15386052e-15 0.00000000e+00 0.00000000e+00 1.69149103e+12 2.22120610e-02 0.00000000e+00 0.00000000e+00 1.08311930e-06 -6.89788767e-17 1.08311930e-06 7.47412116e-04 2.75500466e-02 0.00000000e+00 0.00000000e+00 -7.48511897e-04 -9.92524384e-19 7.47412116e-04 1.00000000e+00 0.00000000e+00 1.77677402e+01 2.76774017e+00 1.00000000e+01 1.99941623e+00 1.41764568e+17 3.27754676e+17 4.50205858e+01 2.68299686e+04 1.49532054e+06 2.68500000e+01 3.93533566e-13 3.00000000e+02 -1.66617861e-08 0.00000000e+00 0.00000000e+00 -1.92543881e-01 7.98482419e-01 2.99779279e-06 0.00000000e+00 9.91026300e-01 0.00000000e+00 7.99999998e-01 7.99999999e-01 8.00000000e-01 9.99998505e-01 9.99999253e-01 1.00000000e+00 1.49702379e-06 7.48511897e-07 0.00000000e+00 9.92524384e-22 0.00000000e+00 0.00000000e+00 9.92524384e-01 1.49808386e-03 1.98504877e-21 -1.09978112e-06 -7.47412116e-04 7.48511897e-04 9.92524384e-19 + n_c @q_q_h[area] @q_q_h[betaac] @q_q_h[betadc] @q_q_h[ccs] @q_q_h[cmui] @q_q_h[cmux] @q_q_h[cpii] @q_q_h[cpix] @q_q_h[crbi] @q_q_h[dtsh] @q_q_h[ft] @q_q_h[gmi] @q_q_h[gms] @q_q_h[iavl] @q_q_h[ib] @q_q_h[ibci] @q_q_h[ibei] @q_q_h[ic] @q_q_h[ick] @q_q_h[icvb] @q_q_h[icvc] @q_q_h[ie] @q_q_h[is] @q_q_h[it] @q_q_h[m] @q_q_h[p] @q_q_h[rb] @q_q_h[rbi] @q_q_h[rcx_t] @q_q_h[re_t] @q_q_h[rmui] @q_q_h[rmux] @q_q_h[roi] @q_q_h[rpii] @q_q_h[rpix] @q_q_h[temp] @q_q_h[tf] @q_q_h[tk] @q_q_h[vbbp] @q_q_h[vbc] @q_q_h[vbe] @q_q_h[vbici] @q_q_h[vbiei] @q_q_h[vbpbi] @q_q_h[vce] @q_q_h[vciei] @q_q_h[vsc] n_b n_b_forced n_bx n_c n_c_forced n_cx n_e n_e_forced n_ex n_s n_sx n_t q_q_h#collCI q_q_h#emitEI q_q_h#subsSI v_v_b#branch v_v_c#branch v_v_e#branch v_v_s#branch + 9.99998505e-01 1.00000000e+00 3.38101001e+04 6.90055211e+02 0.00000000e+00 4.62422050e-15 3.21673801e-15 2.00384503e-14 5.15386052e-15 0.00000000e+00 0.00000000e+00 1.69149103e+12 2.22120610e-02 0.00000000e+00 0.00000000e+00 1.08311930e-06 -6.89788767e-17 1.08311930e-06 7.47412116e-04 2.75500466e-02 0.00000000e+00 0.00000000e+00 -7.48511897e-04 -9.92524384e-19 7.47412116e-04 1.00000000e+00 0.00000000e+00 1.77677402e+01 2.76774017e+00 1.00000000e+01 1.99941623e+00 1.41764568e+17 3.27754676e+17 4.50205858e+01 2.68299686e+04 1.49532054e+06 2.68500000e+01 3.93533566e-13 3.00000000e+02 -1.66617861e-08 0.00000000e+00 0.00000000e+00 -1.92543881e-01 7.98482419e-01 2.99779279e-06 0.00000000e+00 9.91026300e-01 0.00000000e+00 7.99999998e-01 7.99999999e-01 8.00000000e-01 9.99998505e-01 9.99999253e-01 1.00000000e+00 1.49702379e-06 7.48511897e-07 0.00000000e+00 9.92524384e-22 0.00000000e+00 0.00000000e+00 9.92524384e-01 1.49808386e-03 1.98504877e-21 -1.09978112e-06 -7.47412116e-04 7.48511897e-04 9.92524384e-19 + n_c @q_q_h[area] @q_q_h[betaac] @q_q_h[betadc] @q_q_h[ccs] @q_q_h[cmui] @q_q_h[cmux] @q_q_h[cpii] @q_q_h[cpix] @q_q_h[crbi] @q_q_h[dtsh] @q_q_h[ft] @q_q_h[gmi] @q_q_h[gms] @q_q_h[iavl] @q_q_h[ib] @q_q_h[ibci] @q_q_h[ibei] @q_q_h[ic] @q_q_h[ick] @q_q_h[icvb] @q_q_h[icvc] @q_q_h[ie] @q_q_h[is] @q_q_h[it] @q_q_h[m] @q_q_h[p] @q_q_h[rb] @q_q_h[rbi] @q_q_h[rcx_t] @q_q_h[re_t] @q_q_h[rmui] @q_q_h[rmux] @q_q_h[roi] @q_q_h[rpii] @q_q_h[rpix] @q_q_h[temp] @q_q_h[tf] @q_q_h[tk] @q_q_h[vbbp] @q_q_h[vbc] @q_q_h[vbe] @q_q_h[vbici] @q_q_h[vbiei] @q_q_h[vbpbi] @q_q_h[vce] @q_q_h[vciei] @q_q_h[vsc] n_b n_b_forced n_bx n_c n_c_forced n_cx n_e n_e_forced n_ex n_s n_sx n_t q_q_h#collCI q_q_h#emitEI q_q_h#subsSI v_v_b#branch v_v_c#branch v_v_e#branch v_v_s#branch + 9.99986895e-01 1.00000000e+00 6.05588375e+03 2.92818876e+02 0.00000000e+00 4.88566501e-15 3.34968241e-15 1.09378120e-13 5.15386490e-15 0.00000000e+00 0.00000000e+00 1.61012982e+12 1.34550599e-01 0.00000000e+00 0.00000000e+00 2.23766250e-05 -4.59823484e-17 2.23766250e-05 6.55229820e-03 2.72192278e-02 0.00000000e+00 0.00000000e+00 -6.57524480e-03 -9.34463913e-19 6.55229820e-03 1.00000000e+00 0.00000000e+00 1.76127233e+01 2.61272331e+00 1.00000000e+01 1.99941623e+00 1.37703740e+15 5.43025471e+15 7.43214828e+00 1.29620266e+03 4.37120234e+04 2.68500000e+01 4.08055860e-13 3.00000000e+02 -5.69973870e-07 0.00000000e+00 0.00000000e+00 -3.48666222e-02 8.86437490e-01 5.84639382e-05 0.00000000e+00 9.21304112e-01 0.00000000e+00 8.99999954e-01 8.99999977e-01 9.00000000e-01 9.99986895e-01 9.99993448e-01 1.00000000e+00 1.31504896e-05 6.57524480e-06 0.00000000e+00 9.34463913e-22 0.00000000e+00 0.00000000e+00 9.34463913e-01 1.31598017e-02 1.86892783e-21 -2.29465990e-05 -6.55229820e-03 6.57524480e-03 9.34463913e-19 + n_c @q_q_h[area] @q_q_h[betaac] @q_q_h[betadc] @q_q_h[ccs] @q_q_h[cmui] @q_q_h[cmux] @q_q_h[cpii] @q_q_h[cpix] @q_q_h[crbi] @q_q_h[dtsh] @q_q_h[ft] @q_q_h[gmi] @q_q_h[gms] @q_q_h[iavl] @q_q_h[ib] @q_q_h[ibci] @q_q_h[ibei] @q_q_h[ic] @q_q_h[ick] @q_q_h[icvb] @q_q_h[icvc] @q_q_h[ie] @q_q_h[is] @q_q_h[it] @q_q_h[m] @q_q_h[p] @q_q_h[rb] @q_q_h[rbi] @q_q_h[rcx_t] @q_q_h[re_t] @q_q_h[rmui] @q_q_h[rmux] @q_q_h[roi] @q_q_h[rpii] @q_q_h[rpix] @q_q_h[temp] @q_q_h[tf] @q_q_h[tk] @q_q_h[vbbp] @q_q_h[vbc] @q_q_h[vbe] @q_q_h[vbici] @q_q_h[vbiei] @q_q_h[vbpbi] @q_q_h[vce] @q_q_h[vciei] @q_q_h[vsc] n_b n_b_forced n_bx n_c n_c_forced n_cx n_e n_e_forced n_ex n_s n_sx n_t q_q_h#collCI q_q_h#emitEI q_q_h#subsSI v_v_b#branch v_v_c#branch v_v_e#branch v_v_s#branch + 9.99986872e-01 1.00000000e+00 6.06655802e+03 2.92540722e+02 0.00000000e+00 4.88631431e-15 3.34993226e-15 1.09640708e-13 5.15330127e-15 0.00000000e+00 1.77663229e-01 1.60986206e+12 1.34828676e-01 0.00000000e+00 0.00000000e+00 2.24657598e-05 -4.69917380e-17 2.24657598e-05 6.57214960e-03 2.72185233e-02 0.00000000e+00 0.00000000e+00 -6.59518579e-03 -9.34345602e-19 6.57214960e-03 1.00000000e+00 6.05399414e-03 1.76123682e+01 2.61236817e+00 1.00000000e+01 2.00010765e+00 1.33956149e+15 5.28276203e+15 7.41681985e+00 1.29180579e+03 4.37027622e+04 2.70276632e+01 4.08292234e-13 3.00177663e+02 -5.70432271e-07 0.00000000e+00 0.00000000e+00 -3.47492149e-02 8.86409691e-01 5.85938736e-05 0.00000000e+00 9.21158906e-01 0.00000000e+00 8.99999954e-01 8.99999977e-01 9.00000000e-01 9.99986872e-01 9.99993436e-01 1.00000000e+00 1.31742502e-05 6.58712510e-06 0.00000000e+00 9.34345602e-22 0.00000000e+00 6.04660384e-02 9.34345602e-01 1.31866964e-02 1.86869120e-21 -2.29981734e-05 -6.56412693e-03 6.58712510e-03 9.34345602e-19 + n_c @q_q_h[area] @q_q_h[betaac] @q_q_h[betadc] @q_q_h[ccs] @q_q_h[cmui] @q_q_h[cmux] @q_q_h[cpii] @q_q_h[cpix] @q_q_h[crbi] @q_q_h[dtsh] @q_q_h[ft] @q_q_h[gmi] @q_q_h[gms] @q_q_h[iavl] @q_q_h[ib] @q_q_h[ibci] @q_q_h[ibei] @q_q_h[ic] @q_q_h[ick] @q_q_h[icvb] @q_q_h[icvc] @q_q_h[ie] @q_q_h[is] @q_q_h[it] @q_q_h[m] @q_q_h[p] @q_q_h[rb] @q_q_h[rbi] @q_q_h[rcx_t] @q_q_h[re_t] @q_q_h[rmui] @q_q_h[rmux] @q_q_h[roi] @q_q_h[rpii] @q_q_h[rpix] @q_q_h[temp] @q_q_h[tf] @q_q_h[tk] @q_q_h[vbbp] @q_q_h[vbc] @q_q_h[vbe] @q_q_h[vbici] @q_q_h[vbiei] @q_q_h[vbpbi] @q_q_h[vce] @q_q_h[vciei] @q_q_h[vsc] n_b n_b_forced n_bx n_c n_c_forced n_cx n_e n_e_forced n_ex n_s n_sx n_t q_q_h#collCI q_q_h#emitEI q_q_h#subsSI v_v_b#branch v_v_c#branch v_v_e#branch v_v_s#branch + 1.99993462e+00 1.00000000e+00 1.64642558e+04 5.88325281e+01 0.00000000e+00 4.39505687e-15 3.03484914e-15 2.52605793e-13 4.01194200e-15 0.00000000e+00 3.00000000e+02 1.64796612e+12 1.54352898e-01 0.00000000e+00 0.00000000e+00 3.24540595e-04 -1.11543545e-07 3.24680265e-04 1.90935437e-02 3.00089374e-02 8.99978471e-01 1.99995735e+00 -1.94185522e-02 -1.67301019e-18 1.90934040e-02 1.00000000e+00 2.95657930e-02 1.73370516e+01 2.33705157e+00 1.00000000e+01 2.99712413e+00 1.51159806e+11 8.91493256e+11 6.47866034e+00 1.77142969e+02 1.06489178e+05 3.26850000e+02 8.39160364e-13 6.00000000e+02 -4.67929331e-07 0.00000000e+00 0.00000000e+00 -7.93275404e-01 7.55206628e-01 2.42884130e-03 0.00000000e+00 1.54848203e+00 0.00000000e+00 8.99997622e-01 8.99998811e-01 9.00000000e-01 1.99993462e+00 1.99996731e+00 2.00000000e+00 6.77627501e-05 3.38813751e-05 0.00000000e+00 1.67301019e-21 0.00000000e+00 2.89649952e+02 1.67301019e+00 1.24528160e-01 3.34602039e-21 -1.18893283e-03 -3.26924422e-02 3.38813751e-02 1.67301019e-18 + n_c @q_q_h[area] @q_q_h[betaac] @q_q_h[betadc] @q_q_h[ccs] @q_q_h[cmui] @q_q_h[cmux] @q_q_h[cpii] @q_q_h[cpix] @q_q_h[crbi] @q_q_h[dtsh] @q_q_h[ft] @q_q_h[gmi] @q_q_h[gms] @q_q_h[iavl] @q_q_h[ib] @q_q_h[ibci] @q_q_h[ibei] @q_q_h[ic] @q_q_h[ick] @q_q_h[icvb] @q_q_h[icvc] @q_q_h[ie] @q_q_h[is] @q_q_h[it] @q_q_h[m] @q_q_h[p] @q_q_h[rb] @q_q_h[rbi] @q_q_h[rcx_t] @q_q_h[re_t] @q_q_h[rmui] @q_q_h[rmux] @q_q_h[roi] @q_q_h[rpii] @q_q_h[rpix] @q_q_h[temp] @q_q_h[tf] @q_q_h[tk] @q_q_h[vbbp] @q_q_h[vbc] @q_q_h[vbe] @q_q_h[vbici] @q_q_h[vbiei] @q_q_h[vbpbi] @q_q_h[vce] @q_q_h[vciei] @q_q_h[vsc] n_b n_b_forced n_bx n_c n_c_forced n_cx n_e n_e_forced n_ex n_s n_sx n_t q_q_h#collCI q_q_h#emitEI q_q_h#subsSI v_v_b#branch v_v_c#branch v_v_e#branch v_v_s#branch + 1.99993462e+00 1.00000000e+00 1.64642558e+04 5.88325281e+01 0.00000000e+00 4.39505687e-15 3.03484914e-15 2.52605793e-13 4.01194200e-15 0.00000000e+00 3.00000000e+02 1.64796612e+12 1.54352898e-01 0.00000000e+00 0.00000000e+00 3.24540595e-04 -1.11543545e-07 3.24680265e-04 1.90935437e-02 3.00089374e-02 8.99978471e-01 1.99995735e+00 -1.94185522e-02 -1.67301019e-18 1.90934040e-02 1.00000000e+00 2.95657930e-02 1.73370516e+01 2.33705157e+00 1.00000000e+01 2.99712413e+00 1.51159806e+11 8.91493256e+11 6.47866034e+00 1.77142969e+02 1.06489178e+05 3.26850000e+02 8.39160364e-13 6.00000000e+02 -4.67929331e-07 0.00000000e+00 0.00000000e+00 -7.93275404e-01 7.55206628e-01 2.42884130e-03 0.00000000e+00 1.54848203e+00 0.00000000e+00 8.99997622e-01 8.99998811e-01 9.00000000e-01 1.99993462e+00 1.99996731e+00 2.00000000e+00 6.77627501e-05 3.38813751e-05 0.00000000e+00 1.67301019e-21 0.00000000e+00 2.89649952e+02 1.67301019e+00 1.24528160e-01 3.34602039e-21 -1.18893283e-03 -3.26924422e-02 3.38813751e-02 1.67301019e-18 + n_c @q_q_h[area] @q_q_h[betaac] @q_q_h[betadc] @q_q_h[ccs] @q_q_h[cmui] @q_q_h[cmux] @q_q_h[cpii] @q_q_h[cpix] @q_q_h[crbi] @q_q_h[dtsh] @q_q_h[ft] @q_q_h[gmi] @q_q_h[gms] @q_q_h[iavl] @q_q_h[ib] @q_q_h[ibci] @q_q_h[ibei] @q_q_h[ic] @q_q_h[ick] @q_q_h[icvb] @q_q_h[icvc] @q_q_h[ie] @q_q_h[is] @q_q_h[it] @q_q_h[m] @q_q_h[p] @q_q_h[rb] @q_q_h[rbi] @q_q_h[rcx_t] @q_q_h[re_t] @q_q_h[rmui] @q_q_h[rmux] @q_q_h[roi] @q_q_h[rpii] @q_q_h[rpix] @q_q_h[temp] @q_q_h[tf] @q_q_h[tk] @q_q_h[vbbp] @q_q_h[vbc] @q_q_h[vbe] @q_q_h[vbici] @q_q_h[vbiei] @q_q_h[vbpbi] @q_q_h[vce] @q_q_h[vciei] @q_q_h[vsc] n_b n_b_forced n_bx n_c n_c_forced n_cx n_e n_e_forced n_ex n_s n_sx n_t q_q_h#collCI q_q_h#emitEI q_q_h#subsSI v_v_b#branch v_v_c#branch v_v_e#branch v_v_s#branch + 1.99993462e+00 1.00000000e+00 1.64642558e+04 5.88325281e+01 0.00000000e+00 4.39505687e-15 3.03484914e-15 2.52605793e-13 4.01194200e-15 0.00000000e+00 3.00000000e+02 1.64796612e+12 1.54352898e-01 0.00000000e+00 0.00000000e+00 3.24540595e-04 -1.11543545e-07 3.24680265e-04 1.90935437e-02 3.00089374e-02 8.99978471e-01 1.99995735e+00 -1.94185522e-02 -1.67301019e-18 1.90934040e-02 1.00000000e+00 2.95657930e-02 1.73370516e+01 2.33705157e+00 1.00000000e+01 2.99712413e+00 1.51159806e+11 8.91493256e+11 6.47866034e+00 1.77142969e+02 1.06489178e+05 3.26850000e+02 8.39160364e-13 6.00000000e+02 -4.67929331e-07 0.00000000e+00 0.00000000e+00 -7.93275404e-01 7.55206628e-01 2.42884130e-03 0.00000000e+00 1.54848203e+00 0.00000000e+00 8.99997622e-01 8.99998811e-01 9.00000000e-01 1.99993462e+00 1.99996731e+00 2.00000000e+00 6.77627501e-05 3.38813751e-05 0.00000000e+00 1.67301019e-21 0.00000000e+00 2.89649952e+02 1.67301019e+00 1.24528160e-01 3.34602039e-21 -1.18893283e-03 -3.26924422e-02 3.38813751e-02 1.67301019e-18 + n_c @q_q_h[area] @q_q_h[betaac] @q_q_h[betadc] @q_q_h[ccs] @q_q_h[cmui] @q_q_h[cmux] @q_q_h[cpii] @q_q_h[cpix] @q_q_h[crbi] @q_q_h[dtsh] @q_q_h[ft] @q_q_h[gmi] @q_q_h[gms] @q_q_h[iavl] @q_q_h[ib] @q_q_h[ibci] @q_q_h[ibei] @q_q_h[ic] @q_q_h[ick] @q_q_h[icvb] @q_q_h[icvc] @q_q_h[ie] @q_q_h[is] @q_q_h[it] @q_q_h[m] @q_q_h[p] @q_q_h[rb] @q_q_h[rbi] @q_q_h[rcx_t] @q_q_h[re_t] @q_q_h[rmui] @q_q_h[rmux] @q_q_h[roi] @q_q_h[rpii] @q_q_h[rpix] @q_q_h[temp] @q_q_h[tf] @q_q_h[tk] @q_q_h[vbbp] @q_q_h[vbc] @q_q_h[vbe] @q_q_h[vbici] @q_q_h[vbiei] @q_q_h[vbpbi] @q_q_h[vce] @q_q_h[vciei] @q_q_h[vsc] n_b n_b_forced n_bx n_c n_c_forced n_cx n_e n_e_forced n_ex n_s n_sx n_t q_q_h#collCI q_q_h#emitEI q_q_h#subsSI v_v_b#branch v_v_c#branch v_v_e#branch v_v_s#branch + 1.99993462e+00 1.00000000e+00 1.64642558e+04 5.88325281e+01 0.00000000e+00 4.39505687e-15 3.03484914e-15 2.52605793e-13 4.01194200e-15 0.00000000e+00 3.00000000e+02 1.64796612e+12 1.54352898e-01 0.00000000e+00 0.00000000e+00 3.24540595e-04 -1.11543545e-07 3.24680265e-04 1.90935437e-02 3.00089374e-02 8.99978471e-01 1.99995735e+00 -1.94185522e-02 -1.67301019e-18 1.90934040e-02 1.00000000e+00 2.95657930e-02 1.73370516e+01 2.33705157e+00 1.00000000e+01 2.99712413e+00 1.51159806e+11 8.91493256e+11 6.47866034e+00 1.77142969e+02 1.06489178e+05 3.26850000e+02 8.39160364e-13 6.00000000e+02 -4.67929331e-07 0.00000000e+00 0.00000000e+00 -7.93275404e-01 7.55206628e-01 2.42884130e-03 0.00000000e+00 1.54848203e+00 0.00000000e+00 8.99997622e-01 8.99998811e-01 9.00000000e-01 1.99993462e+00 1.99996731e+00 2.00000000e+00 6.77627501e-05 3.38813751e-05 0.00000000e+00 1.67301019e-21 0.00000000e+00 2.89649952e+02 1.67301019e+00 1.24528160e-01 3.34602039e-21 -1.18893283e-03 -3.26924422e-02 3.38813751e-02 1.67301019e-18 + n_c @q_q_h[area] @q_q_h[betaac] @q_q_h[betadc] @q_q_h[ccs] @q_q_h[cmui] @q_q_h[cmux] @q_q_h[cpii] @q_q_h[cpix] @q_q_h[crbi] @q_q_h[dtsh] @q_q_h[ft] @q_q_h[gmi] @q_q_h[gms] @q_q_h[iavl] @q_q_h[ib] @q_q_h[ibci] @q_q_h[ibei] @q_q_h[ic] @q_q_h[ick] @q_q_h[icvb] @q_q_h[icvc] @q_q_h[ie] @q_q_h[is] @q_q_h[it] @q_q_h[m] @q_q_h[p] @q_q_h[rb] @q_q_h[rbi] @q_q_h[rcx_t] @q_q_h[re_t] @q_q_h[rmui] @q_q_h[rmux] @q_q_h[roi] @q_q_h[rpii] @q_q_h[rpix] @q_q_h[temp] @q_q_h[tf] @q_q_h[tk] @q_q_h[vbbp] @q_q_h[vbc] @q_q_h[vbe] @q_q_h[vbici] @q_q_h[vbiei] @q_q_h[vbpbi] @q_q_h[vce] @q_q_h[vciei] @q_q_h[vsc] n_b n_b_forced n_bx n_c n_c_forced n_cx n_e n_e_forced n_ex n_s n_sx n_t q_q_h#collCI q_q_h#emitEI q_q_h#subsSI v_v_b#branch v_v_c#branch v_v_e#branch v_v_s#branch + 1.99997161e+00 1.00000000e+00 1.13624742e+04 2.10159625e+02 0.00000000e+00 3.88430204e-15 2.85636423e-15 8.31888170e-14 5.15386430e-15 0.00000000e+00 0.00000000e+00 1.96740744e+12 2.19273777e-01 0.00000000e+00 0.00000000e+00 6.75412730e-05 -1.59787146e-13 6.75412732e-05 1.41944486e-02 3.12075838e-02 8.99985539e-01 1.99997121e+00 -1.42625889e-02 -1.85802351e-18 1.41944486e-02 1.00000000e+00 7.73073137e-03 1.77420380e+01 2.74203798e+00 1.00000000e+01 1.99941623e+00 5.00000000e+17 5.00000000e+17 4.56050886e+00 5.24797672e+02 5.12938665e+04 2.68500000e+01 4.49677695e-13 3.00000000e+02 -5.99018660e-07 0.00000000e+00 0.00000000e+00 -9.59216285e-01 8.66546809e-01 1.70535574e-04 0.00000000e+00 1.82576309e+00 0.00000000e+00 8.99999864e-01 8.99999932e-01 9.00000000e-01 1.99997161e+00 1.99998581e+00 2.00000000e+00 2.85259012e-05 1.42629506e-05 0.00000000e+00 1.85802351e-21 0.00000000e+00 6.99739848e+01 1.85802351e+00 3.22604142e-02 3.71604702e-21 -6.81403596e-05 -1.41948102e-02 1.42629506e-02 1.85802351e-18 diff --git a/src/spicelib/devices/hicum2/hicum2.c b/src/spicelib/devices/hicum2/hicum2.c index 6e21116dd..6451ae843 100644 --- a/src/spicelib/devices/hicum2/hicum2.c +++ b/src/spicelib/devices/hicum2/hicum2.c @@ -25,6 +25,7 @@ IFparm HICUMpTable[] = { /* parameters */ IOPAU("icvbi", HICUM_IC_VBi, IF_REAL, "Initial Bi potential"), IOPAU("icvbp", HICUM_IC_VBp, IF_REAL, "Initial Bp potential"), IOPAU("icvci", HICUM_IC_VCi, IF_REAL, "Initial Ci potential"), + IOPAU("icvt", HICUM_IC_Vt, IF_REAL, "Initial T potential"), IOPAU("icvei", HICUM_IC_VEi, IF_REAL, "Initial Ei potential"), IOPU("m", HICUM_M, IF_REAL, "Multiplier"), diff --git a/src/spicelib/devices/hicum2/hicum2ask.c b/src/spicelib/devices/hicum2/hicum2ask.c index 1d483eb92..08304805b 100644 --- a/src/spicelib/devices/hicum2/hicum2ask.c +++ b/src/spicelib/devices/hicum2/hicum2ask.c @@ -58,6 +58,9 @@ HICUMask(CKTcircuit *ckt, GENinstance *instPtr, int which, IFvalue *value, IFval case HICUM_IC_VCi: value->rValue = here->HICUMicVCi; return(OK); + case HICUM_IC_Vt: + value->rValue = here->HICUMicVt; + return(OK); case HICUM_TEMP: value->rValue = here->HICUMtemp - CONSTCtoK; return(OK); diff --git a/src/spicelib/devices/hicum2/hicum2conv.c b/src/spicelib/devices/hicum2/hicum2conv.c index b0a3ca6c4..00e39ce1d 100644 --- a/src/spicelib/devices/hicum2/hicum2conv.c +++ b/src/spicelib/devices/hicum2/hicum2conv.c @@ -28,6 +28,7 @@ HICUMconvTest(GENmodel *inModel, CKTcircuit *ckt) double delvbpbi; double delvbpci; double delvsici; + double delvrth; double ibieihat; double ibicihat; @@ -37,9 +38,10 @@ HICUMconvTest(GENmodel *inModel, CKTcircuit *ckt) double ibpcihat; double ibpsihat; double isicihat; + double ithhat; - double Vbiei, Vbici, Vciei, Vbpei, Vbpbi, Vbpci, Vbci, Vsici; - double Ibiei, Ibici, Iciei, Ibpei, Ibpbi, Ibpci, Ibpsi, Isici; + double Vbiei, Vbici, Vciei, Vbpei, Vbpbi, Vbpci, Vbci, Vsici, Vrth; + double Ibiei, Ibici, Iciei, Ibpei, Ibpbi, Ibpci, Ibpsi, Isici, Ith; for( ; model != NULL; model = HICUMnextModel(model)) { for(here=HICUMinstances(model);here!=NULL;here = HICUMnextInstance(here)) { @@ -66,6 +68,7 @@ HICUMconvTest(GENmodel *inModel, CKTcircuit *ckt) *(ckt->CKTrhsOld+here->HICUMsubsSINode)- *(ckt->CKTrhsOld+here->HICUMcollCINode)); Vciei = Vbiei - Vbici; + Vrth = model->HICUMtype*(*(ckt->CKTrhsOld+here->HICUMtempNode)); delvbiei = Vbiei - *(ckt->CKTstate0 + here->HICUMvbiei); delvbici = Vbici - *(ckt->CKTstate0 + here->HICUMvbici); @@ -73,6 +76,7 @@ HICUMconvTest(GENmodel *inModel, CKTcircuit *ckt) delvbpbi = Vbpbi - *(ckt->CKTstate0 + here->HICUMvbpbi); delvbpci = Vbpci - *(ckt->CKTstate0 + here->HICUMvbpci); delvsici = Vsici - *(ckt->CKTstate0 + here->HICUMvsici); + delvrth = Vrth - *(ckt->CKTstate0 + here->HICUMvrth); ibieihat = *(ckt->CKTstate0 + here->HICUMibiei) + *(ckt->CKTstate0 + here->HICUMibiei_Vbiei)*delvbiei; @@ -93,6 +97,8 @@ HICUMconvTest(GENmodel *inModel, CKTcircuit *ckt) *(ckt->CKTstate0 + here->HICUMibpsi_Vsici)*delvsici; isicihat = *(ckt->CKTstate0 + here->HICUMisici) + *(ckt->CKTstate0 + here->HICUMisici_Vsici)*delvsici; + ithhat = *(ckt->CKTstate0 + here->HICUMith) + + *(ckt->CKTstate0 + here->HICUMith_Vrth)*delvrth; Ibiei = *(ckt->CKTstate0 + here->HICUMibiei); Ibici = *(ckt->CKTstate0 + here->HICUMibici); @@ -102,6 +108,8 @@ HICUMconvTest(GENmodel *inModel, CKTcircuit *ckt) Ibpci = *(ckt->CKTstate0 + here->HICUMibpci); Ibpsi = *(ckt->CKTstate0 + here->HICUMibpsi); Isici = *(ckt->CKTstate0 + here->HICUMisici); + Ith = *(ckt->CKTstate0 + here->HICUMith); + /* * check convergence */ @@ -152,7 +160,15 @@ HICUMconvTest(GENmodel *inModel, CKTcircuit *ckt) ckt->CKTnoncon++; ckt->CKTtroubleElt = (GENinstance *) here; return(OK); /* no reason to continue - we've failed... */ + } else { + tol=ckt->CKTreltol*MAX(fabs(ithhat),fabs(Ith))+ckt->CKTabstol; + if (fabs(ithhat-Ith) > tol) { + ckt->CKTnoncon++; + ckt->CKTtroubleElt = (GENinstance *) here; + return(OK); /* no reason to continue - we've failed... */ + } } + } } } diff --git a/src/spicelib/devices/hicum2/hicum2defs.h b/src/spicelib/devices/hicum2/hicum2defs.h index bf8f7bfd2..6ad36d447 100644 --- a/src/spicelib/devices/hicum2/hicum2defs.h +++ b/src/spicelib/devices/hicum2/hicum2defs.h @@ -72,6 +72,7 @@ typedef struct sHICUMinstance { double HICUMicVBp; /* initial condition potential Bp */ double HICUMicVB; /* initial condition potential B */ double HICUMicVCi; /* initial condition potential Ci */ + double HICUMicVt; /* initial condition potential T */ double HICUMicVEi; /* initial condition potential Ei */ double HICUMicVC; /* initial condition potential C */ double HICUMicVE; /* initial condition potential E */ @@ -268,6 +269,7 @@ typedef struct sHICUMinstance { unsigned HICUMicVBpGiven :1; /* flag to indicate VBp init. cond. given */ unsigned HICUMicVEiGiven :1; /* flag to indicate VEi init. cond. given */ unsigned HICUMicVCiGiven :1; /* flag to indicate VCi init. cond. given */ + unsigned HICUMicVtGiven :1; /* flag to indicate VCi init. cond. given */ unsigned HICUMtempGiven :1; /* temperature given for hicum instance*/ unsigned HICUMdtempGiven :1; /* delta temperature given for hicum instance*/ unsigned HICUMmGiven :1; /* flag to indicate multiplier was specified */ @@ -423,7 +425,10 @@ typedef struct sHICUMinstance { #define HICUMixf2_Vbici HICUMstate+87 #define HICUMixf2_Vfx1 HICUMstate+88 -#define HICUMnumStates 89 +#define HICUMith HICUMstate+89 +#define HICUMith_Vrth HICUMstate+90 + +#define HICUMnumStates 91 /* per model data */ typedef struct sHICUMmodel { /* model structure for a hicum */ @@ -808,6 +813,7 @@ enum { HICUM_IC_VBp, HICUM_IC_VEi, HICUM_IC_VCi, + HICUM_IC_Vt, HICUM_TEMP, HICUM_DTEMP, HICUM_M, diff --git a/src/spicelib/devices/hicum2/hicum2getic.c b/src/spicelib/devices/hicum2/hicum2getic.c index 3c65feb11..7f824ad85 100644 --- a/src/spicelib/devices/hicum2/hicum2getic.c +++ b/src/spicelib/devices/hicum2/hicum2getic.c @@ -55,6 +55,10 @@ HICUMgetic(GENmodel *inModel, CKTcircuit *ckt) here->HICUMicVCi = *(ckt->CKTrhs + here->HICUMcollCINode); } + if(!here->HICUMicVtGiven) { + here->HICUMicVt = + *(ckt->CKTrhs + here->HICUMtempNode); + } if(!here->HICUMicVEiGiven) { here->HICUMicVEi = *(ckt->CKTrhs + here->HICUMemitEINode); diff --git a/src/spicelib/devices/hicum2/hicum2load.c b/src/spicelib/devices/hicum2/hicum2load.c index 9272be91b..9f64ede9e 100644 --- a/src/spicelib/devices/hicum2/hicum2load.c +++ b/src/spicelib/devices/hicum2/hicum2load.c @@ -876,6 +876,10 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) *(ckt->CKTstate1 + here->HICUMvrth); *(ckt->CKTstate0 + here->HICUMqcth) = *(ckt->CKTstate1 + here->HICUMqcth); + *(ckt->CKTstate0 + here->HICUMith) = + *(ckt->CKTstate1 + here->HICUMith); + *(ckt->CKTstate0 + here->HICUMith_Vrth) = + *(ckt->CKTstate1 + here->HICUMith_Vrth); } } else { #endif /* PREDICTOR */ @@ -966,6 +970,8 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) ibpsihat = *(ckt->CKTstate0 + here->HICUMibpsi) + *(ckt->CKTstate0 + here->HICUMibpsi_Vbpci)*delvbpci + *(ckt->CKTstate0 + here->HICUMibpsi_Vsici)*delvsici; + ithhat = *(ckt->CKTstate0 + here->HICUMith) + + *(ckt->CKTstate0 + here->HICUMith_Vrth)*delvrth; /* * bypass if solution has not changed */ @@ -1018,6 +1024,10 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) ckt->CKTreltol* MAX(fabs(isicihat), fabs(*(ckt->CKTstate0 + here->HICUMisici)))+ ckt->CKTabstol) ) + if( (fabs(ithhat-*(ckt->CKTstate0 + here->HICUMith)) < + ckt->CKTreltol* MAX(fabs(ithhat), + fabs(*(ckt->CKTstate0 + here->HICUMith)))+ + ckt->CKTabstol) ) if( (fabs(ibpsihat-*(ckt->CKTstate0 + here->HICUMibpsi)) < ckt->CKTreltol* MAX(fabs(ibpsihat), fabs(*(ckt->CKTstate0 + here->HICUMibpsi)))+ @@ -2107,6 +2117,9 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) *(ckt->CKTstate0 + here->HICUMgqsu) = gqsu; + *(ckt->CKTstate0 + here->HICUMith) = Ith; + *(ckt->CKTstate0 + here->HICUMith_Vrth) = Ith_Vrth; + load: /* * load current excitation vector and matrix diff --git a/src/spicelib/devices/hicum2/hicum2param.c b/src/spicelib/devices/hicum2/hicum2param.c index 74e247f1f..9dd93e848 100644 --- a/src/spicelib/devices/hicum2/hicum2param.c +++ b/src/spicelib/devices/hicum2/hicum2param.c @@ -62,6 +62,10 @@ HICUMparam(int param, IFvalue *value, GENinstance *instPtr, IFvalue *select) here->HICUMicVCi = value->rValue; here->HICUMicVCiGiven = TRUE; break; + case HICUM_IC_Vt: + here->HICUMicVt = value->rValue; + here->HICUMicVtGiven = TRUE; + break; case HICUM_TEMP: here->HICUMtemp = value->rValue+CONSTCtoK; here->HICUMtempGiven = TRUE; diff --git a/src/spicelib/devices/hicum2/hicumL2.cpp b/src/spicelib/devices/hicum2/hicumL2.cpp index a668914ea..e92a5ca65 100644 --- a/src/spicelib/devices/hicum2/hicumL2.cpp +++ b/src/spicelib/devices/hicum2/hicumL2.cpp @@ -335,7 +335,7 @@ void hicum_diode(double T, dual_double IS, double UM1, double U, double *Iz, dou result = HICDIO(T, is_t, UM1, U+1_e); *Iz = result.rpart(); *Gz = result.dpart(); //derivative for U - is_t.dpart(IS.dpart); + is_t = IS.rpart + 1_e*IS.dpart; result = HICDIO(T+1_e, is_t, UM1, U); *Tz = result.dpart(); //derivative for T } @@ -410,7 +410,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) double Cscp_Vsc, Cscp_dT; //Base resistance and self-heating power - double rbi,pterm,pterm_dT; + double volatile rbi,pterm,pterm_dT; //Model initialization double C_1; @@ -471,7 +471,8 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) double ibpbihat; double isicihat; double ibpsihat; - double ceq, geq=0.0, rhs_current; + double ceq, geq=0.0; + double volatile rhs_current; int icheck=1; int ichk1, ichk2, ichk3, ichk4, ichk5; int error; @@ -533,9 +534,8 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) double Qxf_Vxf, Qxf1_Vxf1, Qxf2_Vxf2; double Iqxf, Iqxf_Vxf, Iqxf1, Iqxf1_Vxf1, Iqxf2, Iqxf2_Vxf2; - double Ith=0, Vrth=0, Icth, Icth_dT, delvrth; + double volatile Ith=0, Vrth=0, Icth, Icth_dT, delvrth; - double Irth_dT=0; double Ibiei_dT=0; double Ibici_dT=0; double Ibpei_dT=0; @@ -748,11 +748,16 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) } }; //Hole charge at low bias - std::function calc_Q_0 = [&](duals::duald Qjei, duals::duald Qjci, duals::duald hjei_vbe){ - duals::duald Q_0, b_q, Q_bpt; + std::function calc_Q_0 = [&](duals::duald T, duals::duald Qjei, duals::duald Qjci, duals::duald hjei_vbe){ + duals::duald Q_0, b_q, Q_bpt, qp0_t; + qp0_t = here->HICUMqp0_t.rpart; + double T_dpart = T.dpart(); + if (T_dpart!=0.0){ + qp0_t.dpart(here->HICUMqp0_t.dpart); + } a_bpt = 0.05; - Q_0 = here->HICUMqp0_t.rpart + hjei_vbe*Qjei + model->HICUMhjci*Qjci; - Q_bpt = a_bpt*here->HICUMqp0_t.rpart; + Q_0 = qp0_t + hjei_vbe*Qjei + model->HICUMhjci*Qjci; + Q_bpt = a_bpt*qp0_t; b_q = Q_0/Q_bpt-1; Q_0 = Q_bpt*(1+(b_q +sqrt(b_q*b_q+1.921812))/2); return Q_0; @@ -975,6 +980,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) // given T,Q_pT, ick, T_f0, Tr, Vbiei, Vbici -> calculate itf, itr, Qf, Qr duals::duald VT, VT_f, i_0f, i_0r, I_Tf1, a_h, Q_fT,T_fT; duals::duald c10_t; + double T_dpart = T.dpart(); VT = CONSTboltz * T / CHARGE; @@ -1312,9 +1318,10 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Vbpe = here->HICUMicVBp-here->HICUMicVE; Vcic = here->HICUMicVCi-here->HICUMicVC; Veie = here->HICUMicVEi-here->HICUMicVE; + Vrth = here->HICUMicVt; Vsc=Vsici=0.0; Vsis=0.0; - Vrth=0.0,Icth=0.0,Icth_dT=0.0; + Icth=0.0,Icth_dT=0.0; Vbxf=Vbxf1=Vbxf2=0.0; } else if((ckt->CKTmode & MODEINITJCT) && (here->HICUMoff==0)) { Vbe = here->HICUMicVB-here->HICUMicVE; @@ -1329,9 +1336,10 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Vbpe = here->HICUMicVBp-here->HICUMicVE; Vcic = here->HICUMicVCi-here->HICUMicVC; Veie = here->HICUMicVEi-here->HICUMicVE; + Vrth = here->HICUMicVt; Vsc=Vsici=0.0; Vsis=0.0; - Vrth=0.0,Icth=0.0,Icth_dT=0.0; + Icth=0.0,Icth_dT=0.0; Vbxf=Vbxf1=Vbxf2=0.0; } else if((ckt->CKTmode & MODEINITJCT) || ( (ckt->CKTmode & MODEINITFIX) && (here->HICUMoff!=0))) { @@ -1445,6 +1453,10 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) - ( xfact * (*(ckt->CKTstate2 + here->HICUMvrth))); *(ckt->CKTstate0 + here->HICUMvrth) = *(ckt->CKTstate1 + here->HICUMvrth); + *(ckt->CKTstate0 + here->HICUMith) = + *(ckt->CKTstate1 + here->HICUMith); + *(ckt->CKTstate0 + here->HICUMith_Vrth) = + *(ckt->CKTstate1 + here->HICUMith_Vrth); *(ckt->CKTstate0 + here->HICUMqcth) = *(ckt->CKTstate1 + here->HICUMqcth); } @@ -1679,7 +1691,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Vsc = model->HICUMtype*Vsc; if (model->HICUMflsh!=0 && model->HICUMrth >= MIN_R) { // Thermal_update_with_self_heating - here->HICUMtemp = here->HICUMtemp+Vrth; + here->HICUMtemp = ckt->CKTtemp+Vrth; here->HICUMdtemp_sh = here->HICUMtemp - ckt->CKTtemp; iret = hicum_thermal_update(model, here); } else { @@ -1711,20 +1723,22 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) hicum_HICJQ(here->HICUMtemp, here->HICUMcjci0_t,here->HICUMvdci_t,model->HICUMzci,here->HICUMvptci_t, Vbici, &Cjci, &Cjci_Vbici, &Cjci_dT, &Qjci, &Qjci_Vbici, &Qjci_dT); //Hole charge at low bias - result = calc_Q_0(Qjei+1_e, Qjci, hjei_vbe); + result = calc_Q_0(here->HICUMtemp , Qjei+1_e, Qjci, hjei_vbe); Q_0 = result.rpart(); Q_0_Qjei = result.dpart(); - result = calc_Q_0(Qjei, Qjci+1_e, hjei_vbe); + result = calc_Q_0(here->HICUMtemp , Qjei, Qjci+1_e, hjei_vbe); Q_0_Qjci = result.dpart(); - result = calc_Q_0(Qjei, Qjci, hjei_vbe+1_e); + result = calc_Q_0(here->HICUMtemp , Qjei, Qjci, hjei_vbe+1_e); Q_0_hjei_vbe = result.dpart(); + result = calc_Q_0(here->HICUMtemp+1_e , Qjei, Qjci, hjei_vbe); + Q_0_dT = result.dpart(); + Q_0_Vbiei = Q_0_Qjei*Qjei_Vbiei + Q_0_hjei_vbe*hjei_vbe_Vbiei; Q_0_Vbici = Q_0_Qjci*Qjci_Vbici ; - //TODO: derivative qp0_t -> done using the dpart ? - Q_0_dT = here->HICUMqp0_t.dpart + Q_0_Qjei*Qjei_dT + Q_0_Qjci*Qjci_dT * Q_0_hjei_vbe*hjei_vbe_dT; + Q_0_dT += Q_0_Qjei*Qjei_dT + Q_0_Qjci*Qjci_dT * Q_0_hjei_vbe*hjei_vbe_dT; //Transit time calculation at low current density result = calc_T_f0(here->HICUMtemp, Vbici+1_e); @@ -1739,7 +1753,6 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) ick = result.rpart(); ick_Vciei = result.dpart(); - //todo: derivatives rci0_t, vlim_t, vces_t missing result = calc_ick(here->HICUMtemp+1_e, Vciei); ick_dT = result.dpart(); @@ -1770,6 +1783,14 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Tf_dT = result_Tf.dpart(); if (!(Qf > RTOLC*Q_p || a_h > RTOLC)) { // in this case the newon is not run and the derivatives of the initial solution are needed + calc_it_initial(here->HICUMtemp+1_e, Vbiei , Vbici , Q_0 , T_f0 , ick , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf, &result_a_h, &result_Q_p, &result_Tf); + itf_dT = result_itf.dpart(); + itr_dT = result_itr.dpart(); + Qf_dT = result_Qf.dpart(); + Qr_dT = result_Qr.dpart(); + Q_bf_dT = result_Q_bf.dpart(); + Tf_dT = result_Tf.dpart(); + calc_it_initial(here->HICUMtemp , Vbiei+1_e, Vbici , Q_0 , T_f0 , ick , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf, &result_a_h, &result_Q_p, &result_Tf); itf_Vbiei = result_itf.dpart(); itr_Vbiei = result_itr.dpart(); @@ -2132,7 +2153,6 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) result = calc_ibet(Vbiei+1_e, Vbpei, here->HICUMtemp); ibet_Vbiei = result.dpart(); - //TODO done(?): missing temperature derivatives abet_t vdei_t ibets_t cjei0_t vdep_t ibets_t cjep0_t using the duals from temp result = calc_ibet(Vbiei, Vbpei, here->HICUMtemp+1_e); ibet_dT = result.dpart(); @@ -2194,9 +2214,9 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) // Self-heating calculation if (model->HICUMflsh == 1 && model->HICUMrth >= MIN_R) { - pterm = Vciei*it + (here->HICUMvdci_t.rpart-Vbici)*iavl; + pterm = (Vbiei-Vbici)*it + (here->HICUMvdci_t.rpart-Vbici)*iavl; // assuming Vciei_dT and Vbici_dT are 0 - pterm_dT = Vciei*it_dT + (here->HICUMvdci_t.rpart-Vbici)*iavl_dT + here->HICUMvdci_t.dpart*iavl; + pterm_dT = (Vbiei-Vbici)*it_dT + (here->HICUMvdci_t.rpart-Vbici)*iavl_dT + here->HICUMvdci_t.dpart*iavl; } else if (model->HICUMflsh == 2 && model->HICUMrth >= MIN_R) { pterm = Vciei*it + (here->HICUMvdci_t.rpart-Vbici)*iavl + ibei*Vbiei + ibci*Vbici + ibep*Vbpei + ijbcx*Vbpci + ijsc*Vsici; // assuming Vciei_dT, Vbiei_dT, Vbpei_dT, Vbpci_dT, Vsici and Vbici_dT are 0 @@ -2268,11 +2288,11 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) //resistors Ibbp_Vbbp = 1/here->HICUMrbx_t.rpart; - Ibbp_dT = -here->HICUMrbx_t.dpart/here->HICUMrbx_t.rpart/here->HICUMrbx_t.rpart; + Ibbp_dT = -here->HICUMrbx_t.dpart*Vbbp/here->HICUMrbx_t.rpart/here->HICUMrbx_t.rpart; Icic_Vcic = 1/here->HICUMrcx_t.rpart; - Icic_dT = -here->HICUMrcx_t.dpart/here->HICUMrcx_t.rpart/here->HICUMrcx_t.rpart; + Icic_dT = -here->HICUMrcx_t.dpart*Vcic/here->HICUMrcx_t.rpart/here->HICUMrcx_t.rpart; Ieie_Veie = 1/here->HICUMre_t.rpart; - Ieie_dT = -here->HICUMre_t.dpart/here->HICUMre_t.rpart/here->HICUMre_t.rpart; + Ieie_dT = -here->HICUMre_t.dpart*Veie/here->HICUMre_t.rpart/here->HICUMre_t.rpart; Isis_Vsis = 1/model->HICUMrsu; Ibpei = model->HICUMtype*ibep; @@ -2321,6 +2341,38 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Iciei_Vbici = model->HICUMtype*it_Vbici; Iciei_dT = model->HICUMtype*it_dT; + if (rbi >= MIN_R) { + Ibpbi = Vbpbi / rbi; + Ibpbi_Vbpbi = 1 / rbi; + Ibpbi_Vbiei = -Vbpbi * rbi_Vbiei / (rbi*rbi); + Ibpbi_Vbici = -Vbpbi * rbi_Vbici / (rbi*rbi); + Ibpbi_dT = -Vbpbi * rbi_dT / (rbi*rbi); + } else { + // fallback in case rbi is low + Ibpbi = Vbpbi / MIN_R; + Ibpbi_Vbpbi = 1 / MIN_R; + Ibpbi_Vbiei = 0; + Ibpbi_Vbici = 0; + Ibpbi_dT = 0; + } + + Ibiei += ckt->CKTgmin*Vbiei; + Ibiei_Vbiei += ckt->CKTgmin; + Ibici += ckt->CKTgmin*Vbici; + Ibici_Vbici += ckt->CKTgmin; + Iciei += ckt->CKTgmin*Vciei; + Iciei_Vbiei += ckt->CKTgmin; + Iciei_Vbici += ckt->CKTgmin; + Ibpei += ckt->CKTgmin*Vbpei; + Ibpei_Vbpei += ckt->CKTgmin; + Ibpbi += ckt->CKTgmin*Vbpbi; + Ibpbi_Vbiei += ckt->CKTgmin; + Ibpbi_Vbici += ckt->CKTgmin; + Ibpci += ckt->CKTgmin*Vbpci; + Ibpci_Vbpci += ckt->CKTgmin; + Isici += ckt->CKTgmin*Vsici; + Isici_Vsici += ckt->CKTgmin; + //printf("Vbiei: %f Vbici: %f Vciei: %f Vbpei: %f Vbpci: %f Vbci: %f Vsici: %f\n", Vbiei, Vbici, Vciei, Vbpei, Vbpci, Vbci, Vsici); //printf("Ibiei: %g ibici: %g Ibpei: %g Iciei: %g\n",Ibiei,ibici,Ibpei,Iciei); @@ -2350,7 +2402,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Ith_Vcic = 0.0; Ith_Vbbp = 0.0; Ith_Veie = 0.0; - Ith_dT = 0.0; + Ith_dT = 0.0; if(model->HICUMflsh == 0 || model->HICUMrth < MIN_R) { Ith = 0.0; } else { @@ -2359,15 +2411,14 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Ith_dT = pterm_dT; Ith_dT += -1/here->HICUMrth_t.rpart; Ith_dT += +Vrth/here->HICUMrth_t.rpart/here->HICUMrth_t.rpart * here->HICUMrth_t.dpart; //Mario check this please - if (model->HICUMflsh == 1 && model->HICUMrth >= MIN_R) { - //Iciei(Vbiei,Vbici)*Vciei - Ith_Vciei += Iciei; - Ith_Vbiei += Iciei_Vbiei*Vciei; - Ith_Vbici += Iciei_Vbici*Vciei; + if (model->HICUMflsh == 1) { + //Iciei(Vbiei,Vbici)*(Vbiei-Vbici) + Ith_Vbiei += it_Vbiei*(Vbiei-Vbici) + it; + Ith_Vbici += it_Vbici*(Vbiei-Vbici) - it; //avalanche current - //(here->HICUMvdci_t.rpart-Vbici)*iavl - Ith_Vbici += (here->HICUMvdci_t.rpart-Vbici)*iavl_Vbici - iavl - } else if (model->HICUMflsh == 2 && model->HICUMrth >= MIN_R) { + //(here->HICUMvdci_t.rpart-Vbici)*iavl = vdci_t*iavl - Vbici*iavl + Ith_Vbici += (here->HICUMvdci_t.rpart-Vbici)*iavl_Vbici - iavl; + } else if (model->HICUMflsh == 2) { //Iciei(Vbiei,Vbici)*Vciei Ith_Vciei += Iciei; Ith_Vbiei += Iciei_Vbiei*Vciei; @@ -2384,7 +2435,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Ith_Vsici += Isici + Isici_Vsici*Vsici; if (rbi >= MIN_R) { //Vbpbi*Ibpbi(Vbpbi,Vbiei,Vbici) - Ith_Vbpbi += Ibpbi + Ibpbi_Vbpbi; + Ith_Vbpbi += Ibpbi + Ibpbi_Vbpbi*Vbpbi; Ith_Vbiei += Ibpbi_Vbiei*Vbpbi; Ith_Vbici += Ibpbi_Vbici*Vbpbi; } @@ -2410,21 +2461,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) // end of Load_sources - if (rbi >= MIN_R) { - Ibpbi = Vbpbi / rbi; - Ibpbi_Vbpbi = 1 / rbi; - Ibpbi_Vbiei = -Vbpbi * rbi_Vbiei / (rbi*rbi); - Ibpbi_Vbici = -Vbpbi * rbi_Vbici / (rbi*rbi); - Ibpbi_dT = -Vbpbi * rbi_dT / (rbi*rbi); - } else { - // fallback in case rbi is low - Ibpbi = Vbpbi / MIN_R; - Ibpbi_Vbpbi = 1 / MIN_R; - Ibpbi_Vbiei = 0; - Ibpbi_Vbici = 0; - Ibpbi_dT = 0; - - } + Qjcx_i_Vbci = Cjcx_i; Qjcx_ii_Vbpci = Cjcx_ii; Qjep_Vbpei = Cjep; @@ -2439,28 +2476,8 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) //TODO: all the derivatives have to be known dI/dT //TODO: @Dietmar: what about dQ/dT ? - Ibpbi_dT = 0.0; - Iciei_dT = 0.0; - Isici_dT = 0.0; - Ibiei += ckt->CKTgmin*Vbiei; - Ibiei_Vbiei += ckt->CKTgmin; - Ibici += ckt->CKTgmin*Vbici; - Ibici_Vbici += ckt->CKTgmin; - Iciei += ckt->CKTgmin*Vciei; - Iciei_Vbiei += ckt->CKTgmin; - Iciei_Vbici += ckt->CKTgmin; - Ibpei += ckt->CKTgmin*Vbpei; - Ibpei_Vbpei += ckt->CKTgmin; - Ibpbi += ckt->CKTgmin*Vbpbi; - Ibpbi_Vbiei += ckt->CKTgmin; - Ibpbi_Vbici += ckt->CKTgmin; - Ibpci += ckt->CKTgmin*Vbpci; - Ibpci_Vbpci += ckt->CKTgmin; - Isici += ckt->CKTgmin*Vsici; - Isici_Vsici += ckt->CKTgmin; - if( (ckt->CKTmode & (MODEDCTRANCURVE | MODETRAN | MODEAC)) || ((ckt->CKTmode & MODETRANOP) && (ckt->CKTmode & MODEUIC)) || (ckt->CKTmode & MODEINITSMSIG)) { @@ -2707,12 +2724,12 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) /* * check convergence */ - if ( (!(ckt->CKTmode & MODEINITFIX))||(!(here->HICUMoff))) { - if (icheck == 1) { - ckt->CKTnoncon++; - ckt->CKTtroubleElt = (GENinstance *) here; - } - } + // if ( (!(ckt->CKTmode & MODEINITFIX))||(!(here->HICUMoff))) { + // if (icheck == 1) { + // ckt->CKTnoncon++; + // ckt->CKTtroubleElt = (GENinstance *) here; + // } + // } /* * charge storage for outer junctions @@ -2799,6 +2816,9 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) *(ckt->CKTstate0 + here->HICUMgqsu) = gqsu; + *(ckt->CKTstate0 + here->HICUMith) = Ith; + *(ckt->CKTstate0 + here->HICUMith_Vrth) = Ith_dT; + load: // ############################################################# // ############### STAMPS NO SH ############################## @@ -3094,7 +3114,7 @@ c Branch: xf-ground, Stamp element: Rxf // ############### FINISH STAMPS NO SH ######################### // ############################################################# - if (model->HICUMflsh && model->HICUMrth >= MIN_R) { + if (model->HICUMflsh && (model->HICUMrth >= MIN_R)) { // ############################################################# // ############### STAMP WITH SH ADDITIONS ##################### // ############################################################# @@ -3198,18 +3218,11 @@ c Branch: xf-ground, Stamp element: Rxf *(here->HICUMemitEItempPtr) += Ieie_dT; // finish -// Stamp element: Rth -> Non-linear component here as Rth=f(T) f_Vrth = + - rhs_current = -Irth_dT*Vrth; - *(ckt->CKTrhs + here->HICUMtempNode) += -rhs_current; - // with respect to Potential Vrth - *(here->HICUMtempTempPtr) += Irth_dT; -// finish - // Stamp element: Cth //rhs missing? *(here->HICUMtempTempPtr) += Icth_dT; // finish -// Stamp element: Ith f_T = - Ith +// Stamp element: Ith f_T = - Ith (contains Rth?) rhs_current = Ith + Icth - Icth_dT*Vrth - Ith_Vbiei*Vbiei - Ith_Vbici*Vbici - Ith_Vciei*Vciei - Ith_Vbpei*Vbpei - Ith_Vbpci*Vbpci - Ith_Vsici*Vsici