Jspice3
transetp.c
Go to the documentation of this file.
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
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 
77  {
78  "TRAN",
79  "Transient analysis",
80 
81  sizeof(TRANparms)/sizeof(IFparm),
82  TRANparms
83  },
84  sizeof(TRANAN),
85  TIMEDOMAIN,
86  TRANparse,
89  TRANan
90 };
int TRANsetParm(GENERIC *cktp, GENERIC *anal, int which, IFvalue *value)
Definition: transetp.c:18
#define TRAN_TSTOP
Definition: trandefs.h:50
#define DC_STOP1
Definition: analysis.h:19
SPICEanalysis TRANinfo
Definition: transetp.c:76
#define DC_START1
Definition: analysis.h:18
#define E_BADPARM
Definition: iferrmsg.h:26
#define IF_INSTANCE
Definition: ifsim.h:112
int iValue
Definition: ifsim.h:232
double rValue
Definition: ifsim.h:233
#define TRAN_UIC
Definition: trandefs.h:53
#define DC_NAME2
Definition: analysis.h:21
#define TRAN_TMAX
Definition: trandefs.h:52
#define OK
Definition: iferrmsg.h:17
#define IFP
Definition: analysis.h:10
#define DC_STEP1
Definition: analysis.h:20
#define TRAN_TSTART
Definition: trandefs.h:49
double TRANmaxStep
Definition: trandefs.h:41
struct sDCTprms DC
Definition: trandefs.h:46
#define DC_NAME1
Definition: analysis.h:17
double TRANfinalTime
Definition: trandefs.h:39
Definition: ifsim.h:54
#define IF_REAL
Definition: ifsim.h:108
#define IF_FLAG
Definition: ifsim.h:106
int TRANan()
#define TIMEDOMAIN
Definition: jobdefs.h:33
long TRANmode
Definition: trandefs.h:43
int TRANaskQuest()
#define DC_START2
Definition: analysis.h:22
double TRANstep
Definition: trandefs.h:40
static IFparm TRANparms[]
Definition: transetp.c:60
double TRANinitTime
Definition: trandefs.h:42
#define TRAN_TSTEP
Definition: trandefs.h:51
#define DC_STOP2
Definition: analysis.h:23
#define DC_STEP2
Definition: analysis.h:24
int TRANparse()
#define MODEUIC
Definition: cktdefs.h:166
char GENERIC
Definition: ifsim.h:27
int DCTsetp()