From 8a7369767551f3d5a2e18102ea0aae40a6dd8319 Mon Sep 17 00:00:00 2001 From: mariok Date: Mon, 4 May 2020 18:03:46 +0200 Subject: [PATCH] fixed dual number Q_0_hjei_vbe --- src/spicelib/devices/hicum2/Makefile.am | 6 +++--- src/spicelib/devices/hicum2/hicumL2.cpp | 28 ++++++++++++------------- tests/hicum2/FG.cir | 4 ++-- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/spicelib/devices/hicum2/Makefile.am b/src/spicelib/devices/hicum2/Makefile.am index 279f5ab29..3c87d2df3 100644 --- a/src/spicelib/devices/hicum2/Makefile.am +++ b/src/spicelib/devices/hicum2/Makefile.am @@ -26,8 +26,8 @@ libhicum2_la_SOURCES = \ hicum2trunc.c -AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include -lstdc++ -std=c++11 -AM_CFLAGS = -lstdc++ -I$(top_srcdir)/src/include -AM_CXXFLAGS = -I$(top_srcdir)/src/include -lstdc++ -std=c++11 +AM_CPPFLAGS = @AM_CPPFLAGS@ -I$(top_srcdir)/src/include -lstdc++ -std=c++11 -Og +AM_CFLAGS = -lstdc++ -I$(top_srcdir)/src/include -Og +AM_CXXFLAGS = -I$(top_srcdir)/src/include -lstdc++ -std=c++11 -Og MAINTAINERCLEANFILES = Makefile.in diff --git a/src/spicelib/devices/hicum2/hicumL2.cpp b/src/spicelib/devices/hicum2/hicumL2.cpp index 0a829da34..35c5c9356 100644 --- a/src/spicelib/devices/hicum2/hicumL2.cpp +++ b/src/spicelib/devices/hicum2/hicumL2.cpp @@ -952,7 +952,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) A = 0.5*Q_0; Q_p = A+sqrt(A*A+T_f0*i_0f+Tr*i_0r); } - I_Tf1 =i_0f/Q_p; + I_Tf1 = i_0f/Q_p; a_h = Oich*I_Tf1; itf = I_Tf1*(1.0+a_h); itr = i_0r/Q_p; @@ -1573,7 +1573,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) result = calc_Q_0(Qjei, Qjci+1_e, hjei_vbe); Q_0_Qjci = result.dpart(); - result = calc_Q_0(Qjei, Qjci+1_e, hjei_vbe); + result = calc_Q_0(Qjei, Qjci, hjei_vbe+1_e); Q_0_hjei_vbe = result.dpart(); Q_0_Vbiei = Q_0_Qjei*Qjei_Vbiei + Q_0_hjei_vbe*hjei_vbe_Vbiei; @@ -1625,18 +1625,18 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt) 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 diff --git a/tests/hicum2/FG.cir b/tests/hicum2/FG.cir index fdcf48a62..b23d3076c 100644 --- a/tests/hicum2/FG.cir +++ b/tests/hicum2/FG.cir @@ -3,7 +3,7 @@ VE Q1_E 0 1.0 VC Q1_C 0 0.0 VB Q1_B 0 0.0 RT Q1_T 0 1M -Q1 Q1_C Q1_B Q1_E Q1_E Q1_T P1 dt=0.0 +Q1 Q1_C Q1_B Q1_E Q1_E Q1_T P1 icVBE=0.2 icVCE=0.2 dt=0.0 .DC VE -0.2 -1.2 -10m .OPTIONS GMIN=1e-13 NOACCT @@ -13,7 +13,7 @@ Q1 Q1_C Q1_B Q1_E Q1_E Q1_T P1 dt=0.0 .MODEL P1 NPN LEVEL=8 -+ tr=0.0000000000e+00 acbar=1.5000000000e+00 ahc=5.0000000000e-02 aick=1.0000000000e-03 delck=2.0000000000e+00 dt0h=0.0000000000e+00 fthc=7.0000000000e-01 gtfe=3.5480000000e+00 icbar=1.0000000000e-02 rci0=1.0000000000e-09 t0=1.0000000000e-15 tbvl=0.0000000000e+00 tef0=3.2710000000e-13 thcs=5.0010000000e-12 vcbar=4.0000000000e-02 vces=1.0000000000e-02 vlim=6.9990000000e-01 vpt=2.0000000000e+00 ajei=1.6500000000e+00 ajep=1.6000000000e+00 cjci0=3.5800000000e-15 cjcx0=0.0000000000e+00 cjei0=8.8690000000e-15 cjep0=0.0000000000e+00 cjs0=0.0000000000e+00 cscp0=0.0000000000e+00 fbcpar=3.0000000000e-01 fbepar=1.0000000000e+00 vdci=8.2010000000e-01 vdcx=8.2010000000e-01 vdei=7.1400000000e-01 vdep=8.5010000000e-01 vds=9.9970000000e-01 vdsp=6.0000000000e-01 vptci=1.7900000000e+00 vptcx=1.9770000000e+00 vpts=1.0000000000e+02 vptsp=1.0000000000e+02 zci=2.8570000000e-01 zcx=2.8630000000e-01 zei=2.4890000000e-01 zep=2.6320000000e-01 zs=4.2950000000e-01 zsp=5.0000000000e-01 cbcpar=0.0000000000e+00 cbepar=2.6090000000e-14 alfav=-2.4000000000e-03 alkav=0.0000000000e+00 alqav=-6.2840000000e-04 favl=1.8960000000e+01 kavl=0.0000000000e+00 qavl=5.0920000000e-14 ibcis=4.6030000000e-17 ibcxs=0.0000000000e+00 mbci=1.1500000000e+00 mbcx=1.0000000000e+00 ibeis=1.3280000000e-19 ibeps=0.0000000000e+00 ireis=0.0000000000e+00 ireps=0.0000000000e+00 mbei=1.0270000000e+00 mbep=1.0420000000e+00 mrei=2.0000000000e+00 mrep=1.8000000000e+00 tbhrec=0.0000000000e+00 abet=2.4000000000e+01 ibets=0.0000000000e+00 tunode=1.0000000000e+00 iscs=0.0000000000e+00 itss=0.0000000000e+00 msc=1.0000000000e+00 msf=1.0000000000e+00 tsf=0.0000000000e+00 ahjei=3.0000000000e+00 c10=1.0000000000e-15 hf0=4.0000000000e+01 hfc=2.0040000000e+01 hfe=1.0010000000e+01 hjci=2.0000000000e-01 hjei=3.3820000000e+00 ich=0.0000000000e+00 mcf=1.0000000000e+00 qp0=1.0080000000e-13 rhjei=2.0000000000e+00 latb=0.0000000000e+00 latl=0.0000000000e+00 alit=3.3333300000e-01 alqf=1.6666700000e-01 flnqs=0.0000000000e+00 af=2.0000000000e+00 afre=2.0000000000e+00 cfbe=-1.0000000000e+00 flcono=0.0000000000e+00 kf=0.0000000000e+00 kfre=0.0000000000e+00 fcrbi=0.0000000000e+00 fdqr0=0.0000000000e+00 fgeo=7.4090000000e-01 fqi=1.0000000000e+00 rbi0=0.0000000000e+00 rbx=0.0000000000e+00 rcx=0.0000000000e+00 re=1.0000000000e+00 csu=0.0000000000e+00 rsu=0.0000000000e+00 alrth=2.0000000000e-03 cth=6.8410000000e-12 flsh=0.0000000000e+00 rth=1.1134000000e+03 zetarth=0.0000000000e+00 flcomp=2.4000000000e+00 tnom=2.6850000000e+01 alb=0.0000000000e+00 alces=-2.2860000000e-01 alt0=4.0000000000e-03 alvs=1.0000000000e-03 dvgbe=0.0000000000e+00 f1vg=-1.0237700000e-04 f2vg=4.3215000000e-04 kt0=6.5880000000e-05 vgb=9.1000000000e-01 vgc=1.1700000000e+00 vge=1.1700000000e+00 vgs=1.1700000000e+00 zetabet=4.8920000000e+00 zetaci=5.8000000000e-01 zetact=5.0000000000e+00 zetacx=0.0000000000e+00 zetahjei=-5.0000000000e-01 zetarbi=3.0020000000e-01 zetarbx=6.0110000000e-02 zetarcx=-2.7680000000e-02 zetare=-9.6050000000e-01 zetavgbe=7.0000000000e-01 ++ c10=1.0000000000e-15 flcomp=2.4 flsh=0.0 re=1 * + c10=9.074e-030 qp0=1.008e-013 hfe=10.01 hfc=20.04 hjei=3.382 hjci=0.2 * + ibeis=1.328e-019 mbei=1.027 ireis=1.5e-014 mrei=2 ibeps=1.26e-019 mbep=1.042