optran is only selected when the 'optran' command has been processed.
If not, the call to the OPtran() function returns the previous 'converged' value.
This commit is contained in:
parent
7f1fdd3934
commit
493cf73f7f
|
|
@ -405,7 +405,7 @@ extern int PZpost(CKTcircuit *);
|
||||||
extern int PZaskQuest(CKTcircuit *, JOB *, int , IFvalue *);
|
extern int PZaskQuest(CKTcircuit *, JOB *, int , IFvalue *);
|
||||||
extern int PZsetParm(CKTcircuit *, JOB *, int , IFvalue *);
|
extern int PZsetParm(CKTcircuit *, JOB *, int , IFvalue *);
|
||||||
|
|
||||||
extern int OPtran(CKTcircuit *);
|
extern int OPtran(CKTcircuit *, int);
|
||||||
|
|
||||||
#ifdef WANT_SENSE2
|
#ifdef WANT_SENSE2
|
||||||
extern int SENaskQuest(CKTcircuit *, JOB *, int , IFvalue *);
|
extern int SENaskQuest(CKTcircuit *, JOB *, int , IFvalue *);
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,9 @@ CKTop (CKTcircuit *ckt, long int firstmode, long int continuemode,
|
||||||
return converged;
|
return converged;
|
||||||
}
|
}
|
||||||
|
|
||||||
converged = OPtran(ckt);
|
/* If command 'optran' is not given, the function
|
||||||
|
returns immediately with the previous 'converged' */
|
||||||
|
converged = OPtran(ckt, converged);
|
||||||
|
|
||||||
#ifdef XSPICE
|
#ifdef XSPICE
|
||||||
/* gtri - wbk - add convergence problem reporting flags */
|
/* gtri - wbk - add convergence problem reporting flags */
|
||||||
|
|
|
||||||
|
|
@ -220,7 +220,7 @@ int OPsetBreak(CKTcircuit *ckt, double time)
|
||||||
Thus this algorithm creates an operating point to start other simulations.
|
Thus this algorithm creates an operating point to start other simulations.
|
||||||
The code is derived from dctran.c by removing all un-needed parts.*/
|
The code is derived from dctran.c by removing all un-needed parts.*/
|
||||||
int
|
int
|
||||||
OPtran(CKTcircuit *ckt)
|
OPtran(CKTcircuit *ckt, int oldconverged)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
double olddelta;
|
double olddelta;
|
||||||
|
|
@ -243,10 +243,10 @@ OPtran(CKTcircuit *ckt)
|
||||||
int redostep;
|
int redostep;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* if optran command has not been given (in .spiceinit or in .control section,
|
/* if optran command has not been given (in .spiceinit or in .control section),
|
||||||
we don' use optran */
|
we don' use optran */
|
||||||
if (nooptran)
|
if (nooptran)
|
||||||
return 1;
|
return oldconverged;
|
||||||
/*
|
/*
|
||||||
ACAN *acjob = (ACAN *) ckt->CKTcurJob;
|
ACAN *acjob = (ACAN *) ckt->CKTcurJob;
|
||||||
TRANan *trjob = (TRANan *) ckt->CKTcurJob;
|
TRANan *trjob = (TRANan *) ckt->CKTcurJob;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue