Merge remote-tracking branch 'origin/markus_dev' into hicum2-mario
This commit is contained in:
commit
1fe3cc8b12
|
|
@ -27,8 +27,8 @@ libhicum2_la_SOURCES = \
|
|||
hicum2trunc.c
|
||||
|
||||
|
||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include -lstdc++ -std=c++11 -Og -Wall
|
||||
AM_CFLAGS = -lstdc++ -I$(top_srcdir)/src/include -Og -Wall
|
||||
AM_CXXFLAGS = -I$(top_srcdir)/src/include -lstdc++ -std=c++11 -Og -Wall
|
||||
AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include -lstdc++ -std=c++11 -Og -Wall -Wextra
|
||||
AM_CFLAGS = -lstdc++ -I$(top_srcdir)/src/include -Og -Wall -Wextra
|
||||
AM_CXXFLAGS = -I$(top_srcdir)/src/include -lstdc++ -std=c++11 -Og -Wall -Wextra
|
||||
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
|
|
|||
|
|
@ -528,7 +528,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
double Ibpbi, Ibpbi_Vbpbi, Ibpbi_Vbici, Ibpbi_Vbiei;
|
||||
double Ibpsi, Ibpsi_Vbpci, Ibpsi_Vsici;
|
||||
double Icic_Vcic;
|
||||
double Ibci, Ibci_Vbci;
|
||||
// double Ibci, Ibci_Vbci;
|
||||
double hjei_vbe_Vbiei, ibet_Vbpei=0.0, ibet_Vbiei=0.0, ibh_rec_Vbiei;
|
||||
double irei_Vbiei, irep_Vbpei, iavl_Vbici, rbi_Vbiei, rbi_Vbici;
|
||||
double Q_0_Vbiei, Q_0_Vbici, b_q_Vbiei, b_q_Vbici;
|
||||
|
|
@ -2209,13 +2209,13 @@ c Branch: ciei, Stamp element: It
|
|||
/*
|
||||
c Branch: bci, Stamp element: Qbcx
|
||||
*/
|
||||
rhs_current = model->HICUMtype * (Ibci - Ibci_Vbci*Vbci);
|
||||
*(ckt->CKTrhs + here->HICUMbaseNode) += -rhs_current;
|
||||
*(here->HICUMbaseBasePtr) += Ibci_Vbci;
|
||||
*(here->HICUMbaseCollCIPtr) += -Ibci_Vbci;
|
||||
*(ckt->CKTrhs + here->HICUMcollCINode) += rhs_current;
|
||||
*(here->HICUMcollCIBasePtr) += -Ibci_Vbci;
|
||||
*(here->HICUMcollCICollCIPtr) += Ibci_Vbci;
|
||||
// rhs_current = model->HICUMtype * (Ibci - Ibci_Vbci*Vbci);
|
||||
// *(ckt->CKTrhs + here->HICUMbaseNode) += -rhs_current;
|
||||
// *(here->HICUMbaseBasePtr) += Ibci_Vbci;
|
||||
// *(here->HICUMbaseCollCIPtr) += -Ibci_Vbci;
|
||||
// *(ckt->CKTrhs + here->HICUMcollCINode) += rhs_current;
|
||||
// *(here->HICUMcollCIBasePtr) += -Ibci_Vbci;
|
||||
// *(here->HICUMcollCICollCIPtr) += Ibci_Vbci;
|
||||
/*
|
||||
c Branch: bpci, Stamp element: Ijbcx
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -405,17 +405,17 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
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 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 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; //intermediate variables when calling void dual functions
|
||||
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=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 Qf, Cdei, Qr, Cdci;
|
||||
double ick, ick_Vciei, ick_dT,cjcx01,cjcx02;
|
||||
int l_it;
|
||||
|
||||
//NQS
|
||||
double Ixf1,Ixf2,Qxf1,Qxf2;
|
||||
|
|
@ -462,25 +462,25 @@ 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 Ibci, Ibci_Vbci, Ibci_dT;
|
||||
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;
|
||||
double ibep_Vbpei, ibep_dT;
|
||||
double irep_Vbpei, irep_dT, iavl_Vbici, rbi_dT, rbi_dQjei, rbi_dCjci, rbi_dQf, rbi_Vbiei, rbi_Vbici;
|
||||
double irep_Vbpei, irep_dT, iavl_Vbici, rbi_dT, rbi_dQjei, rbi_dQf, 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 Cjei_Vbiei,Cjci_Vbici,Cjep_Vbpei,Cjep_dT,Cjs_Vsici,Cjcit_Vbici,i_0f_Vbiei,i_0r_Vbici;
|
||||
double Cjei_Vbiei,Cjci_Vbici,Cjep_Vbpei,Cjep_dT,Cjs_Vsici;
|
||||
double Cjei_dT, Cjci_dT;
|
||||
double Qjei_Vbiei, Qjei_dT, Qjci_Vbici, Qjci_dT;
|
||||
double cc_Vbici,T_f0_Vbici,T_f0_Qjci, T_f0_dT;
|
||||
double T_f0_Vbici,T_f0_dT;
|
||||
double Qbepar1;
|
||||
double Qbepar2;
|
||||
double Qbcpar1;
|
||||
|
|
@ -511,30 +511,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)
|
||||
|
|
@ -722,7 +722,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
return Q_0;
|
||||
};
|
||||
|
||||
std::function<duals::duald (duals::duald, duals::duald, duals::duald)> calc_T_f0 = [&](duals::duald T, duals::duald Vbici, duals::duald Qjci){
|
||||
std::function<duals::duald (duals::duald, duals::duald)> calc_T_f0 = [&](duals::duald T, duals::duald Vbici){
|
||||
//Transit time calculation at low current density
|
||||
duals::duald vt;
|
||||
duals::duald cV_f,cv_e,cs_q,cs_q2,cv_j,cdvj_dv,Cjcit,cc;
|
||||
|
|
@ -804,6 +804,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
|
||||
std::function<duals::duald (duals::duald, duals::duald, duals::duald)> calc_iavl = [&](duals::duald Vbici, duals::duald Cjci, duals::duald itf){
|
||||
//Avalanche current
|
||||
duals::duald iavl;
|
||||
iavl = 0;
|
||||
if (use_aval == 1) {//begin : HICAVL
|
||||
duals::duald v_bord,v_q,U0,av,avl,iavl;
|
||||
|
|
@ -840,7 +841,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
return iavl;
|
||||
};
|
||||
|
||||
std::function<duals::duald (duals::duald, duals::duald, duals::duald, duals::duald)> calc_rbi = [&](duals::duald T, duals::duald Qjei, duals::duald Cjci, duals::duald Qf){
|
||||
std::function<duals::duald (duals::duald, duals::duald, duals::duald)> calc_rbi = [&](duals::duald T, duals::duald Qjei, duals::duald Qf){
|
||||
//Internal base resistance
|
||||
duals::duald vt,rbi;
|
||||
vt = CONSTboltz * T / CHARGE;
|
||||
|
|
@ -876,9 +877,9 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
return rbi;
|
||||
};
|
||||
|
||||
std::function<void (duals::duald, duals::duald, duals::duald, duals::duald, duals::duald, duals::duald, duals::duald*, duals::duald*, duals::duald*, duals::duald*, duals::duald*)> calc_it_final = [&](duals::duald T, duals::duald Vbiei, duals::duald Vbici, duals::duald Q_pT, duals::duald T_f0, duals::duald ick, duals::duald *itf, duals::duald *itr, duals::duald *Qf, duals::duald *Qr, duals::duald *Q_bf){
|
||||
std::function<void (duals::duald, duals::duald, duals::duald, duals::duald, duals::duald, duals::duald, duals::duald*, duals::duald*, duals::duald*, duals::duald*, duals::duald*, duals::duald*)> calc_it_final = [&](duals::duald T, duals::duald Vbiei, duals::duald Vbici, duals::duald Q_pT, duals::duald T_f0, duals::duald ick, duals::duald *itf, duals::duald *itr, duals::duald *Qf, duals::duald *Qr, duals::duald *Q_bf, duals::duald * Tf){
|
||||
// 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, Tf,Q_fT,T_fT;
|
||||
duals::duald VT, VT_f, i_0f, i_0r, I_Tf1, a_h, Q_fT,T_fT;
|
||||
|
||||
VT = CONSTboltz * T / CHARGE;
|
||||
VT_f = model->HICUMmcf*VT;
|
||||
|
|
@ -892,15 +893,15 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
*itr = i_0r/Q_pT;
|
||||
|
||||
//Final transit times, charges and transport current components
|
||||
Tf = T_f0;
|
||||
*Tf = T_f0;
|
||||
*Qf = T_f0*(*itf);
|
||||
HICQFF(T,*itf,ick,&Tf,Qf,&T_fT,&Q_fT,Q_bf);
|
||||
HICQFF(T,*itf,ick,Tf,Qf,&T_fT,&Q_fT,Q_bf);
|
||||
*Qr = Tr*(*itr);
|
||||
};
|
||||
|
||||
std::function<void (duals::duald, duals::duald, duals::duald, duals::duald, duals::duald, duals::duald, duals::duald*, duals::duald*, duals::duald*, duals::duald*, duals::duald*, duals::duald*, duals::duald*)> calc_it_initial = [&](duals::duald T, duals::duald Vbiei, duals::duald Vbici, duals::duald Q_0, duals::duald T_f0, duals::duald ick, duals::duald *itf, duals::duald *itr, duals::duald *Qf, duals::duald *Qr, duals::duald *Q_bf, duals::duald *a_h, duals::duald *Q_p){
|
||||
std::function<void (duals::duald, duals::duald, duals::duald, duals::duald, duals::duald, duals::duald, duals::duald*, duals::duald*, duals::duald*, duals::duald*, duals::duald*, duals::duald*, duals::duald*, duals::duald*)> calc_it_initial = [&](duals::duald T, duals::duald Vbiei, duals::duald Vbici, duals::duald Q_0, duals::duald T_f0, duals::duald ick, duals::duald *itf, duals::duald *itr, duals::duald *Qf, duals::duald *Qr, duals::duald *Q_bf, duals::duald *a_h, duals::duald *Q_p, duals::duald *Tf){
|
||||
// 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, Tf, Q_fT, T_fT, A;
|
||||
duals::duald VT, VT_f, i_0f, i_0r, I_Tf1, Q_fT, T_fT, A;
|
||||
|
||||
VT = CONSTboltz * T / CHARGE;
|
||||
VT_f = model->HICUMmcf*VT;
|
||||
|
|
@ -919,9 +920,9 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
|
||||
//Initial formulation of forward transit time, diffusion, GICCR and excess b-c charge
|
||||
*Q_bf = 0.0;
|
||||
Tf = T_f0;
|
||||
*Tf = T_f0;
|
||||
*Qf = T_f0*(*itf);
|
||||
HICQFF(T,*itf,ick,&Tf,Qf,&T_fT,&Q_fT,Q_bf);
|
||||
HICQFF(T,*itf,ick,Tf,Qf,&T_fT,&Q_fT,Q_bf);
|
||||
|
||||
//Initial formulation of reverse diffusion charge
|
||||
*Qr = Tr*(*itr);
|
||||
|
|
@ -931,6 +932,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;
|
||||
|
|
@ -1179,6 +1181,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
Vrth = *(ckt->CKTstate1 + here->HICUMvrth);
|
||||
} else if((ckt->CKTmode & MODEINITJCT) &&
|
||||
(ckt->CKTmode & MODETRANOP) && (ckt->CKTmode & MODEUIC)){
|
||||
Vbe = here->HICUMicVB-here->HICUMicVE; //here was a hicumtype before, why?
|
||||
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;
|
||||
|
|
@ -1195,6 +1198,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
Vrth=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;
|
||||
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;
|
||||
|
|
@ -1333,6 +1337,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));
|
||||
|
|
@ -1605,18 +1612,12 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
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, Qjci);
|
||||
result = calc_T_f0(here->HICUMtemp, Vbici+1_e);
|
||||
T_f0 = result.rpart();
|
||||
T_f0_Vbici = result.dpart();
|
||||
|
||||
result = calc_T_f0(here->HICUMtemp, Vbici, Qjci+1_e);
|
||||
T_f0_Qjci = result.dpart();
|
||||
T_f0_Vbici += T_f0_Qjci*Qjci_Vbici;
|
||||
|
||||
result = calc_T_f0(here->HICUMtemp+1_e, Vbici, Qjci);
|
||||
result = calc_T_f0(here->HICUMtemp+1_e, Vbici);
|
||||
T_f0_dT = result.dpart() ;
|
||||
T_f0_dT += T_f0_Qjci*Qjci_dT;
|
||||
|
||||
|
||||
//Critical current
|
||||
result = calc_ick(here->HICUMtemp, Vciei+1_e);
|
||||
|
|
@ -1634,8 +1635,10 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
// initial formulation for itf and so on
|
||||
//Initial formulation of forward and reverse component of transfer current
|
||||
|
||||
Tr = model->HICUMtr;
|
||||
|
||||
//begin initial transfer current calculations -> itf, itr, Qf, Qr------------
|
||||
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);
|
||||
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 = result_itf.rpart();
|
||||
itr = result_itr.rpart();
|
||||
Qf = result_Qf.rpart();
|
||||
|
|
@ -1643,47 +1646,54 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
Q_bf = result_Q_bf.rpart();
|
||||
a_h = result_a_h.rpart(); //needed to check if newton iteration needed
|
||||
Q_p = result_Q_p.rpart(); //needed to check if newton iteration needed
|
||||
Tf = result_Tf.rpart(); //needed to check if newton iteration needed
|
||||
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();
|
||||
|
||||
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 , 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);
|
||||
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();
|
||||
Qf_Vbiei = result_Qf.dpart();
|
||||
Qr_Vbiei = result_Qr.dpart();
|
||||
Q_bf_Vbiei = result_Q_bf.dpart();
|
||||
Tf_Vbiei = result_Tf.dpart();
|
||||
|
||||
calc_it_initial(here->HICUMtemp , 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);
|
||||
calc_it_initial(here->HICUMtemp , 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);
|
||||
itf_Vbici = result_itf.dpart();
|
||||
itr_Vbici = result_itr.dpart();
|
||||
Qf_Vbici = result_Qf.dpart();
|
||||
Qr_Vbici = result_Qr.dpart();
|
||||
Q_bf_Vbici= result_Q_bf.dpart();
|
||||
Tf_Vbici = result_Tf.dpart();
|
||||
|
||||
calc_it_initial(here->HICUMtemp , 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);
|
||||
calc_it_initial(here->HICUMtemp , 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(here->HICUMtemp , 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);
|
||||
calc_it_initial(here->HICUMtemp , 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(here->HICUMtemp , 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);
|
||||
calc_it_initial(here->HICUMtemp , 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;
|
||||
|
|
@ -1691,37 +1701,43 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
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_dick*T_f0_Vbici;
|
||||
itr_Vbici += itr_dick*T_f0_Vbici;
|
||||
Qf_Vbici += Qf_dick*T_f0_Vbici;
|
||||
Qr_Vbici += Qr_dick*T_f0_Vbici;
|
||||
Q_bf_Vbici+= Q_bf_dick*T_f0_Vbici;
|
||||
|
||||
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;
|
||||
|
|
@ -1729,12 +1745,14 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
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
|
||||
//todo: derivatives of temperature dependent hicum parameters
|
||||
|
|
@ -1783,91 +1801,104 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
//end Q_pT -------------------------------------------------------------------------------
|
||||
|
||||
//begin final transfer current calculations -> itf, itr, Qf, Qr------------
|
||||
calc_it_final(here->HICUMtemp+1_e, Vbiei , Vbici , Q_pT , T_f0 , ick , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf);
|
||||
calc_it_final(here->HICUMtemp+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(here->HICUMtemp+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();
|
||||
Qf = result_Qf.rpart();
|
||||
Qr = result_Qr.rpart();
|
||||
Q_bf = result_Q_bf.rpart();
|
||||
Tf = result_Tf.rpart();
|
||||
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_final(here->HICUMtemp , Vbiei+1_e, Vbici , Q_pT , T_f0 , ick , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf);
|
||||
calc_it_final(here->HICUMtemp , Vbiei+1_e, Vbici , Q_pT , T_f0 , ick , &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();
|
||||
Qr_Vbiei = result_Qr.dpart();
|
||||
Q_bf_Vbiei = result_Q_bf.dpart();
|
||||
Tf_Vbiei = result_Tf.dpart();
|
||||
|
||||
calc_it_final(here->HICUMtemp , Vbiei , Vbici+1_e, Q_pT , T_f0 , ick , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf);
|
||||
calc_it_final(here->HICUMtemp , Vbiei , Vbici+1_e, Q_pT , T_f0 , ick , &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();
|
||||
Qr_Vbici = result_Qr.dpart();
|
||||
Q_bf_Vbici= result_Q_bf.dpart();
|
||||
Tf_Vbici = result_Tf.dpart();
|
||||
|
||||
calc_it_final(here->HICUMtemp , Vbiei , Vbici , Q_pT+1_e, T_f0 , ick , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf);
|
||||
calc_it_final(here->HICUMtemp , 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(here->HICUMtemp , Vbiei , Vbici , Q_pT , T_f0+1_e, ick , &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf);
|
||||
calc_it_final(here->HICUMtemp , 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(here->HICUMtemp , Vbiei , Vbici , Q_pT , T_f0 , ick+1_e, &result_itf, &result_itr, &result_Qf, &result_Qr, &result_Q_bf);
|
||||
calc_it_final(here->HICUMtemp , 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_bf_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_dick*T_f0_Vbici;
|
||||
itr_Vbici += itr_dick*T_f0_Vbici;
|
||||
Qf_Vbici += Qf_dick*T_f0_Vbici;
|
||||
Qr_Vbici += Qr_dick*T_f0_Vbici;
|
||||
Q_bf_Vbici+= Q_bf_dick*T_f0_Vbici;
|
||||
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_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;
|
||||
|
||||
// add derivatives of ick=f(Vciei, T)
|
||||
itf_Vciei += itf_dick*ick_Vciei;
|
||||
|
|
@ -1875,12 +1906,14 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
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;
|
||||
}
|
||||
|
||||
// finally the transfer current
|
||||
|
|
@ -1900,17 +1933,15 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
|
||||
//end final calculations --------------------------------------------------
|
||||
|
||||
here->HICUMtf = 0;//tf ...not calculated currently, since it is not needed
|
||||
here->HICUMtf = Tf;
|
||||
|
||||
//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;
|
||||
|
||||
|
||||
//High-frequency emitter current crowding (lateral NQS)
|
||||
Cdei = T_f0*itf/here->HICUMvt;
|
||||
Cdci = model->HICUMtr*itr/here->HICUMvt;
|
||||
|
|
@ -1955,20 +1986,18 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
ibh_rec_Vbici += -Q_bf_Vciei;
|
||||
|
||||
//internal base resistance
|
||||
result = calc_rbi(here->HICUMtemp+1_e, Qjei , Cjci , Qf );
|
||||
result = calc_rbi(here->HICUMtemp+1_e, Qjei , Qf );
|
||||
rbi = result.rpart();
|
||||
rbi_dT = result.dpart();
|
||||
result = calc_rbi(here->HICUMtemp , Qjei+1_e, Cjci , Qf );
|
||||
result = calc_rbi(here->HICUMtemp , Qjei+1_e, Qf );
|
||||
rbi_dQjei = result.dpart();
|
||||
result = calc_rbi(here->HICUMtemp , Qjei , Cjci+1_e, Qf );
|
||||
rbi_dCjci = result.dpart();
|
||||
result = calc_rbi(here->HICUMtemp , Qjei , Cjci , Qf+1_e);
|
||||
result = calc_rbi(here->HICUMtemp , 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_dCjci*Cjci_Vbici ;
|
||||
rbi_dT += rbi_dQjei*Qjei_dT + rbi_dCjci*Cjci_dT + rbi_dQf*Qf_dT;
|
||||
rbi_Vbici = rbi_dQf * Qf_Vbici;
|
||||
rbi_dT += rbi_dQjei*Qjei_dT + rbi_dQf*Qf_dT;
|
||||
|
||||
//Base currents across peripheral b-e junction
|
||||
//TODO: temperature derivative with ibeps_t ireps_t
|
||||
|
|
@ -2136,6 +2165,12 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
|
||||
// Load_sources
|
||||
|
||||
//resistors
|
||||
Ibbp_Vbbp = 1/here->HICUMrbx_t;
|
||||
Icic_Vcic = 1/here->HICUMrcx_t;
|
||||
Ieie_Veie = 1/here->HICUMre_t;
|
||||
Isis_Vsis = 1/model->HICUMrsu;
|
||||
|
||||
Ibpei = model->HICUMtype*ibep;
|
||||
Ibpei += model->HICUMtype*irep;
|
||||
Ibpei_Vbpei = model->HICUMtype*ibep_Vbpei;
|
||||
|
|
@ -2260,12 +2295,8 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
Ibpbi_Vbiei = -Vbpbi * rbi_Vbiei / (rbi*rbi);
|
||||
Ibpbi_Vbici = -Vbpbi * rbi_Vbici / (rbi*rbi);
|
||||
|
||||
Ibbp_Vbbp = 1/here->HICUMrbx_t;
|
||||
Icic_Vcic = 1/here->HICUMrcx_t;
|
||||
Ieie_Veie = 1/here->HICUMre_t;
|
||||
Isis_Vsis = 1/model->HICUMrsu;
|
||||
|
||||
//@Dietmar: why is charge equal to capacitance, where is the j*omega or derivative operator?
|
||||
|
||||
Qjcx_i_Vbci = Cjcx_i;
|
||||
Qjcx_ii_Vbpci = Cjcx_ii;
|
||||
Qjep_Vbpei = Cjep;
|
||||
|
|
@ -2476,10 +2507,10 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
Isici += *(ckt->CKTstate0 + here->HICUMcqjs);
|
||||
|
||||
// Ibci += ddt(model->HICUMtype*qjcx0_t_i);
|
||||
error = NIintegrate(ckt,&geq,&ceq,Cjcx_i,here->HICUMqjcx0_i);
|
||||
if(error) return(error);
|
||||
Ibci_Vbci = geq;
|
||||
Ibci = *(ckt->CKTstate0 + here->HICUMcqcx0_t_i);
|
||||
// error = NIintegrate(ckt,&geq,&ceq,Cjcx_i,here->HICUMqjcx0_i);
|
||||
// if(error) return(error);
|
||||
// Ibci_Vbci = geq;
|
||||
// Ibci = *(ckt->CKTstate0 + here->HICUMcqcx0_t_i);
|
||||
|
||||
// Ibpci += ddt(model->HICUMtype*(qjcx0_t_ii+Qdsu));
|
||||
error = NIintegrate(ckt,&geq,&ceq,Cjcx_ii,here->HICUMqjcx0_ii);
|
||||
|
|
|
|||
Loading…
Reference in New Issue