/*************************************************************************** JSPICE3 adaptation of Spice3f2 - Copyright (c) Stephen R. Whiteley 1992 Copyright 1990 Regents of the University of California. All rights reserved. Authors: 1985 Thomas L. Quarles 1993 Stephen R. Whiteley ****************************************************************************/ #include "spice.h" #include #include "cktdefs.h" #include "trandefs.h" #include "jobdefs.h" #include "iferrmsg.h" /* ARGSUSED */ int TRANsetParm(cktp,anal,which,value) GENERIC *cktp; GENERIC *anal; int which; IFvalue *value; { TRANAN *job = (TRANAN *) anal; switch (which) { case TRAN_TSTOP: job->TRANfinalTime = value->rValue; break; case TRAN_TSTEP: job->TRANstep = value->rValue; break; case TRAN_TSTART: job->TRANinitTime = value->rValue; break; case TRAN_TMAX: job->TRANmaxStep = value->rValue; break; case TRAN_UIC: if (value->iValue) { job->TRANmode |= MODEUIC; } break; default: if (DCTsetp(&job->DC,which,value) == OK) return (OK); return (E_BADPARM); } return (OK); } static IFparm TRANparms[] = { { "tstart", TRAN_TSTART, IFP|IF_REAL, "starting time" }, { "tstop", TRAN_TSTOP, IFP|IF_REAL, "ending time" }, { "tstep", TRAN_TSTEP, IFP|IF_REAL, "time step" }, { "tmax", TRAN_TMAX, IFP|IF_REAL, "maximum time step" }, { "uic", TRAN_UIC, IFP|IF_FLAG, "use initial conditions" }, { "name1", DC_NAME1, IFP|IF_INSTANCE, "name of source to step" }, { "start1", DC_START1, IFP|IF_REAL, "starting voltage/current"}, { "stop1", DC_STOP1, IFP|IF_REAL, "ending voltage/current" }, { "step1", DC_STEP1, IFP|IF_REAL, "voltage/current step" }, { "name2", DC_NAME2, IFP|IF_INSTANCE, "name of source to step" }, { "start2", DC_START2, IFP|IF_REAL, "starting voltage/current"}, { "stop2", DC_STOP2, IFP|IF_REAL, "ending voltage/current" }, { "step2", DC_STEP2, IFP|IF_REAL, "voltage/current step" } }; SPICEanalysis TRANinfo = { { "TRAN", "Transient analysis", sizeof(TRANparms)/sizeof(IFparm), TRANparms }, sizeof(TRANAN), TIMEDOMAIN, TRANparse, TRANsetParm, TRANaskQuest, TRANan };