Browse Source

Automatically adding diode RS only when variable 'rsdiode' is set

to a positive resistance value.
pre-master-46
Holger Vogt 2 years ago
parent
commit
79e80dbbab
  1. 11
      src/spicelib/devices/dio/diosetup.c

11
src/spicelib/devices/dio/diosetup.c

@ -197,9 +197,14 @@ DIOsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states)
if((!model->DIOresistGiven) || (model->DIOresist==0)) {
if (newcompat.ps || newcompat.lt) {
model->DIOconductance = 1e4; /* improved convergence */
if (ft_ngdebug)
fprintf(stderr, "Diode series resistance in model %s set to 100 microOhm\n", model->gen.GENmodName);
double rsdiode = 0.;
if (cp_getvar("rsdiode", CP_REAL, &rsdiode, 0) && rsdiode > 0) {
model->DIOconductance = 1./rsdiode; /* sometimes improves convergence */
if (ft_ngdebug)
fprintf(stderr, "Diode series resistance in model %s set to 100 microOhm\n", model->gen.GENmodName);
}
else
model->DIOconductance = 0.0;
}
else
model->DIOconductance = 0.0;

Loading…
Cancel
Save