catch noise sweeps with 1 point and handle erronous 0 points

This commit is contained in:
dwarning 2017-08-10 22:14:04 +02:00
parent 569f796f63
commit d0b9259018
2 changed files with 13 additions and 2 deletions

View File

@ -284,7 +284,10 @@ NOISEan (CKTcircuit *ckt, int restart)
break;
case LINEAR:
data->freq += job->NfreqDelta;
if (job->NfreqDelta > 1e-6)
data->freq += job->NfreqDelta;
else
data->freq += (job->NfreqDelta+job->NstartFreq*ckt->CKTreltol);
break;
default:

View File

@ -45,7 +45,15 @@ NsetParm(CKTcircuit *ckt, JOB *anal, int which, IFvalue *value)
break;
case N_STEPS:
job->NnumSteps = value->iValue;
if ((job->NstpType == LINEAR) && (value->iValue < 1)) {
errMsg = copy("Linear sweep at least 1 points");
return(E_PARMVAL);
}
if ((job->NstpType == LINEAR) && (value->iValue == 1)) {
job->NnumSteps = 2;
} else {
job->NnumSteps = value->iValue;
}
break;
case N_START: