Revise memory allocation for different analysis types
This commit is contained in:
Holger Vogt 2021-09-17 12:10:35 +02:00
parent e0e9cc72f0
commit a93bed0f4b
1 changed files with 7 additions and 2 deletions

View File

@ -1135,12 +1135,12 @@ vlength2delta(int len)
/* TSTOP / TSTEP */ /* TSTOP / TSTEP */
int points = ft_curckt->ci_ckt->CKTtimeListSize; int points = ft_curckt->ci_ckt->CKTtimeListSize;
/* transient and pss analysis (points > 0) upon start */ /* transient and pss analysis (points > 0) upon start */
if (len == 0 && points > 0) { if ((ft_curckt->ci_ckt->CKTmode & MODETRAN) && len == 0 && points > 0) {
/* number of timesteps plus some overhead */ /* number of timesteps plus some overhead */
return points + 100; return points + 100;
} }
/* transient and pss if original estimate is exceeded */ /* transient and pss if original estimate is exceeded */
else if (points > 0) { else if ((ft_curckt->ci_ckt->CKTmode & MODETRAN) && points > 0) {
/* check where we are */ /* check where we are */
double timerel = ft_curckt->ci_ckt->CKTtime / ft_curckt->ci_ckt->CKTfinalTime; double timerel = ft_curckt->ci_ckt->CKTtime / ft_curckt->ci_ckt->CKTfinalTime;
/* return an estimate of the appropriate number of time points, if more than 20% of /* return an estimate of the appropriate number of time points, if more than 20% of
@ -1151,6 +1151,11 @@ vlength2delta(int len)
else else
return len; return len;
} }
/* op */
else if (ft_curckt->ci_ckt->CKTmode & MODEDCOP) {
/* op with length 1 */
return 1;
}
/* other analysis types that do not set CKTtimeListSize */ /* other analysis types that do not set CKTtimeListSize */
else else
return 1024; return 1024;