analysis/dctrcurv.c, bug fix, sweeping `temper' in a dc analysis
incorrect update of model parameters, need to `invoke CKTtemp()' *after* `inp_evaluate_temper()' see tests/regression/temper/temper-2.cir
This commit is contained in:
parent
fc6455ca99
commit
5940bf9294
|
|
@ -158,9 +158,9 @@ DCtrCurv(CKTcircuit *ckt, int restart)
|
|||
job->TRCVvSave[i] = ckt->CKTtemp; /* Saves the old circuit temperature */
|
||||
job->TRCVvType[i] = TEMP_CODE; /* Set the sweep type code */
|
||||
ckt->CKTtemp = job->TRCVvStart[i] + CONSTCtoK; /* Set the new circuit temp */
|
||||
CKTtemp(ckt);
|
||||
if (expr_w_temper)
|
||||
inp_evaluate_temper();
|
||||
CKTtemp(ckt);
|
||||
goto found;
|
||||
}
|
||||
|
||||
|
|
@ -306,9 +306,9 @@ resume:
|
|||
|
||||
} else if (job->TRCVvType[i] == TEMP_CODE) {
|
||||
ckt->CKTtemp = job->TRCVvStart[i] + CONSTCtoK;
|
||||
CKTtemp(ckt);
|
||||
if (expr_w_temper)
|
||||
inp_evaluate_temper();
|
||||
CKTtemp(ckt);
|
||||
|
||||
} else if (job->TRCVvType[i] == rcode) {
|
||||
((RESinstance *)(job->TRCVvElt[i]))->RESresist =
|
||||
|
|
@ -521,9 +521,9 @@ nextstep:;
|
|||
else if (job->TRCVvType[i] == TEMP_CODE)
|
||||
{
|
||||
ckt->CKTtemp += job->TRCVvStep[i];
|
||||
CKTtemp(ckt);
|
||||
if (expr_w_temper)
|
||||
inp_evaluate_temper();
|
||||
CKTtemp(ckt);
|
||||
} /* else not possible */
|
||||
|
||||
if(SPfrontEnd->IFpauseTest()) {
|
||||
|
|
@ -566,9 +566,9 @@ nextstep:;
|
|||
}
|
||||
else if (job->TRCVvType[i] == TEMP_CODE) {
|
||||
ckt->CKTtemp = job->TRCVvSave[i];
|
||||
CKTtemp(ckt);
|
||||
if (expr_w_temper)
|
||||
inp_evaluate_temper();
|
||||
CKTtemp(ckt);
|
||||
} /* else not possible */
|
||||
}
|
||||
SPfrontEnd->OUTendPlot (plot);
|
||||
|
|
|
|||
Loading…
Reference in New Issue