added initial conditions for all nodes, model converging again for

simple modelcard
This commit is contained in:
Markus Mueller 2020-05-05 14:30:15 +02:00
parent 3008c526bf
commit 4318b7165b
7 changed files with 213 additions and 100 deletions

View File

@ -245,3 +245,17 @@
4.99507987e-01 1.00000000e+00 0.00000000e+00 0.00000000e+00 4.63557108e-310 0.00000000e+00 0.00000000e+00 3.28688943e-05 0.00000000e+00 0.00000000e+00 0.00000000e+00 -nan 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.02032454e-12 6.50533785e-03 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 4.92012155e-01 1.00000000e+00 0.00000000e+00 1.00000012e-03 1.18601008e-10 1.00000000e-03 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 2.68500000e+01 0.00000000e+00 3.00000000e+02 0.00000000e+00 0.00000000e+00 1.02032454e+00 1.02032454e+00 -7.39341735e-01 0.00000000e+00 3.12700954e-09 0.00000000e+00 7.79999390e-01 7.80000000e-01 7.80000000e-01 4.99507987e-01 5.00000000e-01 5.00000000e-01 4.98517953e-04 4.98517454e-10 0.00000000e+00 4.99015975e-22 0.00000000e+00 0.00000000e+00 4.99015975e-01 4.99015972e-01 4.99016474e-16 0.00000000e+00 0.00000000e+00 0.00000000e+00 -6.10351562e-04 -4.92012084e-01 4.98517454e-01 4.99015975e-13
4.99507987e-01 1.00000000e+00 0.00000000e+00 0.00000000e+00 4.63557108e-310 0.00000000e+00 0.00000000e+00 3.28688945e-05 0.00000000e+00 0.00000000e+00 0.00000000e+00 -nan 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.02032454e-12 6.50533793e-03 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.61492902e-01 1.00000000e+00 0.00000000e+00 1.00000012e-03 1.18601007e-10 1.00000000e-03 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 2.68500000e+01 0.00000000e+00 3.00000000e+02 0.00000000e+00 0.00000000e+00 1.02032454e+00 1.02032454e+00 -7.29331972e-01 0.00000000e+00 1.02637676e-09 0.00000000e+00 7.90004272e-01 7.90000000e-01 7.90000000e-01 4.99507987e-01 5.00000000e-01 5.00000000e-01 4.98517955e-04 4.98517456e-10 0.00000000e+00 4.99016097e-22 0.00000000e+00 0.00000000e+00 4.99015975e-01 4.99015974e-01 4.99016596e-16 0.00000000e+00 0.00000000e+00 0.00000000e+00 4.27246094e-03 -4.92012084e-01 4.98517456e-01 4.99016097e-13
4.99507987e-01 1.00000000e+00 0.00000000e+00 0.00000000e+00 4.63557108e-310 0.00000000e+00 0.00000000e+00 3.28688949e-05 0.00000000e+00 0.00000000e+00 0.00000000e+00 -nan 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 1.02032454e-12 6.50533807e-03 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 4.92012135e-01 1.00000000e+00 0.00000000e+00 1.00000012e-03 1.18601006e-10 1.00000000e-03 1.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 2.68500000e+01 0.00000000e+00 3.00000000e+02 0.00000000e+00 0.00000000e+00 1.02032454e+00 1.02032454e+00 -7.19352722e-01 0.00000000e+00 3.12700932e-09 0.00000000e+00 7.99993896e-01 8.00000000e-01 8.00000000e-01 4.99507987e-01 5.00000000e-01 5.00000000e-01 4.98517953e-04 4.98517454e-10 0.00000000e+00 4.99015975e-22 0.00000000e+00 0.00000000e+00 4.99015975e-01 4.99015972e-01 4.99016474e-16 0.00000000e+00 0.00000000e+00 0.00000000e+00 -6.10363483e-03 -4.92012024e-01 4.98517454e-01 4.99015975e-13
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[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
3.75134313e-01 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.50268752e-13 4.18089054e-15 0.00000000e+00 2.34567318e-10 2.60900000e-14 0.00000000e+00 0.00000000e+00 -nan 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 5.22092696e-12 4.01936697e-13 0.00000000e+00 3.33389301e+07 5.00000000e-01 5.00000000e-01 0.00000000e+00 0.00000000e+00 1.24779031e+02 1.00000000e+00 0.00000000e+00 1.01634729e-03 1.63472901e-05 1.00000000e-03 1.00000000e-03 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 2.68500000e+01 0.00000000e+00 3.00000000e+02 0.00000000e+00 0.00000000e+00 3.43995750e-01 3.44533253e-01 -9.42645016e-02 0.00000000e+00 5.37503273e-04 0.00000000e+00 5.00000000e-01 5.00000000e-01 5.00000000e-01 3.75134313e-01 4.99999875e-01 5.00000000e-01 1.24865687e-01 1.24865562e-07 0.00000000e+00 2.50268752e-22 0.00000000e+00 0.00000000e+00 2.50268752e-01 2.49731248e-01 2.50269002e-16 0.00000000e+00 -1.24865562e+02 1.24865562e+02 2.50268752e-13
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[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
3.79842135e-01 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.59684390e-13 3.95169077e-15 0.00000000e+00 8.81515511e-12 2.60900000e-14 0.00000000e+00 0.00000000e+00 -nan 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 3.89406534e-13 2.62033967e-13 0.00000000e+00 3.73091205e+07 5.00000000e-01 5.00000000e-01 0.00000000e+00 0.00000000e+00 1.20157820e+02 1.00000000e+00 0.00000000e+00 2.00000000e-03 1.00000000e-03 1.00000000e-03 1.00000000e-03 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 2.68500000e+01 0.00000000e+00 3.00000000e+02 0.00000000e+00 0.00000000e+00 2.40315610e-01 2.59684390e-01 7.77156117e-16 0.00000000e+00 1.93687795e-02 0.00000000e+00 5.00000000e-01 5.00000000e-01 5.00000000e-01 3.79842135e-01 4.99999880e-01 5.00000000e-01 1.20157865e-01 1.20157745e-07 0.00000000e+00 2.59684390e-22 0.00000000e+00 0.00000000e+00 2.59684390e-01 2.40315610e-01 2.59684649e-16 0.00000000e+00 -1.20157745e+02 1.20157745e+02 2.59684390e-13
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[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
3.79842135e-01 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.59684390e-13 3.95169077e-15 0.00000000e+00 8.81515511e-12 2.60900000e-14 0.00000000e+00 0.00000000e+00 -nan 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 3.89406534e-13 2.62033967e-13 0.00000000e+00 3.73091205e+07 5.00000000e-01 5.00000000e-01 0.00000000e+00 0.00000000e+00 1.20157820e+02 1.00000000e+00 0.00000000e+00 2.00000000e-03 1.00000000e-03 1.00000000e-03 1.00000000e-03 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 2.68500000e+01 0.00000000e+00 3.00000000e+02 0.00000000e+00 0.00000000e+00 2.40315610e-01 2.59684390e-01 7.77156117e-16 0.00000000e+00 1.93687795e-02 0.00000000e+00 5.00000000e-01 5.00000000e-01 5.00000000e-01 3.79842135e-01 4.99999880e-01 5.00000000e-01 1.20157865e-01 1.20157745e-07 0.00000000e+00 2.59684390e-22 0.00000000e+00 0.00000000e+00 2.59684390e-01 2.40315610e-01 2.59684649e-16 0.00000000e+00 -1.20157745e+02 1.20157745e+02 2.59684390e-13
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[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
3.79842135e-01 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.59684390e-13 3.95169077e-15 0.00000000e+00 8.81515511e-12 2.60900000e-14 0.00000000e+00 0.00000000e+00 -nan 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 3.89406534e-13 2.62033967e-13 0.00000000e+00 3.73091205e+07 5.00000000e-01 5.00000000e-01 0.00000000e+00 0.00000000e+00 1.20157820e+02 1.00000000e+00 0.00000000e+00 2.00000000e-03 1.00000000e-03 1.00000000e-03 1.00000000e-03 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 2.68500000e+01 0.00000000e+00 3.00000000e+02 0.00000000e+00 0.00000000e+00 2.40315610e-01 2.59684390e-01 7.77156117e-16 0.00000000e+00 1.93687795e-02 0.00000000e+00 5.00000000e-01 5.00000000e-01 5.00000000e-01 3.79842135e-01 4.99999880e-01 5.00000000e-01 1.20157865e-01 1.20157745e-07 0.00000000e+00 2.59684390e-22 0.00000000e+00 0.00000000e+00 2.59684390e-01 2.40315610e-01 2.59684649e-16 0.00000000e+00 -1.20157745e+02 1.20157745e+02 2.59684390e-13
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[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
3.79842135e-01 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.59684390e-13 3.95169077e-15 0.00000000e+00 8.81515511e-12 2.60900000e-14 0.00000000e+00 0.00000000e+00 -nan 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 3.89406534e-13 2.62033967e-13 0.00000000e+00 3.73091205e+07 5.00000000e-01 5.00000000e-01 0.00000000e+00 0.00000000e+00 1.20157820e+02 1.00000000e+00 0.00000000e+00 2.00000000e-03 1.00000000e-03 1.00000000e-03 1.00000000e-03 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 2.68500000e+01 0.00000000e+00 3.00000000e+02 0.00000000e+00 0.00000000e+00 2.40315610e-01 2.59684390e-01 7.77156117e-16 0.00000000e+00 1.93687795e-02 0.00000000e+00 5.00000000e-01 5.00000000e-01 5.00000000e-01 3.79842135e-01 4.99999880e-01 5.00000000e-01 1.20157865e-01 1.20157745e-07 0.00000000e+00 2.59684390e-22 0.00000000e+00 0.00000000e+00 2.59684390e-01 2.40315610e-01 2.59684649e-16 0.00000000e+00 -1.20157745e+02 1.20157745e+02 2.59684390e-13
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[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
3.79842135e-01 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.59684390e-13 3.95169077e-15 0.00000000e+00 8.81515511e-12 0.00000000e+00 0.00000000e+00 0.00000000e+00 -nan 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 2.40315610e-13 2.62033967e-13 0.00000000e+00 3.73091205e+07 5.00000000e-01 5.00000000e-01 0.00000000e+00 0.00000000e+00 1.20157820e+02 1.00000000e+00 0.00000000e+00 2.00000000e-03 1.00000000e-03 1.00000000e-03 1.00000000e-03 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 2.68500000e+01 0.00000000e+00 3.00000000e+02 0.00000000e+00 0.00000000e+00 2.40315610e-01 2.59684390e-01 7.21644966e-16 0.00000000e+00 1.93687795e-02 0.00000000e+00 5.00000000e-01 5.00000000e-01 5.00000000e-01 3.79842135e-01 4.99999880e-01 5.00000000e-01 1.20157865e-01 1.20157745e-07 0.00000000e+00 2.59684390e-22 0.00000000e+00 0.00000000e+00 2.59684390e-01 2.40315610e-01 2.59684649e-16 0.00000000e+00 -1.20157745e+02 1.20157745e+02 2.59684390e-13
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[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
3.79834193e-01 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.59668506e-13 0.00000000e+00 0.00000000e+00 8.82546973e-12 0.00000000e+00 0.00000000e+00 0.00000000e+00 -nan 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 2.40331494e-13 2.62016678e-13 0.00000000e+00 3.72999110e+07 5.00000000e-01 5.00000000e-01 0.00000000e+00 0.00000000e+00 1.20165796e+02 1.00000000e+00 0.00000000e+00 2.00000000e-03 1.00000000e-03 1.00000000e-03 1.00000000e-03 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00 2.68500000e+01 0.00000000e+00 3.00000000e+02 0.00000000e+00 0.00000000e+00 2.40331494e-01 2.59668506e-01 7.21644966e-16 0.00000000e+00 1.93370116e-02 0.00000000e+00 5.00000000e-01 5.00000000e-01 5.00000000e-01 3.79834193e-01 4.99999880e-01 5.00000000e-01 1.20165807e-01 1.20165687e-07 0.00000000e+00 2.59668506e-22 0.00000000e+00 0.00000000e+00 2.59668506e-01 2.40331494e-01 2.59668765e-16 0.00000000e+00 -1.20165687e+02 1.20165687e+02 2.59668506e-13

View File

@ -19,8 +19,14 @@ IFparm HICUMpTable[] = { /* parameters */
IOPU("area", HICUM_AREA, IF_REAL, "Area factor"),
IOPU("off", HICUM_OFF, IF_FLAG, "Device initially off"),
IP("ic", HICUM_IC, IF_REALVEC, "Initial condition vector"),
IOPAU("icvbe", HICUM_IC_VBE, IF_REAL, "Initial B-E voltage"),
IOPAU("icvce", HICUM_IC_VCE, IF_REAL, "Initial C-E voltage"),
IOPAU("icvb", HICUM_IC_VB, IF_REAL, "Initial B potential"),
IOPAU("icvc", HICUM_IC_VC, IF_REAL, "Initial C potential"),
IOPAU("icve", HICUM_IC_VE, IF_REAL, "Initial E potential"),
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("icvei", HICUM_IC_VEi, IF_REAL, "Initial Ei potential"),
IOPU("m", HICUM_M, IF_REAL, "Multiplier"),
IOPU("temp", HICUM_TEMP, IF_REAL, "Instance temperature"),
IP("dt", HICUM_DTEMP, IF_REAL, "Instance delta temperature"),

View File

@ -37,11 +37,26 @@ HICUMask(CKTcircuit *ckt, GENinstance *instPtr, int which, IFvalue *value, IFval
case HICUM_OFF:
value->iValue = here->HICUMoff;
return(OK);
case HICUM_IC_VBE:
value->rValue = here->HICUMicVBE;
case HICUM_IC_VB:
value->rValue = here->HICUMicVB;
return(OK);
case HICUM_IC_VCE:
value->rValue = here->HICUMicVCE;
case HICUM_IC_VE:
value->rValue = here->HICUMicVE;
return(OK);
case HICUM_IC_VC:
value->rValue = here->HICUMicVC;
return(OK);
case HICUM_IC_VBi:
value->rValue = here->HICUMicVBi;
return(OK);
case HICUM_IC_VBp:
value->rValue = here->HICUMicVBp;
return(OK);
case HICUM_IC_VEi:
value->rValue = here->HICUMicVEi;
return(OK);
case HICUM_IC_VCi:
value->rValue = here->HICUMicVCi;
return(OK);
case HICUM_TEMP:
value->rValue = here->HICUMtemp - CONSTCtoK;

View File

@ -62,8 +62,15 @@ typedef struct sHICUMinstance {
int HICUMxf2Node; /* number of internal excess phase node itf */
double HICUMarea; /* area factor for the hicum */
double HICUMicVBE; /* initial condition voltage B-E */
double HICUMicVCE; /* initial condition voltage C-E */
//initial conditions
double HICUMicVBi; /* initial condition potential Bi */
double HICUMicVBp; /* initial condition potential Bp */
double HICUMicVB; /* initial condition potential B */
double HICUMicVCi; /* initial condition potential Ci */
double HICUMicVEi; /* initial condition potential Ei */
double HICUMicVC; /* initial condition potential C */
double HICUMicVE; /* initial condition potential E */
double HICUMtemp; /* instance temperature */
double HICUMdtemp; /* instance delta temperature */
double HICUMdtemp_sh; /* instance delta temperature because of self-heating */
@ -246,13 +253,18 @@ typedef struct sHICUMinstance {
double *HICUMtempSubsSIPtr;
double *HICUMtempTempPtr;
unsigned HICUMareaGiven :1; /* flag to indicate area was specified */
unsigned HICUMoff :1; /* 'off' flag for hicum */
unsigned HICUMicVBEGiven :1; /* flag to indicate VBE init. cond. given */
unsigned HICUMicVCEGiven :1; /* flag to indicate VCE 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 */
unsigned HICUMareaGiven :1; /* flag to indicate area was specified */
unsigned HICUMoff :1; /* 'off' flag for hicum */
unsigned HICUMicVBGiven :1; /* flag to indicate VB init. cond. given */
unsigned HICUMicVEGiven :1; /* flag to indicate VE init. cond. given */
unsigned HICUMicVCGiven :1; /* flag to indicate VC init. cond. given */
unsigned HICUMicVBiGiven :1; /* flag to indicate VBi init. cond. given */
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 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 */
double HICUMcaprbi;
double HICUMcapdeix;
@ -783,8 +795,13 @@ enum {
HICUM_AREA = 1,
HICUM_OFF,
HICUM_IC,
HICUM_IC_VBE,
HICUM_IC_VCE,
HICUM_IC_VB,
HICUM_IC_VE,
HICUM_IC_VC,
HICUM_IC_VBi,
HICUM_IC_VBp,
HICUM_IC_VEi,
HICUM_IC_VCi,
HICUM_TEMP,
HICUM_DTEMP,
HICUM_M,

View File

@ -31,15 +31,33 @@ HICUMgetic(GENmodel *inModel, CKTcircuit *ckt)
for( ; model ; model = HICUMnextModel(model)) {
for(here = HICUMinstances(model); here ; here = HICUMnextInstance(here)) {
if(!here->HICUMicVBEGiven) {
here->HICUMicVBE =
*(ckt->CKTrhs + here->HICUMbaseNode) -
if(!here->HICUMicVBGiven) {
here->HICUMicVB =
*(ckt->CKTrhs + here->HICUMbaseNode);
}
if(!here->HICUMicVCGiven) {
here->HICUMicVC =
*(ckt->CKTrhs + here->HICUMcollNode);
}
if(!here->HICUMicVEGiven) {
here->HICUMicVE =
*(ckt->CKTrhs + here->HICUMemitNode);
}
if(!here->HICUMicVCEGiven) {
here->HICUMicVCE =
*(ckt->CKTrhs + here->HICUMcollNode) -
*(ckt->CKTrhs + here->HICUMemitNode);
if(!here->HICUMicVBiGiven) {
here->HICUMicVBi =
*(ckt->CKTrhs + here->HICUMbaseBINode);
}
if(!here->HICUMicVBpGiven) {
here->HICUMicVBp =
*(ckt->CKTrhs + here->HICUMbaseBPNode);
}
if(!here->HICUMicVCiGiven) {
here->HICUMicVCi =
*(ckt->CKTrhs + here->HICUMcollCINode);
}
if(!here->HICUMicVEiGiven) {
here->HICUMicVEi =
*(ckt->CKTrhs + here->HICUMemitEINode);
}
}
}

View File

@ -34,13 +34,33 @@ HICUMparam(int param, IFvalue *value, GENinstance *instPtr, IFvalue *select)
case HICUM_OFF:
here->HICUMoff = (value->iValue != 0);
break;
case HICUM_IC_VBE:
here->HICUMicVBE = value->rValue;
here->HICUMicVBEGiven = TRUE;
case HICUM_IC_VB:
here->HICUMicVB = value->rValue;
here->HICUMicVBGiven = TRUE;
break;
case HICUM_IC_VCE:
here->HICUMicVCE = value->rValue;
here->HICUMicVCEGiven = TRUE;
case HICUM_IC_VE:
here->HICUMicVE = value->rValue;
here->HICUMicVEGiven = TRUE;
break;
case HICUM_IC_VC:
here->HICUMicVC = value->rValue;
here->HICUMicVCGiven = TRUE;
break;
case HICUM_IC_VBi:
here->HICUMicVBi = value->rValue;
here->HICUMicVBiGiven = TRUE;
break;
case HICUM_IC_VBp:
here->HICUMicVBp = value->rValue;
here->HICUMicVBpGiven = TRUE;
break;
case HICUM_IC_VEi:
here->HICUMicVEi = value->rValue;
here->HICUMicVEiGiven = TRUE;
break;
case HICUM_IC_VCi:
here->HICUMicVCi = value->rValue;
here->HICUMicVCiGiven = TRUE;
break;
case HICUM_TEMP:
here->HICUMtemp = value->rValue+CONSTCtoK;
@ -56,12 +76,12 @@ HICUMparam(int param, IFvalue *value, GENinstance *instPtr, IFvalue *select)
break;
case HICUM_IC :
switch(value->v.numValue) {
case 2:
here->HICUMicVCE = *(value->v.vec.rVec+1);
here->HICUMicVCEGiven = TRUE;
case 2: //todo
here->HICUMicVC = *(value->v.vec.rVec+1);
here->HICUMicVCGiven = TRUE;
case 1:
here->HICUMicVBE = *(value->v.vec.rVec);
here->HICUMicVBEGiven = TRUE;
here->HICUMicVB = *(value->v.vec.rVec);
here->HICUMicVBGiven = TRUE;
break;
default:
return(E_BADPARM);

View File

@ -558,8 +558,8 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
duals::duald result_itf, result_itr, result_Qf, result_Qr; //intermediate variables when calling void dual functions
double Orci0_t,b_q,I_Tf1,T_f0,Q_fT,T_fT,Q_bf;
double a_h,d_Q;
// double volatile Q_pT, Q_pT_dVbiei, Q_pT_dVbici, Q_pT_dT, Q_pT_dick, Q_pT_dT_f0, Q_pT_dQ_0, Q_pT_dVciei;
// double volatile Q_pT_dT_numerical, Q_pT_dVbiei_numerical, Q_pT_dVbici_numerical, Q_pT_dQ_0_numerical, Q_pT_dT_f0_numerical, Q_pT_dick_numerical;
double volatile Q_pT, Q_pT_dVbiei, Q_pT_dVbici, Q_pT_dT, Q_pT_dick, Q_pT_dT_f0, Q_pT_dQ_0, Q_pT_dVciei;
double volatile Q_pT_dT_numerical, Q_pT_dVbiei_numerical, Q_pT_dVbici_numerical, Q_pT_dQ_0_numerical, Q_pT_dT_f0_numerical, Q_pT_dick_numerical;
double Qf, Cdei, Qr, Cdci;
double ick, ick_Vciei, ick_dT,vc,cjcx01,cjcx02;
int l_it;
@ -887,6 +887,9 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
//Internal base resistance
duals::duald vt,rbi;
vt = CONSTboltz * T / CHARGE;
//dirty
rbi = here->HICUMrbi0_t;
return rbi;
if(here->HICUMrbi0_t > 0.0){ //: HICRBI
duals::duald Qz_nom,f_QR,ETA,Qz0,fQz;
// Consideration of conductivity modulation
@ -920,6 +923,17 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
duals::duald VT, VT_f, i_0f, i_0r, I_Tf1, a_h, Tf,Q_bf,Q_fT,T_fT;
VT = CONSTboltz * T / CHARGE;
VT_f = model->HICUMmcf*VT;
// //dirty fix begin --------------
// i_0f = here->HICUMc10_t * exp(Vbiei/VT_f);
// i_0r = here->HICUMc10_t * exp(Vbici/VT);
// *itf = i_0f/here->HICUMqp0_t;
// *itr = 0;
// *Qf = 0;
// *Qr = 0;
// return;
// //end dirty -----------------------
i_0f = here->HICUMc10_t * exp(Vbiei/VT_f);
i_0r = here->HICUMc10_t * exp(Vbici/VT);
@ -1168,26 +1182,35 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
Vrth = *(ckt->CKTstate1 + here->HICUMvrth);
} else if((ckt->CKTmode & MODEINITJCT) &&
(ckt->CKTmode & MODETRANOP) && (ckt->CKTmode & MODEUIC)){
Vbe=Vbiei=model->HICUMtype*here->HICUMicVBE;
Vciei=model->HICUMtype*here->HICUMicVCE;
Vbci=Vbici=Vbpci=Vbiei-Vciei;
Vbpei=0.0;
Vbiei = here->HICUMicVBi-here->HICUMicVEi; //here was a hicumtype before, why?
Vciei = here->HICUMicVCi-here->HICUMicVEi; //here was a hicumtype before, why?
Vbci = here->HICUMicVB-here->HICUMicVCi;
Vbici = here->HICUMicVBi-here->HICUMicVCi;
Vbpci = here->HICUMicVBp-here->HICUMicVCi;
Vbpei = here->HICUMicVBp-here->HICUMicVEi;
Vbpbi = here->HICUMicVBp-here->HICUMicVBi;
Vbbp = here->HICUMicVB-here->HICUMicVBp;
Vbpe = here->HICUMicVBp-here->HICUMicVE;
Vcic = here->HICUMicVCi-here->HICUMicVC;
Veie = here->HICUMicVEi-here->HICUMicVE;
Vsc=Vsici=0.0;
Vbpbi=Vbbp=Vbpe=0.0;
Vcic=Veie=Vsis=0.0;
Vsis=0.0;
Vrth=0.0,Icth=0.0,Icth_dT=0.0;
Vbxf=Vbxf1=Vbxf2=0.0;
} else if((ckt->CKTmode & MODEINITJCT) && (here->HICUMoff==0)) {
Vbe=Vbiei=model->HICUMtype*here->HICUMicVBE;
Vciei=model->HICUMtype*here->HICUMicVCE;
Vbci=Vbici=Vbpci=Vbiei-Vciei;
// Vbe=Vbiei=model->HICUMtype*here->HICUMtVcrit;
// Vciei=0.0;
// Vbci=Vbici=Vbpci=0.0;
Vbpei=0.0;
Vbiei = here->HICUMicVBi-here->HICUMicVEi; //here was a hicumtype before, why?
Vciei = here->HICUMicVCi-here->HICUMicVEi; //here was a hicumtype before, why?
Vbci = here->HICUMicVB-here->HICUMicVCi;
Vbici = here->HICUMicVBi-here->HICUMicVCi;
Vbpci = here->HICUMicVBp-here->HICUMicVCi;
Vbpei = here->HICUMicVBp-here->HICUMicVEi;
Vbpbi = here->HICUMicVBp-here->HICUMicVBi;
Vbbp = here->HICUMicVB-here->HICUMicVBp;
Vbpe = here->HICUMicVBp-here->HICUMicVE;
Vcic = here->HICUMicVCi-here->HICUMicVC;
Veie = here->HICUMicVEi-here->HICUMicVE;
Vsc=Vsici=0.0;
Vbpbi=Vbbp=Vbpe=0.0;
Vcic=Veie=Vsis=0.0;
Vsis=0.0;
Vrth=0.0,Icth=0.0,Icth_dT=0.0;
Vbxf=Vbxf1=Vbxf2=0.0;
} else if((ckt->CKTmode & MODEINITJCT) ||
@ -1613,46 +1636,46 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
//todo: derivatives of temperature dependent hicum parameters
//todo: it should be enough to run the newtone once -> potential for performance improvement is exactly here
// result = calc_it(here->HICUMtemp+1_e, Vbiei , Vbici , Q_0 , T_f0 , ick );
// Q_pT = result.rpart();
// Q_pT_dT = result.dpart();
// result = calc_it(here->HICUMtemp , Vbiei+1_e, Vbici , Q_0 , T_f0 , ick );
// Q_pT_dVbiei = result.dpart();
// result = calc_it(here->HICUMtemp , Vbiei , Vbici+1_e, Q_0 , T_f0 , ick );
// Q_pT_dVbici = result.dpart();
// result = calc_it(here->HICUMtemp , Vbiei , Vbici , Q_0+1_e, T_f0 , ick );
// Q_pT_dQ_0 = result.dpart();
// result = calc_it(here->HICUMtemp , Vbiei , Vbici , Q_0 , T_f0+1_e, ick );
// Q_pT_dT_f0 = result.dpart();
// result = calc_it(here->HICUMtemp , Vbiei , Vbici , Q_0 , T_f0 , ick+1_e);
// Q_pT_dick = result.dpart();
result = calc_it(here->HICUMtemp+1_e, Vbiei , Vbici , Q_0 , T_f0 , ick );
Q_pT = result.rpart();
Q_pT_dT = result.dpart();
result = calc_it(here->HICUMtemp , Vbiei+1_e, Vbici , Q_0 , T_f0 , ick );
Q_pT_dVbiei = result.dpart();
result = calc_it(here->HICUMtemp , Vbiei , Vbici+1_e, Q_0 , T_f0 , ick );
Q_pT_dVbici = result.dpart();
result = calc_it(here->HICUMtemp , Vbiei , Vbici , Q_0+1_e, T_f0 , ick );
Q_pT_dQ_0 = result.dpart();
result = calc_it(here->HICUMtemp , Vbiei , Vbici , Q_0 , T_f0+1_e, ick );
Q_pT_dT_f0 = result.dpart();
result = calc_it(here->HICUMtemp , Vbiei , Vbici , Q_0 , T_f0 , ick+1_e);
Q_pT_dick = result.dpart();
//check derivatives numerically (delete ones everything works....)
// result = calc_it(here->HICUMtemp+1e-3, Vbiei , Vbici , Q_0 , T_f0 , ick );
// Q_pT_dT_numerical = (result.rpart() - Q_pT)/1e-3;
// result = calc_it(here->HICUMtemp, Vbiei +1e-3 , Vbici , Q_0 , T_f0 , ick );
// Q_pT_dVbiei_numerical = (result.rpart() - Q_pT)/1e-3;
// result = calc_it(here->HICUMtemp, Vbiei , Vbici +1e-3 , Q_0 , T_f0 , ick );
// Q_pT_dVbici_numerical = (result.rpart() - Q_pT)/1e-3;
// result = calc_it(here->HICUMtemp, Vbiei , Vbici , Q_0 +Q_0*1e-3 , T_f0 , ick );
// Q_pT_dQ_0_numerical = (result.rpart() - Q_pT)/(Q_0*1e-3);
// result = calc_it(here->HICUMtemp, Vbiei , Vbici , Q_0 , T_f0 +T_f0*1e-3 , ick );
// Q_pT_dT_f0_numerical = (result.rpart() - Q_pT)/(T_f0*1e-3) ;
// result = calc_it(here->HICUMtemp, Vbiei , Vbici , Q_0 , T_f0 , ick +ick*1e-3 );
// Q_pT_dick_numerical = (result.rpart() - Q_pT)/(ick*1e-3);
result = calc_it(here->HICUMtemp+1e-3, Vbiei , Vbici , Q_0 , T_f0 , ick );
Q_pT_dT_numerical = (result.rpart() - Q_pT)/1e-3;
result = calc_it(here->HICUMtemp, Vbiei +1e-3 , Vbici , Q_0 , T_f0 , ick );
Q_pT_dVbiei_numerical = (result.rpart() - Q_pT)/1e-3;
result = calc_it(here->HICUMtemp, Vbiei , Vbici +1e-3 , Q_0 , T_f0 , ick );
Q_pT_dVbici_numerical = (result.rpart() - Q_pT)/1e-3;
result = calc_it(here->HICUMtemp, Vbiei , Vbici , Q_0 +Q_0*1e-3 , T_f0 , ick );
Q_pT_dQ_0_numerical = (result.rpart() - Q_pT)/(Q_0*1e-3);
result = calc_it(here->HICUMtemp, Vbiei , Vbici , Q_0 , T_f0 +T_f0*1e-3 , ick );
Q_pT_dT_f0_numerical = (result.rpart() - Q_pT)/(T_f0*1e-3) ;
result = calc_it(here->HICUMtemp, Vbiei , Vbici , Q_0 , T_f0 , ick +ick*1e-3 );
Q_pT_dick_numerical = (result.rpart() - Q_pT)/(ick*1e-3);
//add derivatives of ick
// Q_pT_dVciei = Q_pT_dick*ick_Vciei; //additional component not seen in equivalent circuit of HiCUM...jesus
// Q_pT_dT += Q_pT_dick*ick_dT;
Q_pT_dVciei = Q_pT_dick*ick_Vciei; //additional component not seen in equivalent circuit of HiCUM...jesus
Q_pT_dT += Q_pT_dick*ick_dT;
// //add derivatives of Q_0
// Q_pT_dVbiei += Q_pT_dQ_0*Q_0_Vbiei;
// Q_pT_dVbici += Q_pT_dQ_0*Q_0_Vbici;
// Q_pT_dT += Q_pT_dQ_0*Q_0_dT;
Q_pT_dVbiei += Q_pT_dQ_0*Q_0_Vbiei;
Q_pT_dVbici += Q_pT_dQ_0*Q_0_Vbici;
Q_pT_dT += Q_pT_dQ_0*Q_0_dT;
// //add derivatives of T_f0
// Q_pT_dVbici += Q_pT_dT_f0*T_f0_Vbici;
// Q_pT_dT += Q_pT_dT*T_f0_dT;
Q_pT_dVbici += Q_pT_dT_f0*T_f0_Vbici;
Q_pT_dT += Q_pT_dT*T_f0_dT;
//end Q_pT -------------------------------------------------------------------------------
@ -1703,25 +1726,25 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
Qr_dick = result_Qr.dpart();
// add derivatives of Q_pT = f(Vbici,Vbiei,Vciei,T)
// itf_dT += itf_dQ_pT*Q_pT_dT;
// itr_dT += itr_dQ_pT*Q_pT_dT;
// Qf_dT += Qf_dQ_pT*Q_pT_dT;
// Qr_dT += Qr_dQ_pT*Q_pT_dT;
itf_dT += itf_dQ_pT*Q_pT_dT;
itr_dT += itr_dQ_pT*Q_pT_dT;
Qf_dT += Qf_dQ_pT*Q_pT_dT;
Qr_dT += Qr_dQ_pT*Q_pT_dT;
// itf_Vbiei += itf_dQ_pT*Q_pT_dVbiei;
// itr_Vbiei += itr_dQ_pT*Q_pT_dVbiei;
// Qf_Vbiei += Qf_dQ_pT*Q_pT_dVbiei;
// Qr_Vbiei += Qr_dQ_pT*Q_pT_dVbiei;
itf_Vbiei += itf_dQ_pT*Q_pT_dVbiei;
itr_Vbiei += itr_dQ_pT*Q_pT_dVbiei;
Qf_Vbiei += Qf_dQ_pT*Q_pT_dVbiei;
Qr_Vbiei += Qr_dQ_pT*Q_pT_dVbiei;
// itf_Vbici += itf_dQ_pT*Q_pT_dVbici;
// itr_Vbici += itr_dQ_pT*Q_pT_dVbici;
// Qf_Vbici += Qf_dQ_pT*Q_pT_dVbici;
// Qr_Vbici += Qr_dQ_pT*Q_pT_dVbici;
itf_Vbici += itf_dQ_pT*Q_pT_dVbici;
itr_Vbici += itr_dQ_pT*Q_pT_dVbici;
Qf_Vbici += Qf_dQ_pT*Q_pT_dVbici;
Qr_Vbici += Qr_dQ_pT*Q_pT_dVbici;
// itf_Vciei += itf_dQ_pT*Q_pT_dVciei;
// itr_Vciei += itr_dQ_pT*Q_pT_dVciei;
// Qf_Vciei += Qf_dQ_pT*Q_pT_dVciei;
// Qr_Vciei += Qr_dQ_pT*Q_pT_dVciei;
itf_Vciei += itf_dQ_pT*Q_pT_dVciei;
itr_Vciei += itr_dQ_pT*Q_pT_dVciei;
Qf_Vciei += Qf_dQ_pT*Q_pT_dVciei;
Qr_Vciei += Qr_dQ_pT*Q_pT_dVciei;
// add derivatives of T_f0 = f(Vbici, T)
itf_Vbici += itf_dick*T_f0_Vbici;