From 35deffa742aea641e5ddc5077c3d78179f84d133 Mon Sep 17 00:00:00 2001 From: Markus Mueller Date: Tue, 12 May 2020 12:25:48 +0200 Subject: [PATCH] cleaned further --- src/spicelib/devices/hicum2/hicumL2.cpp | 60 +++++++++++++------------ 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/src/spicelib/devices/hicum2/hicumL2.cpp b/src/spicelib/devices/hicum2/hicumL2.cpp index 23b18aea9..af6ec692c 100644 --- a/src/spicelib/devices/hicum2/hicumL2.cpp +++ b/src/spicelib/devices/hicum2/hicumL2.cpp @@ -410,11 +410,10 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) double it_ditf, it_ditr; 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 Orci0_t,T_f0, Q_p, a_h; - double volatile Q_bf, Q_bf_Vbiei, Q_bf_Vbici, Q_bf_Vciei, Q_bf_dT, Q_bf_dick, Q_bf_dT_f0, Q_bf_dQ_pT; - 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_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, 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 Qf, Cdei, Qr, Cdci; double ick, ick_Vciei, ick_dT,cjcx01,cjcx02; - int l_it; //NQS double Ixf1,Ixf2,Qxf1,Qxf2; @@ -461,12 +460,12 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) double Isici, Isici_Vsici; double Isc=0, Isc_Vsc=0; double Iciei, Iciei_Vbiei, Iciei_Vbici, Iciei_dT; - double Ibbp_Vbbp; + double Ibbp_Vbbp=0; double Isis_Vsis; - double Ieie, Ieie_Veie; + double Ieie, Ieie_Veie=0; double Ibpbi, Ibpbi_Vbpbi, Ibpbi_Vbici, Ibpbi_Vbiei; double Ibpsi, Ibpsi_Vbpci, Ibpsi_Vsici; - double Icic_Vcic; + double Icic_Vcic=0; // double Ibci, Ibci_Vbci, Ibci_dT; 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 irei_Vbiei, irei_dT; @@ -510,30 +509,30 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) double Qxf_Vxf, Qxf1_Vxf1, Qxf2_Vxf2; double Iqxf, Iqxf_Vxf, Iqxf1, Iqxf1_Vxf1, Iqxf2, Iqxf2_Vxf2; - double Ith, Vrth, Icth, Icth_dT, delvrth; + double Ith=0, Vrth=0, Icth, Icth_dT, delvrth; - double Irth_dT; - double Ibiei_dT; - double Ibici_dT; - double Ibpei_dT; - double Ibpci_dT; - double Isici_dT; - double Ibpbi_dT; - double Ieie_dT; - double Icic_dT; - double Ibbp_dT; + double Irth_dT=0; + double Ibiei_dT=0; + double Ibici_dT=0; + double Ibpei_dT=0; + double Ibpci_dT=0; + double Isici_dT=0; + double Ibpbi_dT=0; + double Ieie_dT=0; + double Icic_dT=0; + double Ibbp_dT=0; - double Ith_dT; - double Ith_Vciei; - double Ith_Vbiei; - double Ith_Vbici; - double Ith_Vbpei; - double Ith_Vbpci; - double Ith_Vsici; - double Ith_Vbpbi; - double Ith_Veie; - double Ith_Vcic; - double Ith_Vbbp; + double Ith_dT =0; + double Ith_Vciei=0; + double Ith_Vbiei=0; + double Ith_Vbici=0; + double Ith_Vbpei=0; + double Ith_Vbpci=0; + double Ith_Vsici=0; + double Ith_Vbpbi=0; + double Ith_Veie =0; + double Ith_Vcic =0; + double Ith_Vbbp =0; // COLLECTOR CURRENT SPREADING CALCULATION // collector minority charge incl. 2D/3D current spreading (TED 10/96) @@ -931,6 +930,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) // This function calculates Q_pT in a dual way // Tr also as argument here? duals::duald VT, VT_f,i_0f,i_0r, Q_p, A, I_Tf1,itf, itr, a_h, Qf, Qr, d_Q0, Q_pT, a, d_Q, Tf, T_fT, Q_bf, Q_fT; + int l_it; VT = CONSTboltz * T / CHARGE; VT_f = model->HICUMmcf*VT; @@ -1333,6 +1333,9 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) Vbiei = model->HICUMtype*( *(ckt->CKTrhsOld+here->HICUMbaseBINode)- *(ckt->CKTrhsOld+here->HICUMemitEINode)); + Vbe = model->HICUMtype*( //@Dietmar: correct? + *(ckt->CKTrhsOld+here->HICUMbaseNode)- + *(ckt->CKTrhsOld+here->HICUMemitNode)); Vbici = model->HICUMtype*( *(ckt->CKTrhsOld+here->HICUMbaseBINode)- *(ckt->CKTrhsOld+here->HICUMcollCINode)); @@ -1931,7 +1934,6 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) //NQS effect implemented with LCR networks //Once the delay in ITF is considered, IT_NQS is calculated afterwards - //Diffusion charges for further use Qdei = Qf; Qdci = Qr;