1 /***************************************************************************
2 JSPICE3 adaptation of Spice3f2 - Copyright (c) Stephen R. Whiteley 1992
3 Copyright 1990 Regents of the University of California. All rights reserved.
4 Authors: 1985 Thomas L. Quarles
5 1993 Stephen R. Whiteley
6 ****************************************************************************/
7
8 #include "spice.h"
9 #include <stdio.h>
10 #include "cktdefs.h"
11 #include "trandefs.h"
12 #include "jobdefs.h"
13 #include "iferrmsg.h"
14
15
16 /* ARGSUSED */
17 int
TRANsetParm(cktp,anal,which,value)18 TRANsetParm(cktp,anal,which,value)
19
20 GENERIC *cktp;
21 GENERIC *anal;
22 int which;
23 IFvalue *value;
24 {
25 TRANAN *job = (TRANAN *) anal;
26
27 switch (which) {
28
29 case TRAN_TSTOP:
30 job->TRANfinalTime = value->rValue;
31 break;
32
33 case TRAN_TSTEP:
34 job->TRANstep = value->rValue;
35 break;
36
37 case TRAN_TSTART:
38 job->TRANinitTime = value->rValue;
39 break;
40
41 case TRAN_TMAX:
42 job->TRANmaxStep = value->rValue;
43 break;
44
45 case TRAN_UIC:
46 if (value->iValue) {
47 job->TRANmode |= MODEUIC;
48 }
49 break;
50
51 default:
52 if (DCTsetp(&job->DC,which,value) == OK)
53 return (OK);
54 return (E_BADPARM);
55 }
56 return (OK);
57 }
58
59
60 static IFparm TRANparms[] = {
61 { "tstart", TRAN_TSTART, IFP|IF_REAL, "starting time" },
62 { "tstop", TRAN_TSTOP, IFP|IF_REAL, "ending time" },
63 { "tstep", TRAN_TSTEP, IFP|IF_REAL, "time step" },
64 { "tmax", TRAN_TMAX, IFP|IF_REAL, "maximum time step" },
65 { "uic", TRAN_UIC, IFP|IF_FLAG, "use initial conditions" },
66 { "name1", DC_NAME1, IFP|IF_INSTANCE, "name of source to step" },
67 { "start1", DC_START1, IFP|IF_REAL, "starting voltage/current"},
68 { "stop1", DC_STOP1, IFP|IF_REAL, "ending voltage/current" },
69 { "step1", DC_STEP1, IFP|IF_REAL, "voltage/current step" },
70 { "name2", DC_NAME2, IFP|IF_INSTANCE, "name of source to step" },
71 { "start2", DC_START2, IFP|IF_REAL, "starting voltage/current"},
72 { "stop2", DC_STOP2, IFP|IF_REAL, "ending voltage/current" },
73 { "step2", DC_STEP2, IFP|IF_REAL, "voltage/current step" }
74 };
75
76 SPICEanalysis TRANinfo = {
77 {
78 "TRAN",
79 "Transient analysis",
80
81 sizeof(TRANparms)/sizeof(IFparm),
82 TRANparms
83 },
84 sizeof(TRANAN),
85 TIMEDOMAIN,
86 TRANparse,
87 TRANsetParm,
88 TRANaskQuest,
89 TRANan
90 };
91