Additional fix proposal for CKTnoncon in NIiter

This commit is contained in:
Francesco Lannutti 2018-02-06 23:54:25 +01:00
parent acb7a6dffe
commit 42d749ef7d
1 changed files with 9 additions and 5 deletions

View File

@ -193,11 +193,15 @@ NIiter(CKTcircuit *ckt, int maxIter)
return(E_ITERLIM); return(E_ITERLIM);
} }
if ((ckt->CKTnoncon == 0) && (iterno != 1)) { if ((ckt->CKTnoncon == 0) && (iterno > 1)) {
ckt->CKTnoncon = NIconvTest(ckt); if (old_noncon == 0) {
printf("niiter[%d], NIconvTest->%d\n", iterno, ckt->CKTnoncon); ckt->CKTnoncon = NIconvTest(ckt);
printf("niiter[%d], NIconvTest->%d\n", iterno, ckt->CKTnoncon);
} else {
printf("niiter[%d], skipping NIconvTest - CKTnoncon: %d\n", iterno, ckt->CKTnoncon);
}
} else { } else {
printf("niiter[%d], skipping NIconvTest\n", iterno); printf("niiter[%d], skipping NIconvTest - CKTnoncon: %d\n", iterno, ckt->CKTnoncon);
ckt->CKTnoncon = 1; ckt->CKTnoncon = 1;
} }
@ -242,7 +246,7 @@ NIiter(CKTcircuit *ckt, int maxIter)
ckt->CKTnoncon = ipass; ckt->CKTnoncon = ipass;
ipass = 0; ipass = 0;
} }
if (ckt->CKTnoncon == 0 && old_noncon == 0) { if ((ckt->CKTnoncon == 0) && (old_noncon == 0)) {
ckt->CKTstat->STATnumIter += iterno; ckt->CKTstat->STATnumIter += iterno;
FREE(OldCKTstate0); FREE(OldCKTstate0);
printf("niiter[%d], accepted and return\n", iterno); printf("niiter[%d], accepted and return\n", iterno);