From 79e80dbbab299b19c94a95b06524b0b5c9f90548 Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Mon, 15 Jan 2024 09:59:21 +0100 Subject: [PATCH] Automatically adding diode RS only when variable 'rsdiode' is set to a positive resistance value. --- src/spicelib/devices/dio/diosetup.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/spicelib/devices/dio/diosetup.c b/src/spicelib/devices/dio/diosetup.c index 6bf8e14da..2c549e03d 100644 --- a/src/spicelib/devices/dio/diosetup.c +++ b/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;