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: 1985 Thomas L. Quarles
5          1992 Stephen R. Whiteley
6 ****************************************************************************/
7 
8 #ifndef OPT
9 #define OPT
10 
11     /* structure used to describe the statistics to be collected */
12 
13 typedef struct {
14 
15     int STATnumIter;  /* number of total iterations performed */
16     int STATtranIter; /* number of iterations for transient analysis */
17     int STAToldIter;  /* number of iterations at the end of the last point */
18                       /* used to compute iterations per point */
19 
20     int STATtimePts;  /* total number of timepoints */
21     int STATaccepted; /* number of timepoints accepted */
22     int STATrejected; /* number of timepoints rejected */
23     int STATmatSize;  /* matrix size */
24     int STATnonZero;  /* number of nonzero entries */
25     int STATfillIn;   /* number of fill-in terms added in reorder */
26 
27     double STATtotAnalTime; /* total time for analysis */
28     double STATtranTime;    /* transient analysis time */
29     double STATloadTime;    /* time spent in device loading */
30     double STATdecompTime;  /* total time spent in LU decomposition */
31     double STATsolveTime;   /* total time spent in F-B subst. */
32     double STATreorderTime; /* total time spent reordering */
33     double STATtranDecompTime;  /* time spent in transient LU decomposition */
34     double STATtranSolveTime;   /* time spent in transient F-B Subst. */
35 
36 } STATistics;
37 
38 #define OPT_GMIN          1
39 #define OPT_RELTOL        2
40 #define OPT_ABSTOL        3
41 #define OPT_VNTOL         4
42 #define OPT_TRTOL         5
43 #define OPT_CHGTOL        6
44 #define OPT_PIVTOL        7
45 #define OPT_PIVREL        8
46 #define OPT_TNOM          9
47 #define OPT_ITL1         10
48 
49 #define OPT_ITL2         11
50 #define OPT_ITL3         12
51 #define OPT_ITL4         13
52 #define OPT_ITL5         14
53 #define OPT_DEFL         15
54 #define OPT_DEFW         16
55 #define OPT_DEFAD        17
56 #define OPT_DEFAS        18
57 #define OPT_BYPASS       19
58 #define OPT_MAXORD       20
59 
60 #define OPT_ITERS        21
61 #define OPT_TRANIT       22
62 #define OPT_TRANPTS      23
63 #define OPT_TRANACCPT    24
64 #define OPT_TRANRJCT     25
65 #define OPT_TOTANALTIME  26
66 #define OPT_TRANTIME     27
67 #define OPT_LOADTIME     28
68 #define OPT_DECOMP       29
69 #define OPT_SOLVE        30
70 
71 #define OPT_TRANDECOMP   31
72 #define OPT_TRANSOLVE    32
73 #define OPT_TEMP         33
74 #define OPT_OLDLIMIT     34
75 #define OPT_TRANCURITER  35
76 #define OPT_SRCSTEPS     36
77 #define OPT_GMINSTEPS    37
78 #define OPT_MINBREAK     38
79 #define OPT_NOOPITER     39
80 #define OPT_EQNS         40
81 
82 #define OPT_REORDTIME    41
83 #define OPT_METHOD       42
84 #define OPT_TRYTOCOMPACT 43
85 #define OPT_MATSIZ       44
86 #define OPT_NONZ         45
87 #define OPT_FILLIN       46
88 
89 
90 #ifdef __STDC__
91 extern int OPTaskQuest(GENERIC*,GENERIC*,int,IFvalue*);
92 extern int OPTparse(GENERIC*,GENERIC*,int,GENERIC*,char**,GENERIC*,GENERIC*);
93 extern int OPTsetParm(GENERIC*,GENERIC*,int,IFvalue*);
94 #else
95 extern int OPTaskQuest();
96 extern int OPTparse();
97 extern int OPTsetParm();
98 #endif
99 
100 
101 #endif /* OPT */
102