diff --git a/rawspice.raw b/rawspice.raw new file mode 100644 index 000000000..dcb98ac68 --- /dev/null +++ b/rawspice.raw @@ -0,0 +1,745 @@ +Title: dmt generated netlist +Date: Sat Jul 11 15:14:06 2020 +Plotname: Operating Point +Flags: real +No. Variables: 70 +No. Points: 1 +Variables: + 0 n_c voltage + 1 @q_q_h[betaac] voltage + 2 @q_q_h[betadc] voltage + 3 @q_q_h[ccs] capacitance + 4 @q_q_h[cmui] capacitance + 5 @q_q_h[cmux] capacitance + 6 @q_q_h[cpii] capacitance + 7 @q_q_h[cpix] capacitance + 8 @q_q_h[crbi] capacitance + 9 @q_q_h[dtsh] voltage + 10 @q_q_h[ft] voltage + 11 @q_q_h[gmi] admittance + 12 @q_q_h[gms] admittance + 13 i(@q_q_h[iavl]) current + 14 i(@q_q_h[ib]) current + 15 i(@q_q_h[ibci]) current + 16 i(@q_q_h[ibei]) current + 17 i(@q_q_h[ic]) current + 18 i(@q_q_h[ick]) current + 19 i(@q_q_h[ie]) current + 20 i(@q_q_h[is]) current + 21 i(@q_q_h[it]) current + 22 @q_q_h[m] voltage + 23 @q_q_h[p] power + 24 @q_q_h[rb] voltage + 25 @q_q_h[rbi] voltage + 26 @q_q_h[rcx_t] voltage + 27 @q_q_h[re_t] voltage + 28 @q_q_h[rmui] voltage + 29 @q_q_h[rmux] voltage + 30 @q_q_h[roi] voltage + 31 @q_q_h[rpii] voltage + 32 @q_q_h[rpix] voltage + 33 @q_q_h[temp] voltage + 34 @q_q_h[tf] voltage + 35 @q_q_h[tk] voltage + 36 @q_q_h[vbbp] voltage + 37 @q_q_h[vbc] voltage + 38 @q_q_h[vbe] voltage + 39 @q_q_h[vbici] voltage + 40 @q_q_h[vbiei] voltage + 41 @q_q_h[vbpbi] voltage + 42 @q_q_h[vce] voltage + 43 @q_q_h[vciei] voltage + 44 @q_q_h[vsc] voltage + 45 n_b voltage + 46 n_b_forced voltage + 47 n_bx voltage + 48 n_c_forced voltage + 49 n_cx voltage + 50 n_e voltage + 51 n_e_forced voltage + 52 n_ex voltage + 53 n_s voltage + 54 n_sx voltage + 55 n_t voltage + 56 q_q_h#collci voltage + 57 q_q_h#emitei voltage + 58 q_q_h#subssi voltage + 59 q_q_h#xf voltage + 60 q_q_h#xf1 voltage + 61 q_q_h#xf2 voltage + 62 i(v_v_b) current + 63 i(v_v_c) current + 64 i(v_v_e) current + 65 i(v_v_s) current + 66 i(v_v_v_b) current + 67 i(v_v_v_c) current + 68 i(v_v_v_e) current + 69 i(v_v_v_s) current +Values: + 0 1.999999999999999e+00 + 2.015820960757590e-34 + -1.284349804129181e+02 + 1.973886148229769e-15 + 1.747681823948260e-16 + 1.551402081692822e-15 + 6.344691137456945e-16 + 1.783589713534423e-15 + 8.092372961405205e-16 + 1.090683099391754e-08 + 1.348648355838772e-22 + 2.205013024816219e-47 + 1.179834970232417e-46 + 1.630495164519588e-14 + -3.785223511284394e-15 + -1.630669801643895e-14 + 1.252360523290239e-14 + 4.861551075303282e-13 + 7.135973196891111e-03 + -4.909281342628674e-13 + -8.644788778686730e-16 + 4.689817999082727e-13 + 1.000000000000000e+00 + 9.790813523192944e-13 + 1.134770039598727e+02 + 7.240352190377749e+01 + 3.972735488616852e+01 + 2.433585113114196e+01 + 2.013221934661670e+13 + 9.999999999999999e+17 + 9.999999999999999e+17 + 3.928496858701236e+12 + 5.213494313553190e+12 + 2.485000000000002e+01 + 2.350813231799441e-13 + 2.980000000000000e+02 + -1.194715399151042e-11 + 0.000000000000000e+00 + 0.000000000000000e+00 + -1.699999999980643e+00 + 2.999999999880947e-01 + -2.739475313262574e-13 + 0.000000000000000e+00 + 1.999999999968738e+00 + 0.000000000000000e+00 + 2.999999999999999e-01 + 3.000000000000000e-01 + 3.000000000000000e-01 + 2.000000000000000e+00 + 2.000000000000000e+00 + 4.909281342628685e-16 + 0.000000000000000e+00 + 0.000000000000000e+00 + 0.000000000000000e+00 + 0.000000000000000e+00 + 1.090684476258629e-08 + 1.999999999980686e+00 + 1.194764491964468e-11 + 6.915831022949383e-12 + 1.102488620697488e-25 + 4.689817999082728e-13 + 4.689817999082727e-13 + -5.684341886080801e-14 + -6.821210263296962e-13 + 4.909281342628685e-13 + 8.644788778686729e-16 + -5.684341886080801e-14 + -6.821210263296962e-13 + 4.909281342628685e-13 + 8.644788778686729e-16 + +Title: dmt generated netlist +Date: Sat Jul 11 15:15:22 2020 +Plotname: Operating Point +Flags: real +No. Variables: 70 +No. Points: 1 +Variables: + 0 n_c voltage + 1 @q_q_h[betaac] voltage + 2 @q_q_h[betadc] voltage + 3 @q_q_h[ccs] capacitance + 4 @q_q_h[cmui] capacitance + 5 @q_q_h[cmux] capacitance + 6 @q_q_h[cpii] capacitance + 7 @q_q_h[cpix] capacitance + 8 @q_q_h[crbi] capacitance + 9 @q_q_h[dtsh] voltage + 10 @q_q_h[ft] voltage + 11 @q_q_h[gmi] admittance + 12 @q_q_h[gms] admittance + 13 i(@q_q_h[iavl]) current + 14 i(@q_q_h[ib]) current + 15 i(@q_q_h[ibci]) current + 16 i(@q_q_h[ibei]) current + 17 i(@q_q_h[ic]) current + 18 i(@q_q_h[ick]) current + 19 i(@q_q_h[ie]) current + 20 i(@q_q_h[is]) current + 21 i(@q_q_h[it]) current + 22 @q_q_h[m] voltage + 23 @q_q_h[p] power + 24 @q_q_h[rb] voltage + 25 @q_q_h[rbi] voltage + 26 @q_q_h[rcx_t] voltage + 27 @q_q_h[re_t] voltage + 28 @q_q_h[rmui] voltage + 29 @q_q_h[rmux] voltage + 30 @q_q_h[roi] voltage + 31 @q_q_h[rpii] voltage + 32 @q_q_h[rpix] voltage + 33 @q_q_h[temp] voltage + 34 @q_q_h[tf] voltage + 35 @q_q_h[tk] voltage + 36 @q_q_h[vbbp] voltage + 37 @q_q_h[vbc] voltage + 38 @q_q_h[vbe] voltage + 39 @q_q_h[vbici] voltage + 40 @q_q_h[vbiei] voltage + 41 @q_q_h[vbpbi] voltage + 42 @q_q_h[vce] voltage + 43 @q_q_h[vciei] voltage + 44 @q_q_h[vsc] voltage + 45 n_b voltage + 46 n_b_forced voltage + 47 n_bx voltage + 48 n_c_forced voltage + 49 n_cx voltage + 50 n_e voltage + 51 n_e_forced voltage + 52 n_ex voltage + 53 n_s voltage + 54 n_sx voltage + 55 n_t voltage + 56 q_q_h#collci voltage + 57 q_q_h#emitei voltage + 58 q_q_h#subssi voltage + 59 q_q_h#xf voltage + 60 q_q_h#xf1 voltage + 61 q_q_h#xf2 voltage + 62 i(v_v_b) current + 63 i(v_v_c) current + 64 i(v_v_e) current + 65 i(v_v_s) current + 66 i(v_v_v_b) current + 67 i(v_v_v_c) current + 68 i(v_v_v_e) current + 69 i(v_v_v_s) current +Values: + 0 1.999999999999999e+00 + 2.015820960757590e-34 + -1.284349804129181e+02 + 1.973886148229769e-15 + 1.747681823948260e-16 + 1.551402081692822e-15 + 6.344691137456945e-16 + 1.783589713534423e-15 + 8.092372961405205e-16 + 1.090683099391754e-08 + 1.348648355838772e-22 + 2.205013024816219e-47 + 1.179834970232417e-46 + 1.630495164519588e-14 + -3.785223511284394e-15 + -1.630669801643895e-14 + 1.252360523290239e-14 + 4.861551075303282e-13 + 7.135973196891111e-03 + -4.909281342628674e-13 + -8.644788778686730e-16 + 4.689817999082727e-13 + 1.000000000000000e+00 + 9.790813523192944e-13 + 1.134770039598727e+02 + 7.240352190377749e+01 + 3.972735488616852e+01 + 2.433585113114196e+01 + 2.013221934661670e+13 + 9.999999999999999e+17 + 9.999999999999999e+17 + 3.928496858701236e+12 + 5.213494313553190e+12 + 2.485000000000002e+01 + 2.350813231799441e-13 + 2.980000000000000e+02 + -1.194715399151042e-11 + 0.000000000000000e+00 + 0.000000000000000e+00 + -1.699999999980643e+00 + 2.999999999880947e-01 + -2.739475313262574e-13 + 0.000000000000000e+00 + 1.999999999968738e+00 + 0.000000000000000e+00 + 2.999999999999999e-01 + 3.000000000000000e-01 + 3.000000000000000e-01 + 2.000000000000000e+00 + 2.000000000000000e+00 + 4.909281342628685e-16 + 0.000000000000000e+00 + 0.000000000000000e+00 + 0.000000000000000e+00 + 0.000000000000000e+00 + 1.090684476258629e-08 + 1.999999999980686e+00 + 1.194764491964468e-11 + 6.915831022949383e-12 + 1.102488620697488e-25 + 4.689817999082728e-13 + 4.689817999082727e-13 + -5.684341886080801e-14 + -6.821210263296962e-13 + 4.909281342628685e-13 + 8.644788778686729e-16 + -5.684341886080801e-14 + -6.821210263296962e-13 + 4.909281342628685e-13 + 8.644788778686729e-16 + +Title: dmt generated netlist +Date: Sat Jul 11 15:20:53 2020 +Plotname: Operating Point +Flags: real +No. Variables: 70 +No. Points: 1 +Variables: + 0 n_c voltage + 1 @q_q_h[betaac] voltage + 2 @q_q_h[betadc] voltage + 3 @q_q_h[ccs] capacitance + 4 @q_q_h[cmui] capacitance + 5 @q_q_h[cmux] capacitance + 6 @q_q_h[cpii] capacitance + 7 @q_q_h[cpix] capacitance + 8 @q_q_h[crbi] capacitance + 9 @q_q_h[dtsh] voltage + 10 @q_q_h[ft] voltage + 11 @q_q_h[gmi] admittance + 12 @q_q_h[gms] admittance + 13 i(@q_q_h[iavl]) current + 14 i(@q_q_h[ib]) current + 15 i(@q_q_h[ibci]) current + 16 i(@q_q_h[ibei]) current + 17 i(@q_q_h[ic]) current + 18 i(@q_q_h[ick]) current + 19 i(@q_q_h[ie]) current + 20 i(@q_q_h[is]) current + 21 i(@q_q_h[it]) current + 22 @q_q_h[m] voltage + 23 @q_q_h[p] power + 24 @q_q_h[rb] voltage + 25 @q_q_h[rbi] voltage + 26 @q_q_h[rcx_t] voltage + 27 @q_q_h[re_t] voltage + 28 @q_q_h[rmui] voltage + 29 @q_q_h[rmux] voltage + 30 @q_q_h[roi] voltage + 31 @q_q_h[rpii] voltage + 32 @q_q_h[rpix] voltage + 33 @q_q_h[temp] voltage + 34 @q_q_h[tf] voltage + 35 @q_q_h[tk] voltage + 36 @q_q_h[vbbp] voltage + 37 @q_q_h[vbc] voltage + 38 @q_q_h[vbe] voltage + 39 @q_q_h[vbici] voltage + 40 @q_q_h[vbiei] voltage + 41 @q_q_h[vbpbi] voltage + 42 @q_q_h[vce] voltage + 43 @q_q_h[vciei] voltage + 44 @q_q_h[vsc] voltage + 45 n_b voltage + 46 n_b_forced voltage + 47 n_bx voltage + 48 n_c_forced voltage + 49 n_cx voltage + 50 n_e voltage + 51 n_e_forced voltage + 52 n_ex voltage + 53 n_s voltage + 54 n_sx voltage + 55 n_t voltage + 56 q_q_h#collci voltage + 57 q_q_h#emitei voltage + 58 q_q_h#subssi voltage + 59 q_q_h#xf voltage + 60 q_q_h#xf1 voltage + 61 q_q_h#xf2 voltage + 62 i(v_v_b) current + 63 i(v_v_c) current + 64 i(v_v_e) current + 65 i(v_v_s) current + 66 i(v_v_v_b) current + 67 i(v_v_v_c) current + 68 i(v_v_v_e) current + 69 i(v_v_v_s) current +Values: + 0 1.999999999999999e+00 + 2.015820960757590e-34 + -1.284349804129181e+02 + 1.973886148229769e-15 + 1.747681823948260e-16 + 1.551402081692822e-15 + 6.344691137456945e-16 + 1.783589713534423e-15 + 8.092372961405205e-16 + 1.090683099391754e-08 + 1.348648355838772e-22 + 2.205013024816219e-47 + 1.179834970232417e-46 + 1.630495164519588e-14 + -3.785223511284394e-15 + -1.630669801643895e-14 + 1.252360523290239e-14 + 4.861551075303282e-13 + 7.135973196891111e-03 + -4.909281342628674e-13 + -8.644788778686730e-16 + 4.689817999082727e-13 + 1.000000000000000e+00 + 9.790813523192944e-13 + 1.134770039598727e+02 + 7.240352190377749e+01 + 3.972735488616852e+01 + 2.433585113114196e+01 + 2.013221934661670e+13 + 9.999999999999999e+17 + 9.999999999999999e+17 + 3.928496858701236e+12 + 5.213494313553190e+12 + 2.485000000000002e+01 + 2.350813231799441e-13 + 2.980000000000000e+02 + -1.194715399151042e-11 + 0.000000000000000e+00 + 0.000000000000000e+00 + -1.699999999980643e+00 + 2.999999999880947e-01 + -2.739475313262574e-13 + 0.000000000000000e+00 + 1.999999999968738e+00 + 0.000000000000000e+00 + 2.999999999999999e-01 + 3.000000000000000e-01 + 3.000000000000000e-01 + 2.000000000000000e+00 + 2.000000000000000e+00 + 4.909281342628685e-16 + 0.000000000000000e+00 + 0.000000000000000e+00 + 0.000000000000000e+00 + 0.000000000000000e+00 + 1.090684476258629e-08 + 1.999999999980686e+00 + 1.194764491964468e-11 + 6.915831022949383e-12 + 1.102488620697488e-25 + 4.689817999082728e-13 + 4.689817999082727e-13 + -5.684341886080801e-14 + -6.821210263296962e-13 + 4.909281342628685e-13 + 8.644788778686729e-16 + -5.684341886080801e-14 + -6.821210263296962e-13 + 4.909281342628685e-13 + 8.644788778686729e-16 + +Title: dmt generated netlist +Date: Sat Jul 11 15:50:28 2020 +Plotname: Operating Point +Flags: real +No. Variables: 70 +No. Points: 1 +Variables: + 0 n_c voltage + 1 @q_q_h[betaac] voltage + 2 @q_q_h[betadc] voltage + 3 @q_q_h[ccs] capacitance + 4 @q_q_h[cmui] capacitance + 5 @q_q_h[cmux] capacitance + 6 @q_q_h[cpii] capacitance + 7 @q_q_h[cpix] capacitance + 8 @q_q_h[crbi] capacitance + 9 @q_q_h[dtsh] voltage + 10 @q_q_h[ft] voltage + 11 @q_q_h[gmi] admittance + 12 @q_q_h[gms] admittance + 13 i(@q_q_h[iavl]) current + 14 i(@q_q_h[ib]) current + 15 i(@q_q_h[ibci]) current + 16 i(@q_q_h[ibei]) current + 17 i(@q_q_h[ic]) current + 18 i(@q_q_h[ick]) current + 19 i(@q_q_h[ie]) current + 20 i(@q_q_h[is]) current + 21 i(@q_q_h[it]) current + 22 @q_q_h[m] voltage + 23 @q_q_h[p] power + 24 @q_q_h[rb] voltage + 25 @q_q_h[rbi] voltage + 26 @q_q_h[rcx_t] voltage + 27 @q_q_h[re_t] voltage + 28 @q_q_h[rmui] voltage + 29 @q_q_h[rmux] voltage + 30 @q_q_h[roi] voltage + 31 @q_q_h[rpii] voltage + 32 @q_q_h[rpix] voltage + 33 @q_q_h[temp] voltage + 34 @q_q_h[tf] voltage + 35 @q_q_h[tk] voltage + 36 @q_q_h[vbbp] voltage + 37 @q_q_h[vbc] voltage + 38 @q_q_h[vbe] voltage + 39 @q_q_h[vbici] voltage + 40 @q_q_h[vbiei] voltage + 41 @q_q_h[vbpbi] voltage + 42 @q_q_h[vce] voltage + 43 @q_q_h[vciei] voltage + 44 @q_q_h[vsc] voltage + 45 n_b voltage + 46 n_b_forced voltage + 47 n_bx voltage + 48 n_c_forced voltage + 49 n_cx voltage + 50 n_e voltage + 51 n_e_forced voltage + 52 n_ex voltage + 53 n_s voltage + 54 n_sx voltage + 55 n_t voltage + 56 q_q_h#collci voltage + 57 q_q_h#emitei voltage + 58 q_q_h#subssi voltage + 59 q_q_h#xf voltage + 60 q_q_h#xf1 voltage + 61 q_q_h#xf2 voltage + 62 i(v_v_b) current + 63 i(v_v_c) current + 64 i(v_v_e) current + 65 i(v_v_s) current + 66 i(v_v_v_b) current + 67 i(v_v_v_c) current + 68 i(v_v_v_e) current + 69 i(v_v_v_s) current +Values: + 0 1.999999999999999e+00 + 2.015820960757590e-34 + -1.284349804129181e+02 + 1.973886148229769e-15 + 1.747681823948260e-16 + 1.551402081692822e-15 + 6.344691137456945e-16 + 1.783589713534423e-15 + 8.092372961405205e-16 + 1.090683099391754e-08 + 1.348648355838772e-22 + 2.205013024816219e-47 + 1.179834970232417e-46 + 1.630495164519588e-14 + -3.785223511284394e-15 + -1.630669801643895e-14 + 1.252360523290239e-14 + 4.861551075303282e-13 + 7.135973196891111e-03 + -4.909281342628674e-13 + -8.644788778686730e-16 + 4.689817999082727e-13 + 1.000000000000000e+00 + 9.790813523192944e-13 + 1.134770039598727e+02 + 7.240352190377749e+01 + 3.972735488616852e+01 + 2.433585113114196e+01 + 2.013221934661670e+13 + 9.999999999999999e+17 + 9.999999999999999e+17 + 3.928496858701236e+12 + 5.213494313553190e+12 + 2.485000000000002e+01 + 2.350813231799441e-13 + 2.980000000000000e+02 + -1.194715399151042e-11 + 0.000000000000000e+00 + 0.000000000000000e+00 + -1.699999999980643e+00 + 2.999999999880947e-01 + -2.739475313262574e-13 + 0.000000000000000e+00 + 1.999999999968738e+00 + 0.000000000000000e+00 + 2.999999999999999e-01 + 3.000000000000000e-01 + 3.000000000000000e-01 + 2.000000000000000e+00 + 2.000000000000000e+00 + 4.909281342628685e-16 + 0.000000000000000e+00 + 0.000000000000000e+00 + 0.000000000000000e+00 + 0.000000000000000e+00 + 1.090684476258629e-08 + 1.999999999980686e+00 + 1.194764491964468e-11 + 6.915831022949383e-12 + 1.102488620697488e-25 + 4.689817999082728e-13 + 4.689817999082727e-13 + -5.684341886080801e-14 + -6.821210263296962e-13 + 4.909281342628685e-13 + 8.644788778686729e-16 + -5.684341886080801e-14 + -6.821210263296962e-13 + 4.909281342628685e-13 + 8.644788778686729e-16 + +Title: dmt generated netlist +Date: Sat Jul 11 15:50:47 2020 +Plotname: Operating Point +Flags: real +No. Variables: 70 +No. Points: 1 +Variables: + 0 n_c voltage + 1 @q_q_h[betaac] voltage + 2 @q_q_h[betadc] voltage + 3 @q_q_h[ccs] capacitance + 4 @q_q_h[cmui] capacitance + 5 @q_q_h[cmux] capacitance + 6 @q_q_h[cpii] capacitance + 7 @q_q_h[cpix] capacitance + 8 @q_q_h[crbi] capacitance + 9 @q_q_h[dtsh] voltage + 10 @q_q_h[ft] voltage + 11 @q_q_h[gmi] admittance + 12 @q_q_h[gms] admittance + 13 i(@q_q_h[iavl]) current + 14 i(@q_q_h[ib]) current + 15 i(@q_q_h[ibci]) current + 16 i(@q_q_h[ibei]) current + 17 i(@q_q_h[ic]) current + 18 i(@q_q_h[ick]) current + 19 i(@q_q_h[ie]) current + 20 i(@q_q_h[is]) current + 21 i(@q_q_h[it]) current + 22 @q_q_h[m] voltage + 23 @q_q_h[p] power + 24 @q_q_h[rb] voltage + 25 @q_q_h[rbi] voltage + 26 @q_q_h[rcx_t] voltage + 27 @q_q_h[re_t] voltage + 28 @q_q_h[rmui] voltage + 29 @q_q_h[rmux] voltage + 30 @q_q_h[roi] voltage + 31 @q_q_h[rpii] voltage + 32 @q_q_h[rpix] voltage + 33 @q_q_h[temp] voltage + 34 @q_q_h[tf] voltage + 35 @q_q_h[tk] voltage + 36 @q_q_h[vbbp] voltage + 37 @q_q_h[vbc] voltage + 38 @q_q_h[vbe] voltage + 39 @q_q_h[vbici] voltage + 40 @q_q_h[vbiei] voltage + 41 @q_q_h[vbpbi] voltage + 42 @q_q_h[vce] voltage + 43 @q_q_h[vciei] voltage + 44 @q_q_h[vsc] voltage + 45 n_b voltage + 46 n_b_forced voltage + 47 n_bx voltage + 48 n_c_forced voltage + 49 n_cx voltage + 50 n_e voltage + 51 n_e_forced voltage + 52 n_ex voltage + 53 n_s voltage + 54 n_sx voltage + 55 n_t voltage + 56 q_q_h#collci voltage + 57 q_q_h#emitei voltage + 58 q_q_h#subssi voltage + 59 q_q_h#xf voltage + 60 q_q_h#xf1 voltage + 61 q_q_h#xf2 voltage + 62 i(v_v_b) current + 63 i(v_v_c) current + 64 i(v_v_e) current + 65 i(v_v_s) current + 66 i(v_v_v_b) current + 67 i(v_v_v_c) current + 68 i(v_v_v_e) current + 69 i(v_v_v_s) current +Values: + 0 1.999999999999999e+00 + 2.015820960757590e-34 + -1.284349804129181e+02 + 1.973886148229769e-15 + 1.747681823948260e-16 + 1.551402081692822e-15 + 6.344691137456945e-16 + 1.783589713534423e-15 + 8.092372961405205e-16 + 1.090683099391754e-08 + 1.348648355838772e-22 + 2.205013024816219e-47 + 1.179834970232417e-46 + 1.630495164519588e-14 + -3.785223511284394e-15 + -1.630669801643895e-14 + 1.252360523290239e-14 + 4.861551075303282e-13 + 7.135973196891111e-03 + -4.909281342628674e-13 + -8.644788778686730e-16 + 4.689817999082727e-13 + 1.000000000000000e+00 + 9.790813523192944e-13 + 1.134770039598727e+02 + 7.240352190377749e+01 + 3.972735488616852e+01 + 2.433585113114196e+01 + 2.013221934661670e+13 + 9.999999999999999e+17 + 9.999999999999999e+17 + 3.928496858701236e+12 + 5.213494313553190e+12 + 2.485000000000002e+01 + 2.350813231799441e-13 + 2.980000000000000e+02 + -1.194715399151042e-11 + 0.000000000000000e+00 + 0.000000000000000e+00 + -1.699999999980643e+00 + 2.999999999880947e-01 + -2.739475313262574e-13 + 0.000000000000000e+00 + 1.999999999968738e+00 + 0.000000000000000e+00 + 2.999999999999999e-01 + 3.000000000000000e-01 + 3.000000000000000e-01 + 2.000000000000000e+00 + 2.000000000000000e+00 + 4.909281342628685e-16 + 0.000000000000000e+00 + 0.000000000000000e+00 + 0.000000000000000e+00 + 0.000000000000000e+00 + 1.090684476258629e-08 + 1.999999999980686e+00 + 1.194764491964468e-11 + 6.915831022949383e-12 + 1.102488620697488e-25 + 4.689817999082728e-13 + 4.689817999082727e-13 + -5.684341886080801e-14 + -6.821210263296962e-13 + 4.909281342628685e-13 + 8.644788778686729e-16 + -5.684341886080801e-14 + -6.821210263296962e-13 + 4.909281342628685e-13 + 8.644788778686729e-16 + diff --git a/src/spicelib/devices/hicum2/hicumL2.cpp b/src/spicelib/devices/hicum2/hicumL2.cpp index c0f9bb307..cc94a8b3c 100644 --- a/src/spicelib/devices/hicum2/hicumL2.cpp +++ b/src/spicelib/devices/hicum2/hicumL2.cpp @@ -351,7 +351,7 @@ void hicum_HICJQ(double T, dual_double c_0, dual_double u_d, double z, dual_doub c_0_t.dpart(c_0.dpart); u_d_t.dpart(u_d.dpart); v_pt_t.dpart(v_pt.dpart); - HICJQ(T+1_e, c_0_t, u_d_t, z, v_pt_t, U_cap+1_e, &Cresult, &Qresult); + HICJQ(T+1_e, c_0_t, u_d_t, z, v_pt_t, U_cap, &Cresult, &Qresult); *Qz_dT = Qresult.dpart(); *C_dT = Cresult.dpart(); } @@ -374,7 +374,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) double Qdei,Qrbi; double Qdei_Vbiei, Qdei_Vbici, Qdei_dT; double it,ibei,irei,ibci,ibep,irep,ibh_rec; - double volatile ibet,iavl,iavl_ditf,iavl_dT,iavl_Vbiei,iavl_dCjci; + double ibet,iavl,iavl_dT,iavl_Vbiei; double ijbcx,ijbcx_dT,ijbcx_Vbpci,ijsc,ijsc_Vsici,ijsc_Vrth,Qjs,Qscp,HSI_Tsu,Qdsu; double HSI_Tsu_Vbpci, HSI_Tsu_Vsici, HSI_Tsu_dT; double Qdsu_Vbpci, Qdsu_Vsici, Qdsu_dT; @@ -397,17 +397,17 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) double Qjcx_ii, Qjcx_ii_Vbpci, Qjcx_ii_dT; double Qjs_Vsici, Qjs_dT; - double volatile itf,itr,Tf,Tr,a_bpt,Q_0; - double volatile itf_Vbiei, itf_Vbici, itf_Vciei, itf_dT, itf_dQ_pT, itf_dick, itf_dT_f0; - double volatile itr_Vbiei, itr_Vbici, itr_Vciei, itr_dT, itr_dQ_pT, itr_dick, itr_dT_f0; - double volatile Tf_Vbiei, Tf_Vbici, Tf_Vciei, Tf_dT, Tf_dQ_pT, Tf_dick, Tf_dT_f0; + double itf,itr,Tf,Tr,a_bpt,Q_0; + double itf_Vbiei, itf_Vbici, itf_dT; + double itr_Vbiei, itr_Vbici, itr_dT; + double Tf_Vbiei, Tf_Vbici, Tf_dT; double it_Vbiei, it_Vbici, it_dT; - double Qf_Vbiei, Qf_Vbici, Qf_Vciei, Qf_dT, Qf_dQ_pT, Qf_dick, Qf_dT_f0; - double Qr_Vbiei, Qr_Vbici, Qr_Vciei, Qr_dT, Qr_dQ_pT, Qr_dick, Qr_dT_f0; + double Qf_Vbiei, Qf_Vbici, Qf_dT; + double Qr_Vbiei, Qr_Vbici, Qr_dT; duals::duald result_itf, result_itr, result_Qp, result_Qf, result_Qr, result_Q_bf, result_a_h, result_Q_p, result_Tf; //intermediate variables when calling void dual functions double T_f0, Q_p, a_h; - double volatile Q_bf, Q_bf_Vbiei=0, Q_bf_Vbici=0, Q_bf_Vciei=0, Q_bf_dT=0, Q_bf_dick=0, Q_bf_dT_f0=0, Q_bf_dQ_pT=0; - double volatile Q_pT=0, Q_pT_dVbiei=0, Q_pT_dVbici=0, Q_pT_dT=0, Q_pT_dick=0, Q_pT_dT_f0=0, Q_pT_dQ_0=0, Q_pT_dVciei=0; + double Q_bf, Q_bf_Vbiei=0, Q_bf_Vbici=0, Q_bf_dT=0; + double Q_pT=0, Q_pT_dVbiei=0, Q_pT_dVbici=0, Q_pT_dT=0; double Qf, Cdei, Qr, Cdci; double Cdei_Vbiei, Cdei_Vbici, Cdei_Vrth; double Cdci_Vbiei, Cdci_Vbici, Cdci_Vrth; @@ -456,7 +456,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) double ceq, geq=0.0; double volatile rhs_current; int icheck=1; - int ichk1, ichk2, ichk3, ichk4, ichk5; + int ichk1, ichk2, ichk3, ichk4, ichk5, ichk6; int error; double Vbe, Vcic, Vbbp, Veie, Vsis, Vbpe; @@ -474,13 +474,13 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) double Ibpsi, Ibpsi_Vbpci, Ibpsi_Vsici, Ibpsi_Vrth=0; double Icic_Vcic=0; double Ibci=0, Ibci_Vbci=0; - double volatile hjei_vbe_Vbiei, hjei_vbe_dT, ibet_Vbpei=0.0, ibet_dT=0, ibet_Vbiei=0.0, ibh_rec_Vbiei, ibh_rec_dT, ibh_rec_Vbici; + double hjei_vbe_Vbiei, hjei_vbe_dT, ibet_Vbpei=0.0, ibet_dT=0, ibet_Vbiei=0.0, ibh_rec_Vbiei, ibh_rec_dT, ibh_rec_Vbici; double irei_Vbiei, irei_dT; double ibep_Vbpei, ibep_dT; - double irep_Vbpei, irep_dT, iavl_Vbici, rbi_dT, rbi_dQjei, rbi_dQf, rbi_Vbiei, rbi_Vbici; + double irep_Vbpei, irep_dT, iavl_Vbici, rbi_dT, rbi_Vbiei, rbi_Vbici; double ibei_Vbiei, ibei_dT; double ibci_Vbici, ibci_dT; - double Q_0_Vbiei, Q_0_Vbici, Q_0_hjei_vbe, Q_0_Qjci, Q_0_Qjei, Q_0_dT; + double Q_0_Vbiei, Q_0_Vbici, Q_0_dT; double Temp; @@ -1830,7 +1830,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) /* * limit nonlinear branch voltages */ - ichk1 = 1, ichk2 = 1, ichk3 = 1, ichk4 = 1, ichk5 = 0; + ichk1 = 1, ichk2 = 1, ichk3 = 1, ichk4 = 1, ichk5=0, ichk6 = 0; Vbiei = DEVpnjlim(Vbiei,*(ckt->CKTstate0 + here->HICUMvbiei),here->HICUMvt.rpart, here->HICUMtVcrit,&icheck); Vbici = DEVpnjlim(Vbici,*(ckt->CKTstate0 + here->HICUMvbici),here->HICUMvt.rpart, @@ -1841,12 +1841,14 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) here->HICUMtVcrit,&ichk3); Vsici = DEVpnjlim(Vsici,*(ckt->CKTstate0 + here->HICUMvsici),here->HICUMvt.rpart, here->HICUMtVcrit,&ichk4); + Vbpbi = DEVpnjlim(Vbpbi,*(ckt->CKTstate0 + here->HICUMvbpbi),here->HICUMvt.rpart, + here->HICUMtVcrit,&ichk5); if (selfheat) { - ichk5 = 1; + ichk5 = 6; Vrth = HICUMlimitlog(Vrth, - *(ckt->CKTstate0 + here->HICUMvrth),100,&ichk5); + *(ckt->CKTstate0 + here->HICUMvrth),10,&ichk6); } - if ((ichk1 == 1) || (ichk2 == 1) || (ichk3 == 1) || (ichk4 == 1) || (ichk5 == 1)) icheck=1; + if ((ichk1 == 1) || (ichk2 == 1) || (ichk3 == 1) || (ichk4 == 1) || (ichk5 == 1)|| (ichk6 == 1)) icheck=1; } /* * determine dc current and derivatives @@ -1897,23 +1899,16 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) hicum_HICJQ(Temp, 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(Temp , Qjei+1_e, Qjci, hjei_vbe); + result = calc_Q_0(Temp , Qjei+1_e*Qjei_Vbiei, Qjci, hjei_vbe+1_e*hjei_vbe_Vbiei); Q_0 = result.rpart(); - Q_0_Qjei = result.dpart(); + Q_0_Vbiei = result.dpart(); - result = calc_Q_0(Temp , Qjei, Qjci+1_e, hjei_vbe); - Q_0_Qjci = result.dpart(); + result = calc_Q_0(Temp , Qjei, Qjci+1_e*Qjci_Vbici, hjei_vbe); + Q_0_Vbici = result.dpart(); - result = calc_Q_0(Temp , Qjei, Qjci, hjei_vbe+1_e); - Q_0_hjei_vbe = result.dpart(); - - result = calc_Q_0(Temp+1_e , Qjei, Qjci, hjei_vbe); + result = calc_Q_0(Temp+1_e , Qjei+1_e*Qjei_dT, Qjci+1_e*Qjci_dT, hjei_vbe+1_e*hjei_vbe_dT); 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 ; - 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(Temp, Vbici+1_e); T_f0 = result.rpart(); @@ -1940,7 +1935,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Tr = model->HICUMtr; //begin initial transfer current calculations -> itf, itr, Qf, Qr------------ - calc_it_initial(Temp+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); + calc_it_initial(Temp+1_e, Vbiei , Vbici , Q_0+1_e*Q_0_dT , T_f0+1_e*T_f0_dT , ick+1_e*ick_dT , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf, &result_a_h, &result_Q_p, &result_Tf); itf = result_itf.rpart(); itr = result_itr.rpart(); Qf = result_Qf.rpart(); @@ -1957,7 +1952,7 @@ 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(Temp+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); + calc_it_initial(Temp+1_e, Vbiei , Vbici , Q_0+1_e*Q_0_dT , T_f0+1_e*T_f0_dT , ick+1_e*ick_dT , &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(); @@ -1965,7 +1960,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Q_bf_dT = result_Q_bf.dpart(); Tf_dT = result_Tf.dpart(); - calc_it_initial(Temp , 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); + calc_it_initial(Temp , Vbiei+1_e, Vbici , Q_0+1_e*Q_0*Vbiei , T_f0 , ick+1_e*ick_Vciei , &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(); Qf_Vbiei = result_Qf.dpart(); @@ -1973,7 +1968,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Q_bf_Vbiei = result_Q_bf.dpart(); Tf_Vbiei = result_Tf.dpart(); - calc_it_initial(Temp , Vbiei , Vbici+1_e, Q_0 , T_f0 , ick , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf, &result_a_h, &result_Q_p, &result_Tf); + calc_it_initial(Temp , Vbiei , Vbici+1_e, Q_0+1_e*Q_0_Vbici , T_f0+1_e*T_f0_Vbici , ick-1_e*ick_Vciei , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf, &result_a_h, &result_Q_p, &result_Tf); itf_Vbici = result_itf.dpart(); itr_Vbici = result_itr.dpart(); Qf_Vbici = result_Qf.dpart(); @@ -1981,122 +1976,19 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Q_bf_Vbici= result_Q_bf.dpart(); Tf_Vbici = result_Tf.dpart(); - calc_it_initial(Temp , Vbiei , Vbici , Q_0+1_e, T_f0 , ick , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf, &result_a_h, &result_Q_p, &result_Tf); - itf_dQ_pT = result_itf.dpart(); //actual Q_0, but we can spare us this new variables - itr_dQ_pT = result_itr.dpart(); - Qf_dQ_pT = result_Qf.dpart(); - Qr_dQ_pT = result_Qr.dpart(); - Q_bf_dQ_pT= result_Q_bf.dpart(); - Tf_dQ_pT = result_Tf.dpart(); - - calc_it_initial(Temp , Vbiei , Vbici , Q_0 , T_f0+1_e, ick , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf, &result_a_h, &result_Q_p, &result_Tf); - itf_dT_f0 = result_itf.dpart(); - itr_dT_f0 = result_itr.dpart(); - Qf_dT_f0 = result_Qf.dpart(); - Qr_dT_f0 = result_Qr.dpart(); - Q_bf_dT_f0= result_Q_bf.dpart(); - Tf_dT_f0 = result_Tf.dpart(); - - calc_it_initial(Temp , Vbiei , Vbici , Q_0 , T_f0 , ick+1_e, &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf, &result_a_h, &result_Q_p, &result_Tf); - itf_dick = result_itf.dpart(); - itr_dick = result_itr.dpart(); - Qf_dick = result_Qf.dpart(); - Qr_dick = result_Qr.dpart(); - Q_bf_dick= result_Q_bf.dpart(); - Tf_dick = result_Tf.dpart(); - - // add derivatives of Q_0 = f(Vbici,Vbiei,T) - itf_dT += itf_dQ_pT*Q_0_dT; - itr_dT += itr_dQ_pT*Q_0_dT; - Qf_dT += Qf_dQ_pT*Q_0_dT; - Qr_dT += Qr_dQ_pT*Q_0_dT; - Q_bf_dT += Q_bf_dQ_pT*Q_0_dT; - Tf_dT += Tf_dQ_pT*Q_0_dT; - - itf_Vbiei += itf_dQ_pT*Q_0_Vbiei; - itr_Vbiei += itr_dQ_pT*Q_0_Vbiei; - Qf_Vbiei += Qf_dQ_pT*Q_0_Vbiei; - Qr_Vbiei += Qr_dQ_pT*Q_0_Vbiei; - Q_bf_Vbiei+= Q_bf_dQ_pT*Q_0_Vbiei; - Tf_Vbiei += Tf_dQ_pT*Q_0_Vbiei; - - itf_Vbici += itf_dQ_pT*Q_0_Vbici; - itr_Vbici += itr_dQ_pT*Q_0_Vbici; - Qf_Vbici += Qf_dQ_pT*Q_0_Vbici; - Qr_Vbici += Qr_dQ_pT*Q_0_Vbici; - Q_bf_Vbici+= Q_bf_dQ_pT*Q_0_Vbici; - Tf_Vbici += Tf_dQ_pT*Q_0_Vbici; - - itf_Vciei = 0; //Q_0 is not a function of Vciei - itr_Vciei = 0; - Qf_Vciei = 0; - Qr_Vciei = 0; - Q_bf_Vciei = 0; - Tf_Vciei = 0; - - // add derivatives of T_f0 = f(Vbici, T) - itf_Vbici += itf_dT_f0*T_f0_Vbici; - itr_Vbici += itr_dT_f0*T_f0_Vbici; - Qf_Vbici += Qf_dT_f0*T_f0_Vbici; - Qr_Vbici += Qr_dT_f0*T_f0_Vbici; - Q_bf_Vbici+= Q_bf_dT_f0*T_f0_Vbici; - Tf_Vbici += Tf_dT_f0*T_f0_Vbici; - - itf_dT += itf_dT_f0*T_f0_dT; - itr_dT += itr_dT_f0*T_f0_dT; - Qf_dT += Qf_dT_f0*T_f0_dT; - Qr_dT += Qr_dT_f0*T_f0_dT; - Q_bf_dT += Q_bf_dT_f0*T_f0_dT; - Tf_dT += Tf_dT_f0*T_f0_dT; - - // add derivatives of ick=f(Vciei, T) - itf_Vciei += itf_dick*ick_Vciei; - itr_Vciei += itr_dick*ick_Vciei; - Qf_Vciei += Qf_dick*ick_Vciei; - Qr_Vciei += Qr_dick*ick_Vciei; - Q_bf_Vciei+= Q_bf_dick*ick_Vciei; - Tf_Vciei += Tf_dick*ick_Vciei; - - itf_dT += itf_dick*ick_dT; - itr_dT += itr_dick*ick_dT; - Qf_dT += Qf_dick*ick_dT; - Qr_dT += Qr_dick*ick_dT; - Q_bf_dT += Q_bf_dick*ick_dT; - Tf_dT += Tf_dick*ick_dT; - } else { //Newton needed - result = calc_it(Temp+1_e, Vbiei , Vbici , Q_0 , T_f0 , ick ); + result = calc_it(Temp+1_e, Vbiei , Vbici , Q_0+1_e*Q_0_dT , T_f0+1_e*T_f0_dT , ick+1_e*ick_dT ); Q_pT = result.rpart(); Q_pT_dT = result.dpart(); - - result = calc_it(Temp , Vbiei+1_e, Vbici , Q_0 , T_f0 , ick ); + result = calc_it(Temp , Vbiei+1_e, Vbici , Q_0+1_e*Q_0_Vbiei , T_f0 , ick+1_e*ick_Vciei ); Q_pT_dVbiei = result.dpart(); - result = calc_it(Temp , Vbiei , Vbici+1_e, Q_0 , T_f0 , ick ); + result = calc_it(Temp , Vbiei , Vbici+1_e, Q_0+1_e*Q_0_Vbici , T_f0+1_e*T_f0_Vbici , ick-1_e*ick_Vciei ); Q_pT_dVbici = result.dpart(); - result = calc_it(Temp , Vbiei , Vbici , Q_0+1_e, T_f0 , ick ); - Q_pT_dQ_0 = result.dpart(); - result = calc_it(Temp , Vbiei , Vbici , Q_0 , T_f0+1_e, ick ); - Q_pT_dT_f0 = result.dpart(); - result = calc_it(Temp , Vbiei , Vbici , Q_0 , T_f0 , ick+1_e); - Q_pT_dick = result.dpart(); - - //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; - - //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; - - //add derivatives of T_f0 - Q_pT_dVbici += Q_pT_dT_f0*T_f0_Vbici; - Q_pT_dT += Q_pT_dT*T_f0_dT; //end Q_pT ------------------------------------------------------------------------------- //begin final transfer current calculations -> itf, itr, Qf, Qr------------ - calc_it_final(Temp+1_e, Vbiei , Vbici , Q_pT , T_f0 , ick , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf, &result_Tf); + calc_it_final(Temp+1_e, Vbiei , Vbici , Q_pT+1_e*Q_pT_dT , T_f0+1_e*T_f0_dT , ick+1_e*ick_dT , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf, &result_Tf); // calc_it_final(Temp+1_e, Vbiei , Vbici , Q_pT , T_f0 , ick , &result_itf, &result_itr, &result_Qf, &result_Qr); itf = result_itf.rpart(); itr = result_itr.rpart(); @@ -2111,7 +2003,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Q_bf_dT= result_Q_bf.dpart(); Tf_dT = result_Tf.dpart(); - calc_it_final(Temp , Vbiei+1_e, Vbici , Q_pT , T_f0 , ick , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf, &result_Tf); + calc_it_final(Temp , Vbiei+1_e , Vbici , Q_pT+1_e*Q_pT_dVbiei , T_f0 , ick+1_e*ick_Vciei , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf, &result_Tf); itf_Vbiei = result_itf.dpart(); itr_Vbiei = result_itr.dpart(); Qf_Vbiei = result_Qf.dpart(); @@ -2119,7 +2011,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Q_bf_Vbiei = result_Q_bf.dpart(); Tf_Vbiei = result_Tf.dpart(); - calc_it_final(Temp , Vbiei , Vbici+1_e, Q_pT , T_f0 , ick , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf, &result_Tf); + calc_it_final(Temp , Vbiei , Vbici+1_e, Q_pT+1_e*Q_pT_dVbici , T_f0+1_e*T_f0_Vbici , ick-1_e*ick_Vciei , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf, &result_Tf); itf_Vbici = result_itf.dpart(); itr_Vbici = result_itr.dpart(); Qf_Vbici = result_Qf.dpart(); @@ -2127,104 +2019,8 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Q_bf_Vbici= result_Q_bf.dpart(); Tf_Vbici = result_Tf.dpart(); - calc_it_final(Temp , Vbiei , Vbici , Q_pT+1_e, T_f0 , ick , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf, &result_Tf); - itf_dQ_pT = result_itf.dpart(); - itr_dQ_pT = result_itr.dpart(); - Qf_dQ_pT = result_Qf.dpart(); - Qr_dQ_pT = result_Qr.dpart(); - Q_bf_dQ_pT= result_Q_bf.dpart(); - Tf_dQ_pT = result_Tf.dpart(); - - calc_it_final(Temp , Vbiei , Vbici , Q_pT , T_f0+1_e, ick , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf, &result_Tf); - itf_dT_f0 = result_itf.dpart(); - itr_dT_f0 = result_itr.dpart(); - Qf_dT_f0 = result_Qf.dpart(); - Qr_dT_f0 = result_Qr.dpart(); - Q_bf_dT_f0= result_Q_bf.dpart(); - Tf_dT_f0 = result_Tf.dpart(); - - calc_it_final(Temp , Vbiei , Vbici , Q_pT , T_f0 , ick+1_e, &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf, &result_Tf); - itf_dick = result_itf.dpart(); - itr_dick = result_itr.dpart(); - Qf_dick = result_Qf.dpart(); - Qr_dick = result_Qr.dpart(); - Q_bf_dick= result_Q_bf.dpart(); - Tf_dick = result_Tf.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; - Q_bf_dT += Q_bf_dQ_pT*Q_pT_dT; - Tf_dT += Tf_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; - Q_bf_Vbiei+= Q_bf_dQ_pT*Q_pT_dVbiei; - Tf_Vbiei += Tf_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; - Q_bf_Vbici+= Q_bf_dQ_pT*Q_pT_dVbici; - Tf_Vbici += Tf_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; - Q_bf_Vciei = Q_bf_dQ_pT*Q_pT_dVciei; - Tf_Vciei = Tf_dQ_pT*Q_pT_dVciei; - - // add derivatives of T_f0 = f(Vbici, T) - itf_Vbici += itf_dT_f0*T_f0_Vbici; - itr_Vbici += itr_dT_f0*T_f0_Vbici; - Qf_Vbici += Qf_dT_f0*T_f0_Vbici; - Qr_Vbici += Qr_dT_f0*T_f0_Vbici; - Q_bf_Vbici+= Q_bf_dT_f0*T_f0_Vbici; - Tf_Vbici += Tf_dT_f0*T_f0_Vbici; - - itf_dT += itf_dT_f0*T_f0_dT; - itr_dT += itr_dT_f0*T_f0_dT; - Qf_dT += Qf_dT_f0*T_f0_dT; - Qr_dT += Qr_dT_f0*T_f0_dT; - Q_bf_dT += Q_bf_dT_f0*T_f0_dT; - Tf_dT += Tf_dT_f0*T_f0_dT; - - // add derivatives of ick=f(Vciei, T) - itf_Vciei += itf_dick*ick_Vciei; - itr_Vciei += itr_dick*ick_Vciei; - Qf_Vciei += Qf_dick*ick_Vciei; - Qr_Vciei += Qr_dick*ick_Vciei; - Q_bf_Vciei+= Q_bf_dick*ick_Vciei; - Tf_Vciei += Tf_dick*ick_Vciei; - - itf_dT += itf_dick*ick_dT; - itr_dT += itr_dick*ick_dT; - Qf_dT += Qf_dick*ick_dT; - Qr_dT += Qr_dick*ick_dT; - Q_bf_dT += Q_bf_dick*ick_dT; - Tf_dT += Tf_dick*ick_dT; } - // remap derivatives Vciei=Vbiei-Vbici - itf_Vbiei += itf_Vciei; - itf_Vbici -= itf_Vciei; - itr_Vbiei += itr_Vciei; - itr_Vbici -= itr_Vciei; - Qf_Vbiei += Qf_Vciei; - Qf_Vbici -= Qf_Vciei; - Qr_Vbiei += Qr_Vciei; - Qr_Vbici -= Qr_Vciei; - Tf_Vbiei += Tf_Vciei; - Tf_Vbici -= Tf_Vciei; - Q_bf_Vbiei+= Q_bf_Vciei; - Q_bf_Vbici-= Q_bf_Vciei; - // finally the transfer current it = itf - itr; it_Vbiei = itf_Vbiei - itr_Vbiei; @@ -2280,25 +2076,16 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) hicum_diode(Temp,here->HICUMibcis_t,model->HICUMmbci, Vbici, &ibci, &ibci_Vbici, &ibci_dT); //Avalanche current - result = calc_iavl(Vbici+1_e, Cjci , itf , Temp); + result = calc_iavl(Vbici+1_e, Cjci+1_e*Cjci_Vbici, itf+1_e*itf_Vbici , Temp); iavl = result.rpart(); iavl_Vbici = result.dpart(); - result = calc_iavl(Vbici , Cjci+1_e, itf , Temp); - iavl_dCjci = result.dpart(); + result = calc_iavl(Vbici, Cjci, itf+1_e*itf_Vbiei , Temp); + iavl_Vbiei = result.dpart(); - result = calc_iavl(Vbici , Cjci , itf+1_e, Temp); - iavl_ditf = result.dpart(); - - result = calc_iavl(Vbici , Cjci , itf , Temp+1_e); + result = calc_iavl(Vbici , Cjci+1_e*Cjci_dT , itf+1_e*itf_dT , Temp+1_e); iavl_dT = result.dpart(); - //add derivatives - iavl_Vbici += iavl_dCjci*Cjci_Vbici; - iavl_Vbici += iavl_ditf *itf_Vbici; - iavl_Vbiei = iavl_ditf *itf_Vbiei; - iavl_dT += iavl_ditf *itf_dT ;//+ iavl_dCjci*Cjci_dT; - here->HICUMiavl = iavl; // double v_bord, v_bord_Vbici, v_bord_dT; @@ -2363,18 +2150,17 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) ibh_rec_dT = Otbhrec*Q_bf_dT ; //internal base resistance - result = calc_rbi(Temp+1_e, Qjei , Qf ); + result = calc_rbi(Temp+1_e, Qjei+1_e*Qjei_dT , Qf+1_e*Qf_dT ); rbi = result.rpart(); rbi_dT = result.dpart(); - result = calc_rbi(Temp , Qjei+1_e, Qf ); - rbi_dQjei = result.dpart(); - result = calc_rbi(Temp , Qjei , Qf+1_e); - rbi_dQf = result.dpart(); - here->HICUMrbi = rbi; - rbi_Vbiei = rbi_dQjei* Qjei_Vbiei + rbi_dQf*Qf_Vbiei; - rbi_Vbici = rbi_dQf*Qf_Vbici; - rbi_dT += rbi_dQjei*Qjei_dT + rbi_dQf*Qf_dT; + result = calc_rbi(Temp, Qjei+1_e*Qjei_Vbiei , Qf+1_e*Qf_Vbiei ); + rbi_Vbiei = result.dpart(); + + result = calc_rbi(Temp, Qjei , Qf+1_e*Qf_Vbici ); + rbi_Vbici = result.dpart(); + + here->HICUMrbi = rbi; //Base currents across peripheral b-e junction hicum_diode(Temp,here->HICUMibeps_t,model->HICUMmbep, Vbpei, &ibep, &ibep_Vbpei, &ibep_dT); @@ -2494,7 +2280,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Qdeix_dT = Qdei_dT; Qdeix_Vxf = 0.0; - // Excess Phase calculation + // Excess Phase calculation -> hand implementation if ( nqs){ // && (ckt->CKTmode & (MODETRAN | MODEAC) ) ) { //evaluate nqs network only in TRANSIENT and AC modes. Ixf1 = (Vxf2-itf)/Tf*model->HICUMt0; @@ -2769,9 +2555,6 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Ibpei_Vbpei += ckt->CKTgmin; Ibpci += ckt->CKTgmin*Vbpci; Ibpci_Vbpci += ckt->CKTgmin; - - - Isici += ckt->CKTgmin*Vsici; Isici_Vsici += ckt->CKTgmin;