HICUM limitlog exchange
This commit is contained in:
parent
060aaa3b31
commit
95e0bb434b
|
|
@ -1777,7 +1777,7 @@ HICUMload(GENmodel *inModel, CKTcircuit *ckt)
|
||||||
Vbpbi = DEVpnjlim(Vbpbi,*(ckt->CKTstate0 + here->HICUMvbpbi),here->HICUMvt.rpart,
|
Vbpbi = DEVpnjlim(Vbpbi,*(ckt->CKTstate0 + here->HICUMvbpbi),here->HICUMvt.rpart,
|
||||||
here->HICUMtVcrit,&ichk5);
|
here->HICUMtVcrit,&ichk5);
|
||||||
if (selfheat) {
|
if (selfheat) {
|
||||||
Vrth = HICUMlimitlog(Vrth,
|
Vrth = DEVlimitlog(Vrth,
|
||||||
*(ckt->CKTstate0 + here->HICUMvrth),1,&ichk6);
|
*(ckt->CKTstate0 + here->HICUMvrth),1,&ichk6);
|
||||||
}
|
}
|
||||||
if ((ichk1 == 1) || (ichk2 == 1) || (ichk3 == 1) || (ichk4 == 1) || (ichk5 == 1) || (ichk6 == 1)) icheck=1;
|
if ((ichk1 == 1) || (ichk2 == 1) || (ichk3 == 1) || (ichk4 == 1) || (ichk5 == 1) || (ichk6 == 1)) icheck=1;
|
||||||
|
|
@ -3318,33 +3318,3 @@ load:
|
||||||
}
|
}
|
||||||
return(OK);
|
return(OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* HICUMlimitlog(deltemp, deltemp_old, LIM_TOL, check)
|
|
||||||
* Logarithmic damping the per-iteration change of deltemp beyond LIM_TOL.
|
|
||||||
*/
|
|
||||||
static double
|
|
||||||
HICUMlimitlog(
|
|
||||||
double deltemp,
|
|
||||||
double deltemp_old,
|
|
||||||
double LIM_TOL,
|
|
||||||
int *check)
|
|
||||||
{
|
|
||||||
*check = 0;
|
|
||||||
if (isnan (deltemp) || isnan (deltemp_old))
|
|
||||||
{
|
|
||||||
fprintf(stderr, "Alberto says: YOU TURKEY! The limiting function received NaN.\n");
|
|
||||||
fprintf(stderr, "New prediction returns to 0.0!\n");
|
|
||||||
deltemp = 0.0;
|
|
||||||
*check = 1;
|
|
||||||
}
|
|
||||||
/* Logarithmic damping of deltemp beyond LIM_TOL */
|
|
||||||
if (deltemp > deltemp_old + LIM_TOL) {
|
|
||||||
deltemp = deltemp_old + LIM_TOL + log10((deltemp-deltemp_old)/LIM_TOL);
|
|
||||||
*check = 1;
|
|
||||||
}
|
|
||||||
else if (deltemp < deltemp_old - LIM_TOL) {
|
|
||||||
deltemp = deltemp_old - LIM_TOL - log10((deltemp_old-deltemp)/LIM_TOL);
|
|
||||||
*check = 1;
|
|
||||||
}
|
|
||||||
return deltemp;
|
|
||||||
}
|
|
||||||
Loading…
Reference in New Issue