A quick fix for a bug reported in the Help forum by Tom Hajjar on

Jan 6 2024.  Prevent the TRA device from requesting a breakpoint
in the past, as that is a hard error.
This commit is contained in:
Giles Atkinson 2024-01-12 17:14:05 +00:00
parent fb76eb5e12
commit 2ad97feb31
1 changed files with 10 additions and 13 deletions

View File

@ -107,19 +107,16 @@ TRAaccept(CKTcircuit *ckt, GENmodel *inModel)
here->TRAabstol) ||
(fabs(d3-d4) >= here->TRAreltol*MAX(fabs(d3),fabs(d4))+
here->TRAabstol) ) {
/* derivitive changing - need to schedule after delay */
/*printf("%s: at %g set for %g\n",here->TRAname,
ckt->CKTtime,
*(here->TRAdelays+3*here->TRAsizeDelay-3)+here->TRAtd
);*/
/*printf("%g, %g, %g -> %g, %g \n",v1,v2,v3,d1,d2);*/
/*printf("%g, %g, %g -> %g, %g \n",v4,v5,v6,d3,d4);*/
/* also set for break after PREVIOUS point */
/*printf("setting break\n");*/
error = CKTsetBreak(ckt,
*(here->TRAdelays+3*here->TRAsizeDelay -3) +
here->TRAtd);
if(error) return(error);
double when;
/* Derivative changed - need to schedule after delay */
when = *(here->TRAdelays + 3 * here->TRAsizeDelay - 3) +
here->TRAtd;
if (when > ckt->CKTtime) {
error = CKTsetBreak(ckt, when);
if(error) return(error);
}
}
#endif /*NOTDEF*/
}