33 lines
1002 B
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;
|
|
}
|