ngspice/src/spicelib/analysis/pssinit.c

33 lines
1002 B
C

/**********
Author: 2010-05 Stefano Perticaroli ``spertica''
**********/
#include "ngspice/ngspice.h"
#include "ngspice/cktdefs.h"
#include "ngspice/trandefs.h"
#include "ngspice/pssdefs.h"
#include "ngspice/iferrmsg.h"
int PSSinit(CKTcircuit *ckt, JOB *anal)
{
PSSan *job = (PSSan *) anal;
/* Step is chosen empirically to be 1% of PSSguessedFreq */
ckt->CKTstep = 0.01 * (1/job->PSSguessedFreq);
/* Init time should be always zero */
ckt->CKTinitTime = 0;
/* MaxStep should not exceed Nyquist criterion */
ckt->CKTmaxStep = 0.5*(1/job->PSSguessedFreq);
ckt->CKTdelmin = 1e-9*ckt->CKTmaxStep;
ckt->CKTmode = job->PSSmode;
/* modified CKTdefs.h for the following - 100609 */
ckt->CKTstabTime = job->PSSstabTime;
ckt->CKTguessedFreq = job->PSSguessedFreq;
ckt->CKTharms = job->PSSharms;
ckt->CKTpsspoints = job->PSSpoints;
ckt->CKTsc_iter = job->sc_iter;
ckt->CKTsteady_coeff = job->steady_coeff;
return OK;
}