diff --git a/src/spicelib/devices/bsim3v1/b3v1ld.c b/src/spicelib/devices/bsim3v1/b3v1ld.c index 2ad116ac2..70d3347ca 100644 --- a/src/spicelib/devices/bsim3v1/b3v1ld.c +++ b/src/spicelib/devices/bsim3v1/b3v1ld.c @@ -2021,16 +2021,16 @@ finished: /* returning Values to Calling Routine */ #ifndef NEWCONV } else - { tol = ckt->CKTreltol * MAX(FABS(cdhat), FABS(here->BSIM3v1cd)) + { tol = ckt->CKTreltol * MAX(fabs(cdhat), fabs(here->BSIM3v1cd)) + ckt->CKTabstol; - if (FABS(cdhat - here->BSIM3v1cd) >= tol) + if (fabs(cdhat - here->BSIM3v1cd) >= tol) { ckt->CKTnoncon++; } else - { tol = ckt->CKTreltol * MAX(FABS(cbhat), - FABS(here->BSIM3v1cbs + here->BSIM3v1cbd)) + { tol = ckt->CKTreltol * MAX(fabs(cbhat), + fabs(here->BSIM3v1cbs + here->BSIM3v1cbd)) + ckt->CKTabstol; - if (FABS(cbhat - (here->BSIM3v1cbs + here->BSIM3v1cbd)) + if (fabs(cbhat - (here->BSIM3v1cbs + here->BSIM3v1cbd)) > tol) { ckt->CKTnoncon++; } diff --git a/src/spicelib/devices/mos6/mos6load.c b/src/spicelib/devices/mos6/mos6load.c index b120c7b90..4aeef445e 100644 --- a/src/spicelib/devices/mos6/mos6load.c +++ b/src/spicelib/devices/mos6/mos6load.c @@ -573,8 +573,8 @@ next1: if(vbs <= -3*vt) { */ #ifdef CAPBYPASS if(((ckt->CKTmode & (MODEINITPRED | MODEINITTRAN) ) || - FABS(delvbs) >= ckt->CKTreltol * MAX(FABS(vbs), - FABS(*(ckt->CKTstate0+here->MOS6vbs)))+ + fabs(delvbs) >= ckt->CKTreltol * MAX(fabs(vbs), + fabs(*(ckt->CKTstate0+here->MOS6vbs)))+ ckt->CKTvoltTol)|| senflag) #endif /*CAPBYPASS*/ { @@ -632,8 +632,8 @@ next1: if(vbs <= -3*vt) { } #ifdef CAPBYPASS if(((ckt->CKTmode & (MODEINITPRED | MODEINITTRAN) ) || - FABS(delvbd) >= ckt->CKTreltol * MAX(FABS(vbd), - FABS(*(ckt->CKTstate0+here->MOS6vbd)))+ + fabs(delvbd) >= ckt->CKTreltol * MAX(fabs(vbd), + fabs(*(ckt->CKTstate0+here->MOS6vbd)))+ ckt->CKTvoltTol)|| senflag) #endif /*CAPBYPASS*/ /* can't bypass the diode capacitance calculations */