Jspice3
Main Page
Data Structures
Files
File List
Globals
senssetp.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: UCB CAD Group
5
1993 Stephen R. Whiteley
6
****************************************************************************/
7
8
#include "
spice.h
"
9
#include <stdio.h>
10
#include "
cktdefs.h
"
11
#include "
sensdefs.h
"
12
#include "
jobdefs.h
"
13
#include "
iferrmsg.h
"
14
15
16
/* ARGSUSED */
17
int
18
SENSsetParm
(cktp,anal,which,value)
19
20
GENERIC
*cktp;
21
GENERIC
*anal;
22
int
which;
23
IFvalue
*value;
24
{
25
SENSAN
*job = (
SENSAN
*) anal;
26
27
switch
(which) {
28
29
case
SENS_DEFTOL
:
30
job->
SENSdefTol
= value->
rValue
;
31
break
;
32
33
case
SENS_DEFPERTURB
:
34
job->
SENSdefPert
= value->
rValue
;
35
break
;
36
37
case
SENS_POS
:
38
job->
SENSoutPos
= (
CKTnode
*) value->
nValue
;
39
break
;
40
41
case
SENS_NEG
:
42
job->
SENSoutNeg
= (
CKTnode
*) value->
nValue
;
43
break
;
44
45
case
SENS_SRC
:
46
job->
SENSoutSrc
= value->
uValue
;
47
break
;
48
49
case
SENS_NAME
:
50
job->
SENSoutName
= value->
sValue
;
51
break
;
52
53
default
:
54
if
(
ACsetp
(&job->
AC
,which,value) ==
OK
)
55
return
(
OK
);
56
if
(
DCTsetp
(&job->
DC
,which,value) ==
OK
)
57
return
(
OK
);
58
return
(
E_BADPARM
);
59
}
60
return
(
OK
);
61
}
62
63
64
static
IFparm
SENSparms
[] = {
65
{
"deftol"
,
SENS_DEFTOL
,
IFP
|
IF_REAL
,
"default tolerance"
},
66
{
"defperturb"
,
SENS_DEFPERTURB
,
IFP
|
IF_REAL
,
"default perterbation"
},
67
{
"outpos"
,
SENS_POS
,
IFP
|
IF_NODE
,
"output positive node"
},
68
{
"outneg"
,
SENS_NEG
,
IFP
|
IF_NODE
,
"output negative node"
},
69
{
"outsrc"
,
SENS_SRC
,
IFP
|
IF_INSTANCE
,
"output current"
},
70
{
"outname"
,
SENS_NAME
,
IFP
|
IF_STRING
,
"output variable name"
},
71
{
"start"
,
AC_START
,
IFP
|
IF_REAL
,
"starting frequency"
},
72
{
"stop"
,
AC_STOP
,
IFP
|
IF_REAL
,
"ending frequency"
},
73
{
"numsteps"
,
AC_STEPS
,
IFP
|
IF_INTEGER
,
"number of frequencies"
},
74
{
"dec"
,
AC_DEC
,
IFP
|
IF_FLAG
,
"step by decades"
},
75
{
"oct"
,
AC_OCT
,
IFP
|
IF_FLAG
,
"step by octaves"
},
76
{
"lin"
,
AC_LIN
,
IFP
|
IF_FLAG
,
"step linearly"
},
77
{
"name1"
,
DC_NAME1
,
IFP
|
IF_INSTANCE
,
"name of source to step"
},
78
{
"start1"
,
DC_START1
,
IFP
|
IF_REAL
,
"starting voltage/current"
},
79
{
"stop1"
,
DC_STOP1
,
IFP
|
IF_REAL
,
"ending voltage/current"
},
80
{
"step1"
,
DC_STEP1
,
IFP
|
IF_REAL
,
"voltage/current step"
},
81
{
"name2"
,
DC_NAME2
,
IFP
|
IF_INSTANCE
,
"name of source to step"
},
82
{
"start2"
,
DC_START2
,
IFP
|
IF_REAL
,
"starting voltage/current"
},
83
{
"stop2"
,
DC_STOP2
,
IFP
|
IF_REAL
,
"ending voltage/current"
},
84
{
"step2"
,
DC_STEP2
,
IFP
|
IF_REAL
,
"voltage/current step"
}
85
86
#ifdef notdef
87
/* Future coding */
88
/* perturbation limits */
89
/* defaults for the analysis */
90
{
"type"
,
SENS_TYPE
,
IF_SET
|
IF_INTEGER
,
91
"describe device, model or element parameters"
},
92
93
{
"device"
,
SENS_DEVICE
,
IF_STRING
,
"type of model or device"
},
94
{
"devdeftol"
,
SENS_DEVDEFTOL
,
IF_SET
|
IF_REAL
,
95
"default tolerance (device type)"
},
96
{
"devdefperturb"
,
SENS_DEVDEFPERT
,
IF_SET
|
IF_REAL
,
97
"default perturbation (device type)"
},
98
{
"moddeftol"
,
SENS_DEVDEFTOL
,
IF_SET
|
IF_REAL
,
99
"default tolerance (model)"
},
100
{
"moddefperturb"
,
SENS_DEVDEFPERT
,
IF_SET
|
IF_REAL
,
101
"default perturbation (model)"
},
102
103
/*{ "name", SENS_NAME, IF_SET|IF_STRING,
104
"name of model or element" }, */
105
{
"param"
,
SENS_PARAM
,
IF_SET
|
IF_STRING
,
"name of parameter"
},
106
{
"tol"
,
SENS_TOL
,
IF_SET
|
IF_REAL
,
"tolerance"
},
107
{
"perturb"
,
SENS_PERT
,
IF_SET
|
IF_REAL
,
"perturbation"
}
108
#endif
109
110
};
111
112
SPICEanalysis
SENSinfo
= {
113
{
114
"SENS"
,
115
"Sensitivity analysis"
,
116
sizeof
(
SENSparms
)/
sizeof
(
IFparm
),
117
SENSparms
118
},
119
sizeof
(
SENSAN
),
120
FREQUENCYDOMAIN
,
121
SENSparse
,
122
SENSsetParm
,
123
SENSaskQuest
,
124
SENSan
125
};
cktdefs.h
AC_STOP
#define AC_STOP
Definition:
analysis.h:56
SENSinfo
SPICEanalysis SENSinfo
Definition:
senssetp.c:112
AC_START
#define AC_START
Definition:
analysis.h:55
DC_STOP1
#define DC_STOP1
Definition:
analysis.h:19
sCKTnode
Definition:
cktdefs.h:30
DC_START1
#define DC_START1
Definition:
analysis.h:18
SENS_DEVICE
#define SENS_DEVICE
Definition:
sensdefs.h:92
SENSAN::SENSdefPert
double SENSdefPert
Definition:
sensdefs.h:45
SENS_DEVDEFTOL
#define SENS_DEVDEFTOL
Definition:
sensdefs.h:89
AC_OCT
#define AC_OCT
Definition:
analysis.h:53
SENSAN::SENSoutName
char * SENSoutName
Definition:
sensdefs.h:43
E_BADPARM
#define E_BADPARM
Definition:
iferrmsg.h:26
SENS_DEVDEFPERT
#define SENS_DEVDEFPERT
Definition:
sensdefs.h:90
IF_INSTANCE
#define IF_INSTANCE
Definition:
ifsim.h:112
SENS_NAME
#define SENS_NAME
Definition:
sensdefs.h:85
jobdefs.h
SENSAN
Definition:
sensdefs.h:32
uIFvalue::rValue
double rValue
Definition:
ifsim.h:233
AC_LIN
#define AC_LIN
Definition:
analysis.h:54
SENSaskQuest
int SENSaskQuest()
SENS_DEFPERTURB
#define SENS_DEFPERTURB
Definition:
sensdefs.h:88
SENSan
int SENSan()
DC_NAME2
#define DC_NAME2
Definition:
analysis.h:21
OK
#define OK
Definition:
iferrmsg.h:17
AC_STEPS
#define AC_STEPS
Definition:
analysis.h:57
IFP
#define IFP
Definition:
analysis.h:10
DC_STEP1
#define DC_STEP1
Definition:
analysis.h:20
IF_SET
#define IF_SET
Definition:
ifsim.h:135
SENSAN::SENSoutPos
CKTnode * SENSoutPos
Definition:
sensdefs.h:39
uIFvalue::nValue
IFnode nValue
Definition:
ifsim.h:237
ACsetp
int ACsetp()
IF_INTEGER
#define IF_INTEGER
Definition:
ifsim.h:107
SENS_DEFTOL
#define SENS_DEFTOL
Definition:
sensdefs.h:86
SENS_POS
#define SENS_POS
Definition:
sensdefs.h:82
spice.h
iferrmsg.h
DC_NAME1
#define DC_NAME1
Definition:
analysis.h:17
sIFparm
Definition:
ifsim.h:54
SENSAN::AC
struct sACprms AC
Definition:
sensdefs.h:49
IF_REAL
#define IF_REAL
Definition:
ifsim.h:108
FREQUENCYDOMAIN
#define FREQUENCYDOMAIN
Definition:
jobdefs.h:34
IF_FLAG
#define IF_FLAG
Definition:
ifsim.h:106
AC_DEC
#define AC_DEC
Definition:
analysis.h:52
SENSsetParm
int SENSsetParm(GENERIC *cktp, GENERIC *anal, int which, IFvalue *value)
Definition:
senssetp.c:18
SENSparse
int SENSparse()
uIFvalue
Definition:
ifsim.h:231
SENS_PERT
#define SENS_PERT
Definition:
sensdefs.h:95
SENSAN::SENSoutNeg
CKTnode * SENSoutNeg
Definition:
sensdefs.h:40
SENS_TOL
#define SENS_TOL
Definition:
sensdefs.h:94
SENSAN::SENSoutSrc
IFuid SENSoutSrc
Definition:
sensdefs.h:41
uIFvalue::sValue
char * sValue
Definition:
ifsim.h:235
SENS_NEG
#define SENS_NEG
Definition:
sensdefs.h:83
SENSAN::SENSdefTol
double SENSdefTol
Definition:
sensdefs.h:44
DC_START2
#define DC_START2
Definition:
analysis.h:22
SENSparms
static IFparm SENSparms[]
Definition:
senssetp.c:64
DC_STOP2
#define DC_STOP2
Definition:
analysis.h:23
SPICEanalysis
Definition:
jobdefs.h:11
SENS_SRC
#define SENS_SRC
Definition:
sensdefs.h:84
IF_STRING
#define IF_STRING
Definition:
ifsim.h:111
DC_STEP2
#define DC_STEP2
Definition:
analysis.h:24
SENSAN::DC
struct sDCTprms DC
Definition:
sensdefs.h:50
SENS_PARAM
#define SENS_PARAM
Definition:
sensdefs.h:93
IF_NODE
#define IF_NODE
Definition:
ifsim.h:110
sensdefs.h
GENERIC
char GENERIC
Definition:
ifsim.h:27
uIFvalue::uValue
IFuid uValue
Definition:
ifsim.h:236
DCTsetp
int DCTsetp()
SENS_TYPE
#define SENS_TYPE
Definition:
sensdefs.h:91
src
lib
analysis
senssetp.c
Generated by
1.8.11