From a741ccf4e16928e44565158d78373ca41e78a40b Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Thu, 29 Sep 2022 16:28:16 +0200 Subject: [PATCH] Streamline the simple diode model. --- src/xspice/icm/xtradev/sidiode/cfunc.mod | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/xspice/icm/xtradev/sidiode/cfunc.mod b/src/xspice/icm/xtradev/sidiode/cfunc.mod index fecd7ad2a..2b1a955b7 100644 --- a/src/xspice/icm/xtradev/sidiode/cfunc.mod +++ b/src/xspice/icm/xtradev/sidiode/cfunc.mod @@ -131,7 +131,9 @@ void cm_sidiode(ARGS) /* structure holding parms, if (INIT==1) { /* First pass...allocate memory and calculate some constants... */ - double grev, goff, gon, Va, Vb, Vc, Vd, hEpsilon, hRevepsilon; + double grev, goff, gon, Va, Vb, Vc, Vd; + double lEpsilon = PARAM(epsilon); + double lRevepsilon = PARAM(revepsilon); CALLBACK = cm_sidiode_callback; @@ -146,23 +148,21 @@ void cm_sidiode(ARGS) /* structure holding parms, else grev = 1./PARAM(rrev); - hRevepsilon = 0.5 * PARAM(revepsilon); - loc->Va = Va = Vrev - PARAM(revepsilon); //hRevepsilon; - loc->Vb = Vb = Vrev; //+ hRevepsilon; + loc->Va = Va = Vrev - lRevepsilon; + loc->Vb = Vb = Vrev; loc->a2 = grev/Revilimit; - if(hRevepsilon > 0.0) { - loc->a1 = (goff - grev)/PARAM(revepsilon); + if(lRevepsilon > 0.0) { + loc->a1 = (goff - grev)/lRevepsilon; loc->revepsi = MIF_TRUE; } else loc->revepsi = MIF_FALSE; - hEpsilon = 0.5 * PARAM(epsilon); - loc->Vc = Vc = Vfwd; // - hEpsilon; - loc->Vd = Vd = Vfwd + PARAM(epsilon); //hEpsilon; + loc->Vc = Vc = Vfwd; + loc->Vd = Vd = Vfwd + lEpsilon; loc->b2 = gon/Ilimit; - if(hEpsilon > 0.0) { - loc->b1 = (gon - goff)/PARAM(epsilon); + if(lEpsilon > 0.0) { + loc->b1 = (gon - goff)/lEpsilon; loc->epsi = MIF_TRUE; } else