Bug Fix: bug in gmin stepping.

This commit is contained in:
pnenzi 2004-02-05 21:25:32 +00:00
parent d0c3eaf5fe
commit 01dc8e5707
2 changed files with 39 additions and 24 deletions

View File

@ -1,3 +1,9 @@
2004-02-05 Paolo Nenzi <p.nenzi@ieee.org>
* src/spicelib/analysis/cktntask.c: Bug: not all the values
of TSKtask structure were copied and got a correct default
value. The bug showed as an infinite loop in gmin stepping.
2004-02-10 Paolo Nenzi <p.nenzi@ieee.org>
* src/frontend/inpcom.c: Applied patch from Dietmar Warning

View File

@ -33,36 +33,45 @@ CKTnewTask(void *ckt, void **taskPtr, IFuid taskName, void **defPtr)
def = *(TSKtask **)defPtr;
if ((strcmp(taskName,"special")==0) && def ) {
/* create options by copying the circuit's defaults */
tsk->TSKgmin = def->TSKgmin;
tsk->TSKabstol = def->TSKabstol;
tsk->TSKreltol = def->TSKreltol;
tsk->TSKchgtol = def->TSKchgtol;
tsk->TSKvoltTol = def->TSKvoltTol;
#ifdef NEWTRUNC
tsk->TSKlteReltol = def->TSKlteRelto;
tsk->TSKlteAbstol = def->TSKlteAbstol;
#endif /* NEWTRUNC */
tsk->TSKtrtol = def->TSKtrtol;
tsk->TSKbypass = def->TSKbypass;
tsk->TSKtranMaxIter = def->TSKtranMaxIter;
tsk->TSKdcMaxIter = def->TSKdcMaxIter;
tsk->TSKdcTrcvMaxIter = def->TSKdcTrcvMaxIter;
tsk->TSKintegrateMethod = def->TSKintegrateMethod;
tsk->TSKmaxOrder = def->TSKmaxOrder;
tsk->TSKnumSrcSteps = def->TSKnumSrcSteps;
tsk->TSKnumGminSteps = def->TSKnumGminSteps;
tsk->TSKpivotAbsTol = def->TSKpivotAbsTol;
tsk->TSKtemp = def->TSKtemp;
tsk->TSKnomTemp = def->TSKnomTemp;
tsk->TSKmaxOrder = def->TSKmaxOrder;
tsk->TSKintegrateMethod = def->TSKintegrateMethod;
tsk->TSKbypass = def->TSKbypass;
tsk->TSKdcMaxIter = def->TSKdcMaxIter;
tsk->TSKdcTrcvMaxIter = def->TSKdcTrcvMaxIter;
tsk->TSKtranMaxIter = def->TSKtranMaxIter;
tsk->TSKnumSrcSteps = def->TSKnumSrcSteps;
tsk->TSKnumGminSteps = def->TSKnumGminSteps;
tsk->TSKgminFactor = def->TSKgminFactor;
/* minBreak */
tsk->TSKabstol = def->TSKabstol;
tsk->TSKpivotAbsTol = def->TSKpivotAbsTol;
tsk->TSKpivotRelTol = def->TSKpivotRelTol;
tsk->TSKtemp = def->TSKtemp;
tsk->TSKnomTemp = def->TSKnomTemp;
tsk->TSKreltol = def->TSKreltol;
tsk->TSKchgtol = def->TSKchgtol;
tsk->TSKvoltTol = def->TSKvoltTol;
tsk->TSKgmin = def->TSKgmin;
tsk->TSKgshunt = def->TSKgshunt;
/* delmin */
tsk->TSKtrtol = def->TSKtrtol;
tsk->TSKdefaultMosL = def->TSKdefaultMosL;
tsk->TSKdefaultMosW = def->TSKdefaultMosW;
tsk->TSKdefaultMosAD = def->TSKdefaultMosAD;
tsk->TSKdefaultMosAS = def->TSKdefaultMosAS;
tsk->TSKnoOpIter= def->TSKnoOpIter;
tsk->TSKtryToCompact = def->TSKtryToCompact;
tsk->TSKbadMos3 = def->TSKbadMos3;
/* fixLimit */
tsk->TSKnoOpIter= def->TSKnoOpIter;
tsk->TSKtryToCompact = def->TSKtryToCompact;
tsk->TSKbadMos3 = def->TSKbadMos3;
tsk->TSKkeepOpInfo = def->TSKkeepOpInfo;
tsk->TSKcopyNodesets = def->TSKcopyNodesets;
tsk->TSKnodeDamping = def->TSKnodeDamping;
tsk->TSKabsDv = def->TSKabsDv;
tsk->TSKrelDv = def->TSKrelDv;
#ifdef NEWTRUNC
tsk->TSKlteReltol = def->TSKlteReltol;
tsk->TSKlteAbstol = def->TSKlteAbstol;
#endif /* NEWTRUNC */
} else {
/* use the application defaults */
#endif /*CDHW*/