use a macro to update ckt->CKTstat->STAT..
This commit is contained in:
parent
fd9dec37a3
commit
87d9383971
|
|
@ -1,3 +1,9 @@
|
||||||
|
2011-12-11 Robert Larice
|
||||||
|
* src/spicelib/analysis/acan.c ,
|
||||||
|
* src/spicelib/analysis/dcpss.c ,
|
||||||
|
* src/spicelib/analysis/dctran.c :
|
||||||
|
use a macro to update ckt->CKTstat->STAT..
|
||||||
|
|
||||||
2011-12-11 Robert Larice
|
2011-12-11 Robert Larice
|
||||||
* src/spicelib/**/*.c :
|
* src/spicelib/**/*.c :
|
||||||
auxiliary define `job' --> local variable `job'
|
auxiliary define `job' --> local variable `job'
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,29 @@ Modified 2001: AlansFixes
|
||||||
void SetAnalyse( char * Analyse, int Percent);
|
void SetAnalyse( char * Analyse, int Percent);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define INIT_STATS() \
|
||||||
|
do { \
|
||||||
|
startTime = SPfrontEnd->IFseconds(); \
|
||||||
|
startdTime = ckt->CKTstat->STATdecompTime; \
|
||||||
|
startsTime = ckt->CKTstat->STATsolveTime; \
|
||||||
|
startlTime = ckt->CKTstat->STATloadTime; \
|
||||||
|
startcTime = ckt->CKTstat->STATcombineTime; \
|
||||||
|
startkTime = ckt->CKTstat->STATsyncTime; \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
#define UPDATE_STATS(analysis) \
|
||||||
|
do { \
|
||||||
|
ckt->CKTcurrentAnalysis = analysis; \
|
||||||
|
ckt->CKTstat->STATacTime += SPfrontEnd->IFseconds() - startTime; \
|
||||||
|
ckt->CKTstat->STATacDecompTime += ckt->CKTstat->STATdecompTime - startdTime; \
|
||||||
|
ckt->CKTstat->STATacSolveTime += ckt->CKTstat->STATsolveTime - startsTime; \
|
||||||
|
ckt->CKTstat->STATacLoadTime += ckt->CKTstat->STATloadTime - startlTime; \
|
||||||
|
ckt->CKTstat->STATacCombTime += ckt->CKTstat->STATcombineTime - startcTime; \
|
||||||
|
ckt->CKTstat->STATacSyncTime += ckt->CKTstat->STATsyncTime - startkTime; \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
ACan(CKTcircuit *ckt, int restart)
|
ACan(CKTcircuit *ckt, int restart)
|
||||||
{
|
{
|
||||||
|
|
@ -211,13 +234,7 @@ ACan(CKTcircuit *ckt, int restart)
|
||||||
/* gtri - end - wbk */
|
/* gtri - end - wbk */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
INIT_STATS();
|
||||||
startTime = SPfrontEnd->IFseconds();
|
|
||||||
startdTime = ckt->CKTstat->STATdecompTime;
|
|
||||||
startsTime = ckt->CKTstat->STATsolveTime;
|
|
||||||
startlTime = ckt->CKTstat->STATloadTime;
|
|
||||||
startcTime = ckt->CKTstat->STATcombineTime;
|
|
||||||
startkTime = ckt->CKTstat->STATsyncTime;
|
|
||||||
|
|
||||||
/* main loop through all scheduled frequencies */
|
/* main loop through all scheduled frequencies */
|
||||||
while (freq <= job->ACstopFreq + freqTol) {
|
while (freq <= job->ACstopFreq + freqTol) {
|
||||||
|
|
@ -263,18 +280,7 @@ ACan(CKTcircuit *ckt, int restart)
|
||||||
ckt->CKTmode = (ckt->CKTmode&MODEUIC) | MODEAC;
|
ckt->CKTmode = (ckt->CKTmode&MODEUIC) | MODEAC;
|
||||||
error = NIacIter(ckt);
|
error = NIacIter(ckt);
|
||||||
if (error) {
|
if (error) {
|
||||||
ckt->CKTcurrentAnalysis = DOING_AC;
|
UPDATE_STATS(DOING_AC);
|
||||||
ckt->CKTstat->STATacTime += SPfrontEnd->IFseconds() - startTime;
|
|
||||||
ckt->CKTstat->STATacDecompTime += ckt->CKTstat->STATdecompTime -
|
|
||||||
startdTime;
|
|
||||||
ckt->CKTstat->STATacSolveTime += ckt->CKTstat->STATsolveTime -
|
|
||||||
startsTime;
|
|
||||||
ckt->CKTstat->STATacLoadTime += ckt->CKTstat->STATloadTime -
|
|
||||||
startlTime;
|
|
||||||
ckt->CKTstat->STATacCombTime += ckt->CKTstat->STATcombineTime -
|
|
||||||
startcTime;
|
|
||||||
ckt->CKTstat->STATacSyncTime += ckt->CKTstat->STATsyncTime -
|
|
||||||
startkTime;
|
|
||||||
return(error);
|
return(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -313,18 +319,7 @@ ACan(CKTcircuit *ckt, int restart)
|
||||||
error = CKTacDump(ckt,freq,acPlot);
|
error = CKTacDump(ckt,freq,acPlot);
|
||||||
#endif
|
#endif
|
||||||
if (error) {
|
if (error) {
|
||||||
ckt->CKTcurrentAnalysis = DOING_AC;
|
UPDATE_STATS(DOING_AC);
|
||||||
ckt->CKTstat->STATacTime += SPfrontEnd->IFseconds() - startTime;
|
|
||||||
ckt->CKTstat->STATacDecompTime += ckt->CKTstat->STATdecompTime -
|
|
||||||
startdTime;
|
|
||||||
ckt->CKTstat->STATacSolveTime += ckt->CKTstat->STATsolveTime -
|
|
||||||
startsTime;
|
|
||||||
ckt->CKTstat->STATacLoadTime += ckt->CKTstat->STATloadTime -
|
|
||||||
startlTime;
|
|
||||||
ckt->CKTstat->STATacCombTime += ckt->CKTstat->STATcombineTime -
|
|
||||||
startcTime;
|
|
||||||
ckt->CKTstat->STATacSyncTime += ckt->CKTstat->STATsyncTime -
|
|
||||||
startkTime;
|
|
||||||
return(error);
|
return(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -374,18 +369,7 @@ ACan(CKTcircuit *ckt, int restart)
|
||||||
endsweep:
|
endsweep:
|
||||||
SPfrontEnd->OUTendPlot (acPlot);
|
SPfrontEnd->OUTendPlot (acPlot);
|
||||||
acPlot = NULL;
|
acPlot = NULL;
|
||||||
ckt->CKTcurrentAnalysis = 0;
|
UPDATE_STATS(0);
|
||||||
ckt->CKTstat->STATacTime += SPfrontEnd->IFseconds() - startTime;
|
|
||||||
ckt->CKTstat->STATacDecompTime += ckt->CKTstat->STATdecompTime -
|
|
||||||
startdTime;
|
|
||||||
ckt->CKTstat->STATacSolveTime += ckt->CKTstat->STATsolveTime -
|
|
||||||
startsTime;
|
|
||||||
ckt->CKTstat->STATacLoadTime += ckt->CKTstat->STATloadTime -
|
|
||||||
startlTime;
|
|
||||||
ckt->CKTstat->STATacCombTime += ckt->CKTstat->STATcombineTime -
|
|
||||||
startcTime;
|
|
||||||
ckt->CKTstat->STATacSyncTime += ckt->CKTstat->STATsyncTime -
|
|
||||||
startkTime;
|
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,30 @@ void SetAnalyse( char * Analyse, int Percent);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define INIT_STATS() \
|
||||||
|
do { \
|
||||||
|
startTime = SPfrontEnd->IFseconds(); \
|
||||||
|
startIters = ckt->CKTstat->STATnumIter; \
|
||||||
|
startdTime = ckt->CKTstat->STATdecompTime; \
|
||||||
|
startsTime = ckt->CKTstat->STATsolveTime; \
|
||||||
|
startlTime = ckt->CKTstat->STATloadTime; \
|
||||||
|
startcTime = ckt->CKTstat->STATcombineTime; \
|
||||||
|
startkTime = ckt->CKTstat->STATsyncTime; \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
#define UPDATE_STATS(analysis) \
|
||||||
|
do { \
|
||||||
|
ckt->CKTcurrentAnalysis = analysis; \
|
||||||
|
ckt->CKTstat->STATtranTime += SPfrontEnd->IFseconds() - startTime; \
|
||||||
|
ckt->CKTstat->STATtranIter += ckt->CKTstat->STATnumIter - startIters; \
|
||||||
|
ckt->CKTstat->STATtranDecompTime += ckt->CKTstat->STATdecompTime - startdTime; \
|
||||||
|
ckt->CKTstat->STATtranSolveTime += ckt->CKTstat->STATsolveTime - startsTime; \
|
||||||
|
ckt->CKTstat->STATtranLoadTime += ckt->CKTstat->STATloadTime - startlTime; \
|
||||||
|
ckt->CKTstat->STATtranCombTime += ckt->CKTstat->STATcombineTime - startcTime; \
|
||||||
|
ckt->CKTstat->STATtranSyncTime += ckt->CKTstat->STATsyncTime - startkTime; \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
CKTfour(int, int, double *, double *, double *, double, double *, double *, double *, double *,double *);
|
CKTfour(int, int, double *, double *, double *, double, double *, double *, double *, double *,double *);
|
||||||
|
|
||||||
|
|
@ -317,13 +341,7 @@ DCpss(CKTcircuit *ckt, int restart)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
startTime = SPfrontEnd->IFseconds();
|
INIT_STATS();
|
||||||
startIters = ckt->CKTstat->STATnumIter;
|
|
||||||
startdTime = ckt->CKTstat->STATdecompTime;
|
|
||||||
startsTime = ckt->CKTstat->STATsolveTime;
|
|
||||||
startlTime = ckt->CKTstat->STATloadTime;
|
|
||||||
startcTime = ckt->CKTstat->STATcombineTime;
|
|
||||||
startkTime = ckt->CKTstat->STATsyncTime;
|
|
||||||
#ifdef CLUSTER
|
#ifdef CLUSTER
|
||||||
CLUsetup(ckt);
|
CLUsetup(ckt);
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -331,13 +349,7 @@ DCpss(CKTcircuit *ckt, int restart)
|
||||||
/*saj As traninit resets CKTmode */
|
/*saj As traninit resets CKTmode */
|
||||||
ckt->CKTmode = (ckt->CKTmode&MODEUIC)|MODETRAN | MODEINITPRED;
|
ckt->CKTmode = (ckt->CKTmode&MODEUIC)|MODETRAN | MODEINITPRED;
|
||||||
/* saj */
|
/* saj */
|
||||||
startTime = SPfrontEnd->IFseconds();
|
INIT_STATS();
|
||||||
startIters = ckt->CKTstat->STATnumIter;
|
|
||||||
startdTime = ckt->CKTstat->STATdecompTime;
|
|
||||||
startsTime = ckt->CKTstat->STATsolveTime;
|
|
||||||
startlTime = ckt->CKTstat->STATloadTime;
|
|
||||||
startcTime = ckt->CKTstat->STATcombineTime;
|
|
||||||
startkTime = ckt->CKTstat->STATsyncTime;
|
|
||||||
if(ckt->CKTminBreak==0) ckt->CKTminBreak=ckt->CKTmaxStep*5e-5;
|
if(ckt->CKTminBreak==0) ckt->CKTminBreak=ckt->CKTmaxStep*5e-5;
|
||||||
firsttime=0;
|
firsttime=0;
|
||||||
/* To get rawfile working saj*/
|
/* To get rawfile working saj*/
|
||||||
|
|
@ -406,19 +418,7 @@ nextTime:
|
||||||
ckt->CKTbreak=0;
|
ckt->CKTbreak=0;
|
||||||
/* XXX Error will cause single process to bail. */
|
/* XXX Error will cause single process to bail. */
|
||||||
if(error) {
|
if(error) {
|
||||||
ckt->CKTcurrentAnalysis = DOING_TRAN;
|
UPDATE_STATS(DOING_TRAN);
|
||||||
ckt->CKTstat->STATtranTime += SPfrontEnd->IFseconds() - startTime;
|
|
||||||
ckt->CKTstat->STATtranIter += ckt->CKTstat->STATnumIter - startIters;
|
|
||||||
ckt->CKTstat->STATtranDecompTime += ckt->CKTstat->STATdecompTime -
|
|
||||||
startdTime;
|
|
||||||
ckt->CKTstat->STATtranSolveTime += ckt->CKTstat->STATsolveTime -
|
|
||||||
startsTime;
|
|
||||||
ckt->CKTstat->STATtranLoadTime += ckt->CKTstat->STATloadTime -
|
|
||||||
startlTime;
|
|
||||||
ckt->CKTstat->STATtranCombTime += ckt->CKTstat->STATcombineTime -
|
|
||||||
startcTime;
|
|
||||||
ckt->CKTstat->STATtranSyncTime += ckt->CKTstat->STATsyncTime -
|
|
||||||
startkTime;
|
|
||||||
return(error);
|
return(error);
|
||||||
}
|
}
|
||||||
#ifdef XSPICE
|
#ifdef XSPICE
|
||||||
|
|
@ -833,19 +833,7 @@ nextTime:
|
||||||
|
|
||||||
if( SPfrontEnd->IFpauseTest() ) {
|
if( SPfrontEnd->IFpauseTest() ) {
|
||||||
/* user requested pause... */
|
/* user requested pause... */
|
||||||
ckt->CKTcurrentAnalysis = DOING_TRAN;
|
UPDATE_STATS(DOING_TRAN);
|
||||||
ckt->CKTstat->STATtranTime += SPfrontEnd->IFseconds() - startTime;
|
|
||||||
ckt->CKTstat->STATtranIter += ckt->CKTstat->STATnumIter - startIters;
|
|
||||||
ckt->CKTstat->STATtranDecompTime += ckt->CKTstat->STATdecompTime -
|
|
||||||
startdTime;
|
|
||||||
ckt->CKTstat->STATtranSolveTime += ckt->CKTstat->STATsolveTime -
|
|
||||||
startsTime;
|
|
||||||
ckt->CKTstat->STATtranLoadTime += ckt->CKTstat->STATloadTime -
|
|
||||||
startlTime;
|
|
||||||
ckt->CKTstat->STATtranCombTime += ckt->CKTstat->STATcombineTime -
|
|
||||||
startcTime;
|
|
||||||
ckt->CKTstat->STATtranSyncTime += ckt->CKTstat->STATsyncTime -
|
|
||||||
startkTime;
|
|
||||||
return(E_PAUSE);
|
return(E_PAUSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1213,21 +1201,7 @@ resume:
|
||||||
newdelta = ckt->CKTdelta;
|
newdelta = ckt->CKTdelta;
|
||||||
error = CKTtrunc(ckt,&newdelta);
|
error = CKTtrunc(ckt,&newdelta);
|
||||||
if(error) {
|
if(error) {
|
||||||
ckt->CKTcurrentAnalysis = DOING_TRAN;
|
UPDATE_STATS(DOING_TRAN);
|
||||||
ckt->CKTstat->STATtranTime +=
|
|
||||||
SPfrontEnd->IFseconds() - startTime;
|
|
||||||
ckt->CKTstat->STATtranIter +=
|
|
||||||
ckt->CKTstat->STATnumIter - startIters;
|
|
||||||
ckt->CKTstat->STATtranDecompTime += ckt->CKTstat->STATdecompTime
|
|
||||||
- startdTime;
|
|
||||||
ckt->CKTstat->STATtranSolveTime += ckt->CKTstat->STATsolveTime
|
|
||||||
- startsTime;
|
|
||||||
ckt->CKTstat->STATtranLoadTime += ckt->CKTstat->STATloadTime
|
|
||||||
- startlTime;
|
|
||||||
ckt->CKTstat->STATtranCombTime += ckt->CKTstat->STATcombineTime
|
|
||||||
- startcTime;
|
|
||||||
ckt->CKTstat->STATtranSyncTime += ckt->CKTstat->STATsyncTime
|
|
||||||
- startkTime;
|
|
||||||
return(error);
|
return(error);
|
||||||
}
|
}
|
||||||
if(newdelta>.9 * ckt->CKTdelta) {
|
if(newdelta>.9 * ckt->CKTdelta) {
|
||||||
|
|
@ -1236,21 +1210,7 @@ resume:
|
||||||
ckt->CKTorder = 2;
|
ckt->CKTorder = 2;
|
||||||
error = CKTtrunc(ckt,&newdelta);
|
error = CKTtrunc(ckt,&newdelta);
|
||||||
if(error) {
|
if(error) {
|
||||||
ckt->CKTcurrentAnalysis = DOING_TRAN;
|
UPDATE_STATS(DOING_TRAN);
|
||||||
ckt->CKTstat->STATtranTime +=
|
|
||||||
SPfrontEnd->IFseconds() - startTime;
|
|
||||||
ckt->CKTstat->STATtranIter +=
|
|
||||||
ckt->CKTstat->STATnumIter - startIters;
|
|
||||||
ckt->CKTstat->STATtranDecompTime +=
|
|
||||||
ckt->CKTstat->STATdecompTime - startdTime;
|
|
||||||
ckt->CKTstat->STATtranSolveTime +=
|
|
||||||
ckt->CKTstat->STATsolveTime - startsTime;
|
|
||||||
ckt->CKTstat->STATtranLoadTime +=
|
|
||||||
ckt->CKTstat->STATloadTime - startlTime;
|
|
||||||
ckt->CKTstat->STATtranCombTime +=
|
|
||||||
ckt->CKTstat->STATcombineTime - startcTime;
|
|
||||||
ckt->CKTstat->STATtranSyncTime +=
|
|
||||||
ckt->CKTstat->STATsyncTime - startkTime;
|
|
||||||
return(error);
|
return(error);
|
||||||
}
|
}
|
||||||
if(newdelta <= 1.05 * ckt->CKTdelta) {
|
if(newdelta <= 1.05 * ckt->CKTdelta) {
|
||||||
|
|
@ -1319,21 +1279,7 @@ resume:
|
||||||
(void)printf("delta at delmin\n");
|
(void)printf("delta at delmin\n");
|
||||||
/*#endif*/
|
/*#endif*/
|
||||||
} else {
|
} else {
|
||||||
ckt->CKTcurrentAnalysis = DOING_TRAN;
|
UPDATE_STATS(DOING_TRAN);
|
||||||
ckt->CKTstat->STATtranTime +=
|
|
||||||
SPfrontEnd->IFseconds() - startTime;
|
|
||||||
ckt->CKTstat->STATtranIter +=
|
|
||||||
ckt->CKTstat->STATnumIter - startIters;
|
|
||||||
ckt->CKTstat->STATtranDecompTime +=
|
|
||||||
ckt->CKTstat->STATdecompTime - startdTime;
|
|
||||||
ckt->CKTstat->STATtranSolveTime +=
|
|
||||||
ckt->CKTstat->STATsolveTime - startsTime;
|
|
||||||
ckt->CKTstat->STATtranLoadTime +=
|
|
||||||
ckt->CKTstat->STATloadTime - startlTime;
|
|
||||||
ckt->CKTstat->STATtranCombTime +=
|
|
||||||
ckt->CKTstat->STATcombineTime - startcTime;
|
|
||||||
ckt->CKTstat->STATtranSyncTime +=
|
|
||||||
ckt->CKTstat->STATsyncTime - startkTime;
|
|
||||||
errMsg = CKTtrouble(ckt, "Timestep too small");
|
errMsg = CKTtrouble(ckt, "Timestep too small");
|
||||||
return(E_TIMESTEP);
|
return(E_TIMESTEP);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,31 @@ extern struct dbcomm *dbs;
|
||||||
void SetAnalyse(char * Analyse, int Percent);
|
void SetAnalyse(char * Analyse, int Percent);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define INIT_STATS() \
|
||||||
|
do { \
|
||||||
|
startTime = SPfrontEnd->IFseconds(); \
|
||||||
|
startIters = ckt->CKTstat->STATnumIter; \
|
||||||
|
startdTime = ckt->CKTstat->STATdecompTime; \
|
||||||
|
startsTime = ckt->CKTstat->STATsolveTime; \
|
||||||
|
startlTime = ckt->CKTstat->STATloadTime; \
|
||||||
|
startcTime = ckt->CKTstat->STATcombineTime; \
|
||||||
|
startkTime = ckt->CKTstat->STATsyncTime; \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
#define UPDATE_STATS(analysis) \
|
||||||
|
do { \
|
||||||
|
ckt->CKTcurrentAnalysis = analysis; \
|
||||||
|
ckt->CKTstat->STATtranTime += SPfrontEnd->IFseconds() - startTime; \
|
||||||
|
ckt->CKTstat->STATtranIter += ckt->CKTstat->STATnumIter - startIters; \
|
||||||
|
ckt->CKTstat->STATtranDecompTime += ckt->CKTstat->STATdecompTime - startdTime; \
|
||||||
|
ckt->CKTstat->STATtranSolveTime += ckt->CKTstat->STATsolveTime - startsTime; \
|
||||||
|
ckt->CKTstat->STATtranLoadTime += ckt->CKTstat->STATloadTime - startlTime; \
|
||||||
|
ckt->CKTstat->STATtranCombTime += ckt->CKTstat->STATcombineTime - startcTime; \
|
||||||
|
ckt->CKTstat->STATtranSyncTime += ckt->CKTstat->STATsyncTime - startkTime; \
|
||||||
|
} while(0)
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
DCtran(CKTcircuit *ckt,
|
DCtran(CKTcircuit *ckt,
|
||||||
int restart) /* forced restart flag */
|
int restart) /* forced restart flag */
|
||||||
|
|
@ -325,13 +350,7 @@ DCtran(CKTcircuit *ckt,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
startTime = SPfrontEnd->IFseconds();
|
INIT_STATS();
|
||||||
startIters = ckt->CKTstat->STATnumIter;
|
|
||||||
startdTime = ckt->CKTstat->STATdecompTime;
|
|
||||||
startsTime = ckt->CKTstat->STATsolveTime;
|
|
||||||
startlTime = ckt->CKTstat->STATloadTime;
|
|
||||||
startcTime = ckt->CKTstat->STATcombineTime;
|
|
||||||
startkTime = ckt->CKTstat->STATsyncTime;
|
|
||||||
#ifdef CLUSTER
|
#ifdef CLUSTER
|
||||||
CLUsetup(ckt);
|
CLUsetup(ckt);
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -339,13 +358,7 @@ DCtran(CKTcircuit *ckt,
|
||||||
/* saj As traninit resets CKTmode */
|
/* saj As traninit resets CKTmode */
|
||||||
ckt->CKTmode = (ckt->CKTmode&MODEUIC) | MODETRAN | MODEINITPRED;
|
ckt->CKTmode = (ckt->CKTmode&MODEUIC) | MODETRAN | MODEINITPRED;
|
||||||
/* saj */
|
/* saj */
|
||||||
startTime = SPfrontEnd->IFseconds();
|
INIT_STATS();
|
||||||
startIters = ckt->CKTstat->STATnumIter;
|
|
||||||
startdTime = ckt->CKTstat->STATdecompTime;
|
|
||||||
startsTime = ckt->CKTstat->STATsolveTime;
|
|
||||||
startlTime = ckt->CKTstat->STATloadTime;
|
|
||||||
startcTime = ckt->CKTstat->STATcombineTime;
|
|
||||||
startkTime = ckt->CKTstat->STATsyncTime;
|
|
||||||
if(ckt->CKTminBreak==0) ckt->CKTminBreak=ckt->CKTmaxStep*5e-5;
|
if(ckt->CKTminBreak==0) ckt->CKTminBreak=ckt->CKTmaxStep*5e-5;
|
||||||
firsttime=0;
|
firsttime=0;
|
||||||
/* To get rawfile working saj*/
|
/* To get rawfile working saj*/
|
||||||
|
|
@ -404,19 +417,7 @@ DCtran(CKTcircuit *ckt,
|
||||||
ckt->CKTbreak = 0;
|
ckt->CKTbreak = 0;
|
||||||
/* XXX Error will cause single process to bail. */
|
/* XXX Error will cause single process to bail. */
|
||||||
if(error) {
|
if(error) {
|
||||||
ckt->CKTcurrentAnalysis = DOING_TRAN;
|
UPDATE_STATS(DOING_TRAN);
|
||||||
ckt->CKTstat->STATtranTime += SPfrontEnd->IFseconds() - startTime;
|
|
||||||
ckt->CKTstat->STATtranIter += ckt->CKTstat->STATnumIter - startIters;
|
|
||||||
ckt->CKTstat->STATtranDecompTime += ckt->CKTstat->STATdecompTime -
|
|
||||||
startdTime;
|
|
||||||
ckt->CKTstat->STATtranSolveTime += ckt->CKTstat->STATsolveTime -
|
|
||||||
startsTime;
|
|
||||||
ckt->CKTstat->STATtranLoadTime += ckt->CKTstat->STATloadTime -
|
|
||||||
startlTime;
|
|
||||||
ckt->CKTstat->STATtranCombTime += ckt->CKTstat->STATcombineTime -
|
|
||||||
startcTime;
|
|
||||||
ckt->CKTstat->STATtranSyncTime += ckt->CKTstat->STATsyncTime -
|
|
||||||
startkTime;
|
|
||||||
return(error);
|
return(error);
|
||||||
}
|
}
|
||||||
#ifdef XSPICE
|
#ifdef XSPICE
|
||||||
|
|
@ -486,19 +487,7 @@ DCtran(CKTcircuit *ckt,
|
||||||
ckt->CKTtime, ckt->CKTfinalTime, ckt->CKTminBreak);
|
ckt->CKTtime, ckt->CKTfinalTime, ckt->CKTminBreak);
|
||||||
#endif
|
#endif
|
||||||
SPfrontEnd->OUTendPlot (job->TRANplot);
|
SPfrontEnd->OUTendPlot (job->TRANplot);
|
||||||
ckt->CKTcurrentAnalysis = 0;
|
UPDATE_STATS(0);
|
||||||
ckt->CKTstat->STATtranTime += SPfrontEnd->IFseconds() - startTime;
|
|
||||||
ckt->CKTstat->STATtranIter += ckt->CKTstat->STATnumIter - startIters;
|
|
||||||
ckt->CKTstat->STATtranDecompTime += ckt->CKTstat->STATdecompTime -
|
|
||||||
startdTime;
|
|
||||||
ckt->CKTstat->STATtranSolveTime += ckt->CKTstat->STATsolveTime -
|
|
||||||
startsTime;
|
|
||||||
ckt->CKTstat->STATtranLoadTime += ckt->CKTstat->STATloadTime -
|
|
||||||
startlTime;
|
|
||||||
ckt->CKTstat->STATtranCombTime += ckt->CKTstat->STATcombineTime -
|
|
||||||
startcTime;
|
|
||||||
ckt->CKTstat->STATtranSyncTime += ckt->CKTstat->STATsyncTime -
|
|
||||||
startkTime;
|
|
||||||
#ifdef WANT_SENSE2
|
#ifdef WANT_SENSE2
|
||||||
if(ckt->CKTsenInfo && (ckt->CKTsenInfo->SENmode & TRANSEN)){
|
if(ckt->CKTsenInfo && (ckt->CKTsenInfo->SENmode & TRANSEN)){
|
||||||
ckt->CKTsenInfo->SENmode = save;
|
ckt->CKTsenInfo->SENmode = save;
|
||||||
|
|
@ -511,19 +500,7 @@ DCtran(CKTcircuit *ckt,
|
||||||
}
|
}
|
||||||
if(SPfrontEnd->IFpauseTest()) {
|
if(SPfrontEnd->IFpauseTest()) {
|
||||||
/* user requested pause... */
|
/* user requested pause... */
|
||||||
ckt->CKTcurrentAnalysis = DOING_TRAN;
|
UPDATE_STATS(DOING_TRAN);
|
||||||
ckt->CKTstat->STATtranTime += SPfrontEnd->IFseconds() - startTime;
|
|
||||||
ckt->CKTstat->STATtranIter += ckt->CKTstat->STATnumIter - startIters;
|
|
||||||
ckt->CKTstat->STATtranDecompTime += ckt->CKTstat->STATdecompTime -
|
|
||||||
startdTime;
|
|
||||||
ckt->CKTstat->STATtranSolveTime += ckt->CKTstat->STATsolveTime -
|
|
||||||
startsTime;
|
|
||||||
ckt->CKTstat->STATtranLoadTime += ckt->CKTstat->STATloadTime -
|
|
||||||
startlTime;
|
|
||||||
ckt->CKTstat->STATtranCombTime += ckt->CKTstat->STATcombineTime -
|
|
||||||
startcTime;
|
|
||||||
ckt->CKTstat->STATtranSyncTime += ckt->CKTstat->STATsyncTime -
|
|
||||||
startkTime;
|
|
||||||
return(E_PAUSE);
|
return(E_PAUSE);
|
||||||
}
|
}
|
||||||
resume:
|
resume:
|
||||||
|
|
@ -848,21 +825,7 @@ resume:
|
||||||
newdelta = ckt->CKTdelta;
|
newdelta = ckt->CKTdelta;
|
||||||
error = CKTtrunc(ckt,&newdelta);
|
error = CKTtrunc(ckt,&newdelta);
|
||||||
if(error) {
|
if(error) {
|
||||||
ckt->CKTcurrentAnalysis = DOING_TRAN;
|
UPDATE_STATS(DOING_TRAN);
|
||||||
ckt->CKTstat->STATtranTime +=
|
|
||||||
SPfrontEnd->IFseconds() - startTime;
|
|
||||||
ckt->CKTstat->STATtranIter +=
|
|
||||||
ckt->CKTstat->STATnumIter - startIters;
|
|
||||||
ckt->CKTstat->STATtranDecompTime += ckt->CKTstat->STATdecompTime
|
|
||||||
- startdTime;
|
|
||||||
ckt->CKTstat->STATtranSolveTime += ckt->CKTstat->STATsolveTime
|
|
||||||
- startsTime;
|
|
||||||
ckt->CKTstat->STATtranLoadTime += ckt->CKTstat->STATloadTime
|
|
||||||
- startlTime;
|
|
||||||
ckt->CKTstat->STATtranCombTime += ckt->CKTstat->STATcombineTime
|
|
||||||
- startcTime;
|
|
||||||
ckt->CKTstat->STATtranSyncTime += ckt->CKTstat->STATsyncTime
|
|
||||||
- startkTime;
|
|
||||||
return(error);
|
return(error);
|
||||||
}
|
}
|
||||||
if(newdelta > .9 * ckt->CKTdelta) {
|
if(newdelta > .9 * ckt->CKTdelta) {
|
||||||
|
|
@ -871,21 +834,7 @@ resume:
|
||||||
ckt->CKTorder = 2;
|
ckt->CKTorder = 2;
|
||||||
error = CKTtrunc(ckt,&newdelta);
|
error = CKTtrunc(ckt,&newdelta);
|
||||||
if(error) {
|
if(error) {
|
||||||
ckt->CKTcurrentAnalysis = DOING_TRAN;
|
UPDATE_STATS(DOING_TRAN);
|
||||||
ckt->CKTstat->STATtranTime +=
|
|
||||||
SPfrontEnd->IFseconds() - startTime;
|
|
||||||
ckt->CKTstat->STATtranIter +=
|
|
||||||
ckt->CKTstat->STATnumIter - startIters;
|
|
||||||
ckt->CKTstat->STATtranDecompTime +=
|
|
||||||
ckt->CKTstat->STATdecompTime - startdTime;
|
|
||||||
ckt->CKTstat->STATtranSolveTime +=
|
|
||||||
ckt->CKTstat->STATsolveTime - startsTime;
|
|
||||||
ckt->CKTstat->STATtranLoadTime +=
|
|
||||||
ckt->CKTstat->STATloadTime - startlTime;
|
|
||||||
ckt->CKTstat->STATtranCombTime +=
|
|
||||||
ckt->CKTstat->STATcombineTime - startcTime;
|
|
||||||
ckt->CKTstat->STATtranSyncTime +=
|
|
||||||
ckt->CKTstat->STATsyncTime - startkTime;
|
|
||||||
return(error);
|
return(error);
|
||||||
}
|
}
|
||||||
if(newdelta <= 1.05 * ckt->CKTdelta) {
|
if(newdelta <= 1.05 * ckt->CKTdelta) {
|
||||||
|
|
@ -954,21 +903,7 @@ resume:
|
||||||
(void)printf("delta at delmin\n");
|
(void)printf("delta at delmin\n");
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
ckt->CKTcurrentAnalysis = DOING_TRAN;
|
UPDATE_STATS(DOING_TRAN);
|
||||||
ckt->CKTstat->STATtranTime +=
|
|
||||||
SPfrontEnd->IFseconds() - startTime;
|
|
||||||
ckt->CKTstat->STATtranIter +=
|
|
||||||
ckt->CKTstat->STATnumIter - startIters;
|
|
||||||
ckt->CKTstat->STATtranDecompTime +=
|
|
||||||
ckt->CKTstat->STATdecompTime - startdTime;
|
|
||||||
ckt->CKTstat->STATtranSolveTime +=
|
|
||||||
ckt->CKTstat->STATsolveTime - startsTime;
|
|
||||||
ckt->CKTstat->STATtranLoadTime +=
|
|
||||||
ckt->CKTstat->STATloadTime - startlTime;
|
|
||||||
ckt->CKTstat->STATtranCombTime +=
|
|
||||||
ckt->CKTstat->STATcombineTime - startcTime;
|
|
||||||
ckt->CKTstat->STATtranSyncTime +=
|
|
||||||
ckt->CKTstat->STATsyncTime - startkTime;
|
|
||||||
errMsg = CKTtrouble(ckt, "Timestep too small");
|
errMsg = CKTtrouble(ckt, "Timestep too small");
|
||||||
return(E_TIMESTEP);
|
return(E_TIMESTEP);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue