fix hicumACload singular matrix bug
This commit is contained in:
parent
2a1f47e1e5
commit
eae118787e
|
|
@ -68,9 +68,9 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
|||
double XQjci_Vrth;
|
||||
double XQjep_Vbpei;
|
||||
double XQjep_Vrth;
|
||||
double Xqjcx0_t_i_Vbci;
|
||||
double volatile Xqjcx0_t_i_Vbci;
|
||||
double Xqjcx0_t_i_Vrth;
|
||||
double Xqjcx0_t_ii_Vbpci;
|
||||
double volatile Xqjcx0_t_ii_Vbpci;
|
||||
double Xqjcx0_t_ii_Vrth;
|
||||
double XQdsu_Vbpci;
|
||||
double XQdsu_Vsici;
|
||||
|
|
@ -378,19 +378,19 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
|||
*(here->HICUMcollCollPtr + 1) += -XQscp_Vsc;
|
||||
//Qbepar1
|
||||
*(here->HICUMbaseBasePtr + 1) += XQbepar1_Vbe;
|
||||
*(here->HICUMemitEmitPtr + 1) += XQbepar1_Vbe;
|
||||
*(here->HICUMbaseEmitPtr + 1) += -XQbepar1_Vbe;
|
||||
*(here->HICUMemitBasePtr + 1) += -XQbepar1_Vbe;
|
||||
*(here->HICUMemitEmitPtr + 1) += XQbepar1_Vbe;
|
||||
//Qbepar2
|
||||
*(here->HICUMbaseBPBaseBPPtr + 1) += XQbepar2_Vbpe;
|
||||
*(here->HICUMemitEmitPtr + 1) += XQbepar2_Vbpe;
|
||||
*(here->HICUMemitBaseBPPtr + 1) += -XQbepar2_Vbpe;
|
||||
*(here->HICUMemitEmitPtr + 1) += -XQbepar2_Vbpe;
|
||||
*(here->HICUMbaseBPEmitPtr + 1) += XQbepar2_Vbpe;
|
||||
*(here->HICUMbaseBPEmitPtr + 1) += -XQbepar2_Vbpe;
|
||||
//Qbcpar1
|
||||
*(here->HICUMbaseBasePtr + 1) += XQbcpar1_Vbci;
|
||||
*(here->HICUMcollCICollCIPtr + 1) += XQbcpar1_Vbci;
|
||||
*(here->HICUMbaseCollCIPtr + 1) += -XQbcpar1_Vbci;
|
||||
*(here->HICUMcollCIBasePtr + 1) += -XQbcpar1_Vbci;
|
||||
*(here->HICUMcollCICollCIPtr + 1) += XQbcpar1_Vbci;
|
||||
//Qbcpar2
|
||||
*(here->HICUMbaseBPBaseBPPtr +1) += XQbepar2_Vbpe;
|
||||
*(here->HICUMcollCICollCIPtr +1) += XQbepar2_Vbpe;
|
||||
|
|
@ -398,9 +398,9 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
|||
*(here->HICUMcollCIBaseBPPtr +1) += -XQbepar2_Vbpe;
|
||||
//Qsu
|
||||
*(here->HICUMsubsSubsPtr + 1) += XQsu_Vsis;
|
||||
*(here->HICUMsubsSISubsSIPtr + 1) += XQsu_Vsis;
|
||||
*(here->HICUMsubsSISubsPtr + 1) += -XQsu_Vsis;
|
||||
*(here->HICUMsubsSubsSIPtr + 1) += -XQsu_Vsis;
|
||||
*(here->HICUMsubsSISubsSIPtr + 1) += XQsu_Vsis;
|
||||
|
||||
// Stamps with SH
|
||||
if (model->HICUMflsh && model->HICUMrth >= 0.001) { //dirty: hardcoded MIN_R
|
||||
|
|
@ -512,6 +512,8 @@ HICUMacLoad(GENmodel *inModel, CKTcircuit *ckt)
|
|||
//Qcth from 0 to T f_0=- f_T=+
|
||||
*(here->HICUMtempTempPtr + 1) += -XQcth_Vrth;
|
||||
|
||||
} else {
|
||||
*(here->HICUMtempTempPtr) += ckt->CKTgmin;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2701,8 +2701,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
Ith_Vbbp = 2*Vbbp/here->HICUMrbx_t.rpart;
|
||||
}
|
||||
}
|
||||
Ith += ckt->CKTgmin*Vrth;
|
||||
Ith_Vrth += ckt->CKTgmin;
|
||||
|
||||
}
|
||||
// ********************************************
|
||||
|
||||
|
|
@ -2720,6 +2719,10 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
//S from Isis
|
||||
|
||||
//all derivatives with gmin
|
||||
Ibbp_Vbbp += ckt->CKTgmin;
|
||||
Icic_Vcic += ckt->CKTgmin;
|
||||
Ieie_Veie += ckt->CKTgmin;
|
||||
Isis_Vsis += ckt->CKTgmin;
|
||||
//Ibiei
|
||||
Ibiei_Vbiei += ckt->CKTgmin;
|
||||
Ibiei_Vbici += ckt->CKTgmin;
|
||||
|
|
@ -2752,6 +2755,11 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
|
||||
//SHE derivatives
|
||||
if (!(model->HICUMflsh == 0 || model->HICUMrth < MIN_R )) {
|
||||
// T node
|
||||
Ith += ckt->CKTgmin*Vrth;
|
||||
Ibbp_Vrth += ckt->CKTgmin;
|
||||
Icic_Vrth += ckt->CKTgmin;
|
||||
Ieie_Vrth += ckt->CKTgmin;
|
||||
//Ibiei
|
||||
Ibiei_Vrth += ckt->CKTgmin;
|
||||
//Ibici
|
||||
|
|
|
|||
|
|
@ -110,4 +110,93 @@ Ableitungen des Stromes gmin als Zusatz.
|
|||
Praktisch heißt das, daß die Beaufschlagung von Iciei überflüssig ist,
|
||||
da schon mit den Zweigen biei und bici erfolgt ist.
|
||||
Es fehlen aber noch Beaufschlagungen,
|
||||
z.B. Ibiei_Vbici, weil die Ableitung später hinzugekommen ist.
|
||||
z.B. Ibiei_Vbici, weil die Ableitung später hinzugekommen ist.
|
||||
|
||||
# CMC Failing Tests
|
||||
****** Checking test (ngspice): fgum_ac_npn_1D_ac
|
||||
variant: standard (compared to: reference) FAIL (probably from some simulation failure)
|
||||
|
||||
****** Checking test (ngspice): fgum_ac_npn_internal_ac
|
||||
variant: standard (compared to: reference) FAIL (probably from some simulation failure)
|
||||
|
||||
****** Checking test (ngspice): fgum_ac_npn_full_ac
|
||||
variant: standard (compared to: reference) FAIL (probably from some simulation failure)
|
||||
|
||||
****** Checking test (ngspice): fgum_ac_npn_full_subcoupl_peri_bias_ac
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
|
||||
****** Checking test (ngspice): fgum_ac_npn_full_subcoupl_peri_con_ac
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
|
||||
****** Checking test (ngspice): fgum_ac_npn_full_subcoupl_peri_bias_ac
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
|
||||
****** Checking test (ngspice): fgum_ac_npn_full_subcoupl_peri_cond_ac
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
|
||||
****** Checking test (ngspice): fgum_ac_npn_vert_nqs_ac
|
||||
variant: standard (compared to: reference) FAIL (probably from some simulation failure)
|
||||
|
||||
***** Checking test (ngspice): fgum_ac_npn_lat_nqs_ac
|
||||
variant: standard (compared to: reference) FAIL (probably from some simulation failure)
|
||||
|
||||
****** Checking test (ngspice): fgum_ac_npn_cornoise_ac
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
|
||||
***** Checking test (ngspice): CBE_npn_1D_dc
|
||||
variant: standard (compared to: reference) FAIL (probably from some simulation failure)
|
||||
|
||||
****** Checking test (ngspice): CBE_npn_1D_ac
|
||||
variant: standard (compared to: reference) FAIL (probably from some simulation failure)
|
||||
|
||||
****** Checking test (ngspice): CBE_npn_internal_ac
|
||||
variant: standard (compared to: reference) FAIL (probably from some simulation failure)
|
||||
|
||||
***** Checking test (ngspice): CBE_npn_full_ac
|
||||
variant: standard (compared to: reference) FAIL (probably from some simulation failure)
|
||||
|
||||
***** Checking test (ngspice): ypara_npn_1D_ac
|
||||
variant: standard (compared to: reference) FAIL (probably from some simulation failure)
|
||||
|
||||
***** Checking test (ngspice): ypara_npn_internal_ac
|
||||
variant: standard (compared to: reference) FAIL (probably from some simulation failure)
|
||||
|
||||
***** Checking test (ngspice): ypara_npn_full_ac
|
||||
variant: standard (compared to: reference) FAIL (probably from some simulation failure)
|
||||
|
||||
***** Checking test (ngspice): ypara_npn_full_sh_ac
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
|
||||
****** Checking test (ngspice): ypara_npn_full_subtran_ac
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
|
||||
****** Checking test (ngspice): ypara_npn_full_subcoupl_ac
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
|
||||
****** Checking test (ngspice): ypara_npn_full_subcoupl_peri_bias_ac
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
|
||||
****** Checking test (ngspice): ypara_npn_full_subcoupl_peri_con_ac
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
|
||||
***** Checking test (ngspice): ypara_npn_full_subcoupl_peri_bias_ac
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
|
||||
****** Checking test (ngspice): ypara_npn_full_subcoupl_peri_con_ac
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
|
||||
***** Checking test (ngspice): ypara_npn_vert_nqs_ac
|
||||
variant: standard (compared to: reference) FAIL (probably from some simulation failure)
|
||||
|
||||
****** Checking test (ngspice): ypara_npn_lat_nqs_ac
|
||||
variant: standard (compared to: reference) FAIL (probably from some simulation failure)
|
||||
|
||||
****** Checking test (ngspice): ypara_npn_cornoise_ac
|
||||
variant: standard (compared to: reference) DIFFER (max rel error is 100%)
|
||||
|
||||
|
|
|
|||
|
|
@ -39,13 +39,5 @@ freq dec 5 1e+008 1e+011
|
|||
outputs G(base,base) G(base,coll) G(coll,base) G(coll,coll) C(base,base) C(base,coll) C(coll,base) C(coll,coll)
|
||||
modelParameters parameters/npn_full_sh
|
||||
|
||||
test ypara_npn_full_ac
|
||||
temperature 27
|
||||
biases V(emit)=0 V(subs)=0 V(coll)=1.000000
|
||||
biasSweep V(base)=0.800000,0.950000,0.050000
|
||||
freq dec 5 1e+008 1e+011
|
||||
outputs G(base,base) G(base,coll) G(coll,base) G(coll,coll) C(base,base) C(base,coll) C(coll,base) C(coll,coll)
|
||||
modelParameters parameters/npn_full
|
||||
|
||||
`ifdef NOT_USED
|
||||
`endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue