From 68c5eb2d6b2ad1b8a5fdf8d87112694ea66bf14e Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Fri, 3 Sep 2021 15:01:53 +0200 Subject: [PATCH] Add resistance sweep error message for failing optran --- src/spicelib/analysis/ckttroub.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/spicelib/analysis/ckttroub.c b/src/spicelib/analysis/ckttroub.c index f27f894c2..91c2e7c5c 100644 --- a/src/spicelib/analysis/ckttroub.c +++ b/src/spicelib/analysis/ckttroub.c @@ -8,6 +8,7 @@ Copyright 1990 Regents of the University of California. All rights reserved. #include "ngspice/devdefs.h" #include "vsrc/vsrcdefs.h" #include "isrc/isrcdefs.h" +#include "res/resdefs.h" #include "ngspice/jobdefs.h" #include "analysis.h" @@ -21,7 +22,7 @@ CKTtrouble(CKTcircuit *ckt, char *optmsg) char msg_buf[513]; char *emsg; TRCV *cv; - int vcode, icode; + int vcode, icode, rcode; char *msg_p; SPICEanalysis *an; int i; @@ -56,14 +57,20 @@ CKTtrouble(CKTcircuit *ckt, char *optmsg) cv = (TRCV*) ckt->CKTcurJob; vcode = CKTtypelook("Vsource"); icode = CKTtypelook("Isource"); + rcode = CKTtypelook("Resistor"); for (i = 0; i <= cv->TRCVnestLevel; i++) { msg_p += strlen(msg_p); if (cv->TRCVvType[i] == vcode) { /* voltage source */ sprintf(msg_p, " %s = %g: ", cv->TRCVvName[i], ((VSRCinstance*)(cv->TRCVvElt[i]))->VSRCdcValue); - } else if (cv->TRCVvType[i] == TEMP_CODE) { /* temp sweep, if optran fails) */ + } + else if (cv->TRCVvType[i] == TEMP_CODE) { /* temp sweep, if optran fails) */ sprintf(msg_p, " %s = %g: ", cv->TRCVvName[i], ckt->CKTtemp - CONSTCtoK); + } + else if (cv->TRCVvType[i] == rcode) { + sprintf(msg_p, " %s = %g: ", cv->TRCVvName[i], + ((RESinstance*)(cv->TRCVvElt[i]))->RESresist); } else { sprintf(msg_p, " %s = %g: ", cv->TRCVvName[i], ((ISRCinstance*)(cv->TRCVvElt[i]))->ISRCdcValue);