Patch sent by Hitoshi to fix ltra code and "listing" command. See Changelog.

This commit is contained in:
pnenzi 2005-09-04 16:41:27 +00:00
parent 847173ecc0
commit 33b254609b
5 changed files with 35 additions and 10 deletions

View File

@ -1,3 +1,24 @@
2005-09-04 Paolo Nenzi <p.nenzi@ieee.org>
* src/spicelib/devices/ltra/{ltraload.c, ltraacld.c, ltratrun.c}:
Applied Hitoshi's patches to fix ltra code. The bug produced a
"Timestep too small" in simulations and uninitialized variables
produced wrong results in some files under MinGW.
* src/spicelib/parser/inp2d.c:
Fixed a bug that causes an "unknown parameter(save)" error if there
is the expression like the following in the netlist of Cider analysis.
D1 1 2 M_PN AREA=100 save
(Fix from Hitoshi Tanaka).
* src/frontend/streams.c:
Fix to a bug that caused crush when I input "listing" command after
loading Cider examples under Ngspice compiled by Visual C++.
(Fix from Hitoshi Tanaka).
2005-08-30 Paolo Nenzi <p.nenzi@ieee.org>
============================ Rework-17 ==================================

View File

@ -18,9 +18,9 @@ char cp_gt = '>';
char cp_lt = '<';
char cp_amp = '&';
FILE *cp_in;
FILE *cp_out;
FILE *cp_err;
FILE *cp_in = NULL;
FILE *cp_out = NULL;
FILE *cp_err = NULL;
/* These are the fps that cp_ioreset resets the cp_* to. They are
* changed by the source routines. */

View File

@ -51,7 +51,8 @@ LTRAacLoad(GENmodel *inModel, CKTcircuit *ckt)
y0_r = model->LTRAadmit;
y0_i = 0.0;
lambda_i = model->LTRAtd * ckt->CKTomega;
/*lambda_i = model->LTRAtd*ckt->CKTomega;*/
lambda_i = sqrt(model->LTRAinduct*model->LTRAcapac) * ckt->CKTomega; /*CDHW*/
lambda_r = 0.0;
break;

View File

@ -19,11 +19,11 @@ LTRAload(GENmodel *inModel, CKTcircuit *ckt)
{
LTRAmodel *model = (LTRAmodel *) inModel;
LTRAinstance *here;
double t1, t2, t3;
double qf1, qf2, qf3;
double t1=0.0, t2=0.0, t3=0.0;
double qf1=0.0, qf2=0.0, qf3=0.0;
double lf2, lf3;
double v1d = 0.0, v2d = 0.0, i1d = 0.0, i2d = 0.0;
double dummy1, dummy2;
double dummy1=0.0, dummy2=0.0;
int isaved = 0;
unsigned tdover = 0;
int i;
@ -144,13 +144,16 @@ LTRAload(GENmodel *inModel, CKTcircuit *ckt)
if (i == ckt->CKTtimeIndex)
i--;
#ifdef LTRADEBUG
/*#ifdef LTRADEBUG*/
if ((i == -1)) {
#ifdef LTRADEBUG
printf("LTRAload: mistake: cannot find delayed timepoint\n");
}
return E_INTERN;
/*}*/
#else
return E_INTERN;
#endif
}
isaved = i;

View File

@ -19,7 +19,7 @@ LTRAtrunc(GENmodel *inModel, CKTcircuit *ckt, double *timeStep)
double i5, i6, d1, d2, d3, d4;
double tmp;
double tolerance;
double current_lte;
double current_lte=0.0;
int maxiter = 2, iterations = 0;
double x, y, change, deriv, deriv_delta;