Browse Source

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()!
pre-master-46
Holger Vogt 6 years ago
parent
commit
1c2dd967da
  1. 4
      src/spicelib/analysis/cktic.c

4
src/spicelib/analysis/cktic.c

@ -28,7 +28,7 @@ CKTic(CKTcircuit *ckt)
node->ptr = SMPmakeElt(ckt->CKTmatrix,node->number,node->number); node->ptr = SMPmakeElt(ckt->CKTmatrix,node->number,node->number);
if(node->ptr == NULL) return(E_NOMEM); if(node->ptr == NULL) return(E_NOMEM);
ckt->CKThadNodeset = 1; ckt->CKThadNodeset = 1;
ckt->CKTrhs[node->number] = node->nodeset;
ckt->CKTrhsOld[node->number] = ckt->CKTrhs[node->number] = node->nodeset;
} }
if(node->icGiven) { if(node->icGiven) {
if(! ( node->ptr)) { if(! ( node->ptr)) {
@ -36,7 +36,7 @@ CKTic(CKTcircuit *ckt)
node->number); node->number);
if(node->ptr == NULL) return(E_NOMEM); if(node->ptr == NULL) return(E_NOMEM);
} }
ckt->CKTrhs[node->number] = node->ic;
ckt->CKTrhsOld[node->number] = ckt->CKTrhs[node->number] = node->ic;
} }
} }

Loading…
Cancel
Save