From 1c2dd967daaef745474569c85c6f4387daf5dcdd Mon Sep 17 00:00:00 2001 From: Holger Vogt Date: Sun, 5 Apr 2020 19:54:19 +0200 Subject: [PATCH] During setup, ASRC (aka B source) uses ckt->CKTrhsOld[node->number] for initial evaluation. .nodeset or .ic have never set CKTrhsOld, so initalization for B source failed. We still have to check why .nodeset and .ic are set two times, first in CKTic(), then in CKTload()! --- src/spicelib/analysis/cktic.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/spicelib/analysis/cktic.c b/src/spicelib/analysis/cktic.c index ebf909568..194b29ade 100644 --- a/src/spicelib/analysis/cktic.c +++ b/src/spicelib/analysis/cktic.c @@ -28,7 +28,7 @@ CKTic(CKTcircuit *ckt) node->ptr = SMPmakeElt(ckt->CKTmatrix,node->number,node->number); if(node->ptr == NULL) return(E_NOMEM); ckt->CKThadNodeset = 1; - ckt->CKTrhs[node->number] = node->nodeset; + ckt->CKTrhsOld[node->number] = ckt->CKTrhs[node->number] = node->nodeset; } if(node->icGiven) { if(! ( node->ptr)) { @@ -36,7 +36,7 @@ CKTic(CKTcircuit *ckt) node->number); if(node->ptr == NULL) return(E_NOMEM); } - ckt->CKTrhs[node->number] = node->ic; + ckt->CKTrhsOld[node->number] = ckt->CKTrhs[node->number] = node->ic; } }