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