Automatically adding diode RS only when variable 'rsdiode' is set
to a positive resistance value.
This commit is contained in:
parent
0141473aa4
commit
79e80dbbab
|
|
@ -197,12 +197,17 @@ DIOsetup(SMPmatrix *matrix, GENmodel *inModel, CKTcircuit *ckt, int *states)
|
||||||
|
|
||||||
if((!model->DIOresistGiven) || (model->DIOresist==0)) {
|
if((!model->DIOresistGiven) || (model->DIOresist==0)) {
|
||||||
if (newcompat.ps || newcompat.lt) {
|
if (newcompat.ps || newcompat.lt) {
|
||||||
model->DIOconductance = 1e4; /* improved convergence */
|
double rsdiode = 0.;
|
||||||
|
if (cp_getvar("rsdiode", CP_REAL, &rsdiode, 0) && rsdiode > 0) {
|
||||||
|
model->DIOconductance = 1./rsdiode; /* sometimes improves convergence */
|
||||||
if (ft_ngdebug)
|
if (ft_ngdebug)
|
||||||
fprintf(stderr, "Diode series resistance in model %s set to 100 microOhm\n", model->gen.GENmodName);
|
fprintf(stderr, "Diode series resistance in model %s set to 100 microOhm\n", model->gen.GENmodName);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
model->DIOconductance = 0.0;
|
model->DIOconductance = 0.0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
model->DIOconductance = 0.0;
|
||||||
} else {
|
} else {
|
||||||
model->DIOconductance = 1/model->DIOresist;
|
model->DIOconductance = 1/model->DIOresist;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue