41 static char *msg =
"Too many iterations without convergence";
52 printf(
"load (1) returned error\n");
59 error =
spError(ckt->CKTmatrix);
63 printf(
"pre-order returned error \n");
78 if (ckt->CKTnoncon == 0 && ckt->CKTjjPresent) {
90 ckt->CKTpivotRelTol,ckt->CKTpivotAbsTol,1);
98 message = (
char *)
MALLOC(1000);
99 (void)sprintf(message,
100 "singular matrix: check nodes %s and %s\n",
106 printf(
"reorder returned error ");
108 printf(
"at time=%g",ckt->CKTtime);
129 DEBUGMSG(
" forced reordering....\n");
133 printf(
"load (3) returned error \n");
138 error =
spError(ckt->CKTmatrix);
141 printf(
"preorder returned error\n");
150 printf(
"lufac returned error \n");
160 temp = ckt->CKTrhsOld;
161 ckt->CKTrhsOld = ckt->CKTrhs;
165 *ckt->CKTrhsSpare = 0;
168 if (iterno > maxIter) {
173 printf(
"iterlim exceeded, time = %g\n",ckt->CKTtime);
177 if (!ckt->CKTjjPresent) {
178 if (ckt->CKTnoncon == 0 && iterno != 1) {
187 if ((ckt->CKTmode &
MODEDC) && ckt->CKThadNodeset) {
189 ckt->CKTnoncon = ipass;
193 if (ckt->CKTnoncon == 0) {
213 if (ckt->CKTnoncon == 0)
220 printf(
"bad initf state \n");
230 printf(
"load (2) returned error \n");
237 printf(
"time=%15g, %d iters, %s\n", ckt->CKTtime,iterno,
238 (error==
OK) ?
"ok" :
"fail");
#define NODENAME(ckt, nodenum)
int NIiter(CKTcircuit *ckt, int maxIter)
static void message(char *instr, char *outstr)
#define DEBUGMSG(testargs)