You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.1 KiB
38 lines
1.1 KiB
/**********
|
|
Copyright 1991 Regents of the University of California. All rights reserved.
|
|
Modified: 2000 AlansFixes
|
|
**********/
|
|
|
|
#include "ngspice/ngspice.h"
|
|
#include "ngspice/cktdefs.h"
|
|
#include "ngspice/trandefs.h"
|
|
#include "ngspice/iferrmsg.h"
|
|
|
|
/*
|
|
* this used to be in setup, but we need it here now
|
|
* (must be done after mode is set as below)
|
|
*/
|
|
|
|
int TRANinit(CKTcircuit *ckt, JOB *anal)
|
|
{
|
|
TRANan *job = (TRANan *) anal;
|
|
|
|
ckt->CKTfinalTime = job->TRANfinalTime;
|
|
ckt->CKTstep = job->TRANstep;
|
|
ckt->CKTinitTime = job->TRANinitTime;
|
|
ckt->CKTmaxStep = job->TRANmaxStep;
|
|
|
|
/* The following code has been taken from macspice 3f4 (A. Wilson)
|
|
in the file traninit.new.c - Seems interesting */
|
|
if(ckt->CKTmaxStep == 0) {
|
|
if (ckt->CKTstep < ( ckt->CKTfinalTime - ckt->CKTinitTime )/50.0)
|
|
ckt->CKTmaxStep = ckt->CKTstep;
|
|
else
|
|
ckt->CKTmaxStep = ( ckt->CKTfinalTime - ckt->CKTinitTime )/50.0;
|
|
}
|
|
|
|
ckt->CKTdelmin = 1e-11*ckt->CKTmaxStep; /* XXX */
|
|
ckt->CKTmode = job->TRANmode;
|
|
|
|
return OK;
|
|
}
|