Jspice3
analysis.h
Go to the documentation of this file.
1 /***************************************************************************
2 JSPICE3 adaptation of Spice3e2 - Copyright (c) Stephen R. Whiteley 1992
3 Copyright 1990 Regents of the University of California. All rights reserved.
4 Authors: 1993 Stephen R. Whiteley
5 ****************************************************************************/
6 
7 #ifndef ANALH
8 #define ANALH
9 
10 #define IFP IF_SET|IF_ASK
11 
12 
13 /* general DC analysis defines */
14 
15 #define DCTNESTLEVEL 2 /* depth of nesting of curves - 2 for spice2 */
16 
17 #define DC_NAME1 101
18 #define DC_START1 102
19 #define DC_STOP1 103
20 #define DC_STEP1 104
21 #define DC_NAME2 105
22 #define DC_START2 106
23 #define DC_STOP2 107
24 #define DC_STEP2 108
25 
26 struct sDCTprms {
27  double vstart[DCTNESTLEVEL]; /* starting voltage/current */
28  double vstop[DCTNESTLEVEL]; /* ending voltage/current */
29  double vstep[DCTNESTLEVEL]; /* voltage/current step */
30  double vsave[DCTNESTLEVEL]; /* voltage of this source BEFORE
31  * analysis - to restore when done */
32  double vstate[DCTNESTLEVEL]; /* internal values saved during pause */
33  GENinstance *elt[DCTNESTLEVEL]; /* pointer to source */
34  IFuid eltName[DCTNESTLEVEL]; /* source being varied */
35  int nestLevel; /* number of levels of nesting */
36  int nestSave; /* iteration state during pause */
37  int dims[DCTNESTLEVEL+1]; /* dimensions of output vector */
38  int skip; /* restart subanalysis */
39 };
40 
41 
42 /* general AC analysis defines */
43 
44 /* available step types: */
45 
46 #define DCSTEP 0
47 #define DECADE 1
48 #define OCTAVE 2
49 #define LINEAR 3
50 
51 
52 #define AC_DEC 201
53 #define AC_OCT 202
54 #define AC_LIN 203
55 #define AC_START 204
56 #define AC_STOP 205
57 #define AC_STEPS 206
58 
59 struct sACprms {
60  double fstart;
61  double fstop;
62  double fsave;
63  int numSteps;
64  int stepType;
65 };
66 
67 #ifdef __STDC__
68 extern int ACquery(struct sACprms*,int,IFvalue*);
69 extern int ACsetp(struct sACprms*,int,IFvalue*);
70 extern int DCTquery(struct sDCTprms*,int,IFvalue*);
71 extern int DCTsetp(struct sDCTprms*,int,IFvalue*);
72 #else
73 extern int ACquery();
74 extern int ACsetp();
75 extern int DCTquery();
76 extern int DCTsetp();
77 #endif
78 
79 #ifdef ANAL_EXT
80 /* sOUTdata defined */
81 
82 #ifdef __STDC__
83 extern int ACloop(int(*)(),CKTcircuit*,int,struct sACprms*,
84  struct sOUTdata*);
85 extern int DCTloop(int(*)(),CKTcircuit*,int,struct sDCTprms*,
86  struct sOUTdata*);
87 #else
88 extern int ACloop();
89 extern int DCTloop();
90 #endif
91 
92 #endif
93 
94 
95 #endif
#define DCTNESTLEVEL
Definition: analysis.h:15
double vstep[DCTNESTLEVEL]
Definition: analysis.h:29
int dims[DCTNESTLEVEL+1]
Definition: analysis.h:37
int ACloop(int(*func)(), CKTcircuit *ckt, int restart, struct sACprms *ac, struct sOUTdata *outd)
Definition: acan.c:177
int DCTloop(int(*func)(), CKTcircuit *ckt, int restart, struct sDCTprms *dc, struct sOUTdata *outd)
Definition: dctan.c:177
int ACquery()
double vstart[DCTNESTLEVEL]
Definition: analysis.h:27
IFuid eltName[DCTNESTLEVEL]
Definition: analysis.h:34
int DCTquery()
double fsave
Definition: analysis.h:62
GENERIC * IFuid
Definition: ifsim.h:72
int nestSave
Definition: analysis.h:36
int ACsetp()
double vstate[DCTNESTLEVEL]
Definition: analysis.h:32
int numSteps
Definition: analysis.h:63
double vsave[DCTNESTLEVEL]
Definition: analysis.h:30
double vstop[DCTNESTLEVEL]
Definition: analysis.h:28
double fstop
Definition: analysis.h:61
double fstart
Definition: analysis.h:60
int skip
Definition: analysis.h:38
int stepType
Definition: analysis.h:64
int nestLevel
Definition: analysis.h:35
GENinstance * elt[DCTNESTLEVEL]
Definition: analysis.h:33
int DCTsetp()