1 /**********
2 Copyright 1990 Regents of the University of California.  All rights reserved.
3 Author: 1985 Wayne A. Christopher, U. C. Berkeley CAD Group
4 **********/
5 
6 /*
7  * General front end stuff.
8  */
9 
10 #ifndef ngspice_FTEDEFS_H
11 #define ngspice_FTEDEFS_H
12 
13 #define DEF_WIDTH   80  /* Line printer width. */
14 #define DEF_HEIGHT  60  /* Line printer height. */
15 #define IPOINTMIN   20  /* When we start plotting incremental plots. */
16 
17 #include "ngspice/fteparse.h"
18 #include "ngspice/fteinp.h"
19 #include "ngspice/fteoptdefs.h"
20 
21 struct ccom;
22 
23 struct save_info {
24     char    *name;
25     IFuid   analysis;
26     int     used;
27 };
28 
29 
30 /* The circuits that are currently available to the user. */
31 
32 struct circ {
33     char       *ci_name;      /* What the circuit can be called. */
34     CKTcircuit *ci_ckt;       /* The CKTcircuit structure. */
35     INPtables  *ci_symtab;    /* The INP symbol table. */
36     INPmodel   *ci_modtab;    /* The INP model table. */
37     struct dbcomm *ci_dbs;    /* The database storing save, iplot, stop data */
38     struct card *ci_deck;     /* The input deck. */
39     struct card *ci_origdeck; /* The input deck, before subckt expansion. */
40     struct card *ci_mcdeck;   /* The compacted input deck, used by mc_source */
41     struct card *ci_options;  /* The .option cards from the deck... */
42     struct card *ci_meas;     /* .measure commands to run after simulation */
43     struct card *ci_param;    /* .param statements found in deck */
44     struct variable *ci_vars; /* ... and the parsed versions. */
45     bool ci_inprogress;       /* We are in a break now. */
46     bool ci_runonce;          /* So com_run can to a reset if necessary... */
47     wordlist *ci_commands;    /* Things to do when this circuit is done. */
48     struct circ *ci_next;     /* The next in the list. */
49     struct ccom *ci_nodes;    /* ccom structs for the nodes... */
50     struct ccom *ci_devices;  /* and devices in the circuit. */
51     char *ci_filename;        /* Where this circuit came from. */
52     TSKtask *ci_defTask;      /* default task for this circuit */
53     TSKtask *ci_specTask;     /* special task for command line jobs */
54     TSKtask *ci_curTask;      /* most recent task for this circuit */
55     JOB *ci_defOpt;           /* default options anal. for this circuit */
56     JOB *ci_specOpt;          /* special options anal. for command line jobs */
57     JOB *ci_curOpt;           /* most recent options anal. for the circuit */
58     char *ci_last_an;         /* name of last analysis run */
59 
60     int ci_dicos;               /* index to the numparam dicoS structure
61                                    for this circuit */
62     struct pt_temper *modtlist; /* all expressions with 'temper'
63                                    in .model lines */
64     struct pt_temper *devtlist; /* all expressions with 'temper'
65                                    in device instantiation lines */
66 
67     FTESTATistics *FTEstats;  /* Statistics for the front end */
68 } ;
69 
70 
71 #define mylog10(xx) (((xx) > 0.0) ? log10(xx) : (- log10(HUGE)))
72 
73 #include "ngspice/fteext.h"
74 
75 #endif
76