Browse Source

use a macro to update ckt->CKTstat->STAT..

rlar 14 years ago
parent
commit
87d9383971
  1. 6
      ChangeLog
  2. 70
      src/spicelib/analysis/acan.c
  3. 116
      src/spicelib/analysis/dcpss.c
  4. 131
      src/spicelib/analysis/dctran.c

6
ChangeLog

@ -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'

70
src/spicelib/analysis/acan.c

@ -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
startTime = SPfrontEnd->IFseconds();
startdTime = ckt->CKTstat->STATdecompTime;
startsTime = ckt->CKTstat->STATsolveTime;
startlTime = ckt->CKTstat->STATloadTime;
startcTime = ckt->CKTstat->STATcombineTime;
startkTime = ckt->CKTstat->STATsyncTime;
INIT_STATS();
/* 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;
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;
UPDATE_STATS(DOING_AC);
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;
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;
UPDATE_STATS(DOING_AC);
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;
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;
UPDATE_STATS(0);
return(0); return(0);
} }

116
src/spicelib/analysis/dcpss.c

@ -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();
startIters = ckt->CKTstat->STATnumIter;
startdTime = ckt->CKTstat->STATdecompTime;
startsTime = ckt->CKTstat->STATsolveTime;
startlTime = ckt->CKTstat->STATloadTime;
startcTime = ckt->CKTstat->STATcombineTime;
startkTime = ckt->CKTstat->STATsyncTime;
INIT_STATS();
#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();
startIters = ckt->CKTstat->STATnumIter;
startdTime = ckt->CKTstat->STATdecompTime;
startsTime = ckt->CKTstat->STATsolveTime;
startlTime = ckt->CKTstat->STATloadTime;
startcTime = ckt->CKTstat->STATcombineTime;
startkTime = ckt->CKTstat->STATsyncTime;
INIT_STATS();
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;
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;
UPDATE_STATS(DOING_TRAN);
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;
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;
UPDATE_STATS(DOING_TRAN);
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;
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;
UPDATE_STATS(DOING_TRAN);
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;
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;
UPDATE_STATS(DOING_TRAN);
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;
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;
UPDATE_STATS(DOING_TRAN);
errMsg = CKTtrouble(ckt, "Timestep too small"); errMsg = CKTtrouble(ckt, "Timestep too small");
return(E_TIMESTEP); return(E_TIMESTEP);
} }

131
src/spicelib/analysis/dctran.c

@ -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();
startIters = ckt->CKTstat->STATnumIter;
startdTime = ckt->CKTstat->STATdecompTime;
startsTime = ckt->CKTstat->STATsolveTime;
startlTime = ckt->CKTstat->STATloadTime;
startcTime = ckt->CKTstat->STATcombineTime;
startkTime = ckt->CKTstat->STATsyncTime;
INIT_STATS();
#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();
startIters = ckt->CKTstat->STATnumIter;
startdTime = ckt->CKTstat->STATdecompTime;
startsTime = ckt->CKTstat->STATsolveTime;
startlTime = ckt->CKTstat->STATloadTime;
startcTime = ckt->CKTstat->STATcombineTime;
startkTime = ckt->CKTstat->STATsyncTime;
INIT_STATS();
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;
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;
UPDATE_STATS(DOING_TRAN);
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;
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;
UPDATE_STATS(0);
#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;
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;
UPDATE_STATS(DOING_TRAN);
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;
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;
UPDATE_STATS(DOING_TRAN);
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;
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;
UPDATE_STATS(DOING_TRAN);
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;
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;
UPDATE_STATS(DOING_TRAN);
errMsg = CKTtrouble(ckt, "Timestep too small"); errMsg = CKTtrouble(ckt, "Timestep too small");
return(E_TIMESTEP); return(E_TIMESTEP);
} }

Loading…
Cancel
Save