presumably correct GENnodes[] <--> XXnames[] associations

this is a "pin-pointer" commit,
  pointing to places for source code verification

we have int Nodes in every device instance,
these are overlaid with struct GENinstance.GENnode[] and will be used
from there too.
the length entries and the XXnames[] arrays *must* fit this.
This commit is contained in:
rlar 2017-01-07 19:22:25 +01:00
parent 26da22e682
commit 78d88645d0
76 changed files with 246 additions and 129 deletions

View File

@ -27,8 +27,8 @@ IFparm ASRCpTable[] = { /* parameters */
char *ASRCnames[] = {
"src+",
"src-"
"src+", /* 1 */
"src-" /* 2 */
};

View File

@ -23,8 +23,11 @@ typedef struct sASRCinstance {
* current model */
IFuid ASRCname; /* pointer to character string naming this instance */
int ASRCstates; /* state info */
/* GENnode[] { */
int ASRCposNode; /* number of positive node of source */
int ASRCnegNode; /* number of negative node of source */
/* } */
int ASRCtype; /* Whether source is voltage or current */
int ASRCbranch; /* number of branch equation added for v source */

View File

@ -219,10 +219,10 @@ IFparm BJTmPTable[] = { /* model parameters */
};
char *BJTnames[] = {
"collector",
"base",
"emitter",
"substrate"
"collector", /* 1 */
"base", /* 2 */
"emitter", /* 3 */
"substrate" /* 4 */
};

View File

@ -23,10 +23,13 @@ typedef struct sBJTinstance {
IFuid BJTname; /* pointer to character string naming this instance */
int BJTstate; /* pointer to start of state vector for bjt */
/* GENnode[] { */
int BJTcolNode; /* number of collector node of bjt */
int BJTbaseNode; /* number of base node of bjt */
int BJTemitNode; /* number of emitter node of bjt */
int BJTsubstNode; /* number of substrate node of bjt */
/* } */
int BJTcolPrimeNode; /* number of internal collector node of bjt */
int BJTbasePrimeNode; /* number of internal base node of bjt */
int BJTemitPrimeNode; /* number of internal emitter node of bjt */

View File

@ -131,10 +131,10 @@ IFparm B1mPTable[] = { /* model parameters */
};
char *B1names[] = {
"Drain",
"Gate",
"Source",
"Bulk"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk" /* 4 */
};
int B1nSize = NUMELEMS(B1names);

View File

@ -26,10 +26,13 @@ typedef struct sBSIM1instance {
IFuid B1name; /* pointer to character string naming this instance */
int B1states; /* index into state table for this device */
/* GENnode[] { */
int B1dNode; /* number of the gate node of the mosfet */
int B1gNode; /* number of the gate node of the mosfet */
int B1sNode; /* number of the source node of the mosfet */
int B1bNode; /* number of the bulk node of the mosfet */
/* } */
int B1dNodePrime; /* number of the internal drain node of the mosfet */
int B1sNodePrime; /* number of the internal source node of the mosfet */

View File

@ -201,10 +201,10 @@ IFparm B2mPTable[] = { /* model parameters */
};
char *B2names[] = {
"Drain",
"Gate",
"Source",
"Bulk"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk" /* 4 */
};
int B2nSize = NUMELEMS(B2names);

View File

@ -22,10 +22,13 @@ typedef struct sBSIM2instance {
IFuid B2name; /* pointer to character string naming this instance */
int B2states; /* index into state table for this device */
/* GENnode[] { */
int B2dNode; /* number of the gate node of the mosfet */
int B2gNode; /* number of the gate node of the mosfet */
int B2sNode; /* number of the source node of the mosfet */
int B2bNode; /* number of the bulk node of the mosfet */
/* } */
int B2dNodePrime; /* number of the internal drain node of the mosfet */
int B2sNodePrime; /* number of the internal source node of the mosfet */

View File

@ -59,8 +59,8 @@ IFparm CAPmPTable[] = { /* names of model parameters */
};
char *CAPnames[] = {
"C+",
"C-"
"C+", /* 1 */
"C-" /* 2 */
};

View File

@ -24,8 +24,11 @@ typedef struct sCAPinstance {
* current model*/
IFuid CAPname; /* pointer to character string naming this instance */
int CAPstate; /* pointer to start of capacitor state vector */
/* GENnode[] { */
int CAPposNode; /* number of positive node of capacitor */
int CAPnegNode; /* number of negative node of capacitor */
/* } */
double CAPtemp; /* temperature at which this capacitor operates */
double CAPdtemp; /* delta-temperature of this instance */

View File

@ -34,8 +34,8 @@ static IFparm CCCSmPTable[] = {
#endif
char *CCCSnames[] = {
"F+",
"F-"
"F+", /* 1 */
"F-" /* 2 */
};
int CCCSnSize = NUMELEMS(CCCSnames);

View File

@ -22,8 +22,11 @@ typedef struct sCCCSinstance {
IFuid CCCSname; /* pointer to character string naming this instance */
int CCCSstate; /* not used */
/* GENnode[] { */
int CCCSposNode; /* number of positive node of source */
int CCCSnegNode; /* number of negative node of source */
/* } */
int CCCScontBranch; /* number of branch eq of controlling source */
char *CCCScontName; /* pointer to name of controlling instance */

View File

@ -29,8 +29,8 @@ IFparm CCVSpTable[] = { /* parameters */
};
char *CCVSnames[] = {
"H+",
"H-"
"H+", /* 1 */
"H-" /* 2 */
};
int CCVSnSize = NUMELEMS(CCVSnames);

View File

@ -22,8 +22,10 @@ typedef struct sCCVSinstance {
IFuid CCVSname; /* pointer to character string naming this instance */
int CCVSstate; /* not used */
/* GENnode[] { */
int CCVSposNode; /* number of positive node of source */
int CCVSnegNode; /* number of negative node of source */
/* } */
IFuid CCVScontName; /* pointer to name of controlling instance */
int CCVSbranch; /* equation number of branch equation added for v source */

View File

@ -30,8 +30,8 @@ IFparm CSWmPTable[] = { /* model parameters */
};
char *CSWnames[] = {
"W+",
"W-"
"W+", /* 1 */
"W-" /* 2 */
};
int CSWnSize = NUMELEMS(CSWnames);

View File

@ -25,10 +25,12 @@ typedef struct sCSWinstance {
IFuid CSWname; /* pointer to character string naming this instance */
int CSWstate; /* pointer to start of switch's section of state vector */
/* GENnode[] { */
int CSWposNode; /* number of positive node of switch */
int CSWnegNode; /* number of negative node of switch */
int CSWcontBranch; /* number of branch of controlling current */
/* } */
int CSWcontBranch; /* number of branch of controlling current */
IFuid CSWcontName; /* name of controlling source */
double *CSWposPosptr; /* pointer to sparse matrix diagonal at

View File

@ -112,8 +112,8 @@ IFparm DIOmPTable[] = { /* model parameters */
};
char *DIOnames[] = {
"D+",
"D-"
"D+", /* 1 */
"D-" /* 2 */
};
int DIOnSize = NUMELEMS(DIOnames);

View File

@ -23,8 +23,12 @@ typedef struct sDIOinstance {
* current model*/
IFuid DIOname; /* pointer to character string naming this instance */
int DIOstate; /* pointer to start of state vector for diode */
/* GENnode[] { */
int DIOposNode; /* number of positive node of diode */
int DIOnegNode; /* number of negative node of diode */
/* } */
int DIOposPrimeNode; /* number of positive prime node of diode */
double *DIOposPosPrimePtr; /* pointer to sparse matrix at

View File

@ -114,9 +114,9 @@ IFparm HFETAmPTable[] = { /* model parameters */
};
char *HFETAnames[] = {
"Drain",
"Gate",
"Source"
"Drain", /* 1 */
"Gate", /* 2 */
"Source" /* 3 */
};
int HFETAnSize = NUMELEMS(HFETAnames);

View File

@ -20,9 +20,12 @@ typedef struct sHFETAinstance {
IFuid HFETAname;
int HFETAstate; /* index into state table for this device */
/* GENnode[] { */
int HFETAdrainNode;
int HFETAgateNode;
int HFETAsourceNode;
/* } */
int HFETAdrainPrimeNode;
int HFETAgatePrimeNode;
int HFETAsourcePrimeNode;

View File

@ -87,9 +87,9 @@ IFparm HFET2mPTable[] = { /* model parameters */
};
char *HFET2names[] = {
"Drain",
"Gate",
"Source"
"Drain", /* 1 */
"Gate", /* 2 */
"Source" /* 3 */
};
int HFET2nSize = NUMELEMS(HFET2names);

View File

@ -14,9 +14,12 @@ typedef struct sHFET2instance {
IFuid HFET2name;
int HFET2state; /* index into state table for this device */
/* GENnode[] { */
int HFET2drainNode;
int HFET2gateNode;
int HFET2sourceNode;
/* } */
int HFET2drainPrimeNode;
int HFET2sourcePrimeNode;
double HFET2length;

View File

@ -708,10 +708,10 @@ IFparm HSM2mPTable[] = { /* model parameters */
};
char *HSM2names[] = {
"Drain",
"Gate",
"Source",
"Bulk"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk" /* 4 */
};
int HSM2nSize = NUMELEMS(HSM2names);

View File

@ -143,10 +143,13 @@ typedef struct sHSM2instance {
IFuid HSM2name; /* pointer to character string naming this instance */
int HSM2states; /* index into state table for this device */
/* GENnode[] { */
int HSM2dNode; /* number of the drain node of the mosfet */
int HSM2gNode; /* number of the gate node of the mosfet */
int HSM2sNode; /* number of the source node of the mosfet */
int HSM2bNode; /* number of the bulk node of the mosfet */
/* } */
int HSM2dNodePrime; /* number od the inner drain node */
int HSM2gNodePrime; /* number of the inner gate node */
int HSM2sNodePrime; /* number od the inner source node */

View File

@ -730,12 +730,12 @@ IFparm HSMHVmPTable[] = { /* model parameters */
};
char *HSMHVnames[] = {
"Drain",
"Gate",
"Source",
"Bulk",
"Substrate",
"Temp"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk", /* 4 */
"Substrate", /* 5 */
"Temp" /* 6 */
};
int HSMHVnSize = NUMELEMS(HSMHVnames);

View File

@ -219,12 +219,15 @@ typedef struct sHSMHVinstance {
IFuid HSMHVname; /* pointer to character string naming this instance */
int HSMHVstates; /* index into state table for this device */
/* GENnode[] { */
int HSMHVdNode; /* number of the drain node of the mosfet */
int HSMHVgNode; /* number of the gate node of the mosfet */
int HSMHVsNode; /* number of the source node of the mosfet */
int HSMHVbNode; /* number of the bulk node of the mosfet */
int HSMHVsubNode; /* number of the substrate node */
int HSMHVtempNode; /* number of the temp node----------SHE--------*/
/* } */
int HSMHVdNodePrime; /* number od the inner drain node */
int HSMHVgNodePrime; /* number of the inner gate node */
int HSMHVsNodePrime; /* number od the inner source node */

View File

@ -913,12 +913,12 @@ IFparm HSMHV2mPTable[] = { /* model parameters */
};
char *HSMHV2names[] = {
"Drain",
"Gate",
"Source",
"Bulk",
"Substrate",
"Temp"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk", /* 4 */
"Substrate", /* 5 */
"Temp" /* 6 */
};
int HSMHV2nSize = NUMELEMS(HSMHV2names);

View File

@ -267,12 +267,15 @@ typedef struct sHSMHV2instance {
IFuid HSMHV2name; /* pointer to character string naming this instance */
int HSMHV2states; /* index into state table for this device */
/* GENnode[] { */
int HSMHV2dNode; /* number of the drain node of the mosfet */
int HSMHV2gNode; /* number of the gate node of the mosfet */
int HSMHV2sNode; /* number of the source node of the mosfet */
int HSMHV2bNode; /* number of the bulk node of the mosfet */
int HSMHV2subNode; /* number of the substrate node */
int HSMHV2tempNode; /* number of the temp node----------SHE--------*/
/* } */
int HSMHV2dNodePrime; /* number od the inner drain node */
int HSMHV2gNodePrime; /* number of the inner gate node */
int HSMHV2sNodePrime; /* number od the inner source node */

View File

@ -52,8 +52,8 @@ IFparm INDmPTable[] = { /* model parameters */
char *INDnames[] = {
"L+",
"L-"
"L+", /* 1 */
"L-" /* 2 */
};

View File

@ -32,8 +32,11 @@ struct sINDinstance {
* current model */
IFuid INDname; /* pointer to character string naming this instance */
int INDstate; /* pointer to beginning of state vector for inductor */
/* GENnode[] { */
int INDposNode; /* number of positive node of inductor */
int INDnegNode; /* number of negative node of inductor */
/* } */
int INDbrEq; /* number of the branch equation added for current */
double INDinduct; /* inductance */

View File

@ -48,8 +48,8 @@ IFparm ISRCpTable[] = { /* parameters */
};
char *ISRCnames[] = {
"I+",
"I-"
"I+", /* 1 */
"I-" /* 2 */
};
int ISRCnSize = NUMELEMS(ISRCnames);

View File

@ -25,8 +25,10 @@ typedef struct sISRCinstance {
IFuid ISRCname; /* pointer to character string naming this instance */
int ISRCstate; /* not used */
/* GENnode[] { */
int ISRCnegNode; /* number of negative node of source */
int ISRCposNode; /* number of positive node of source */
/* } */ /* ouch revers to ISRCnames ! */
int ISRCfunctionType; /* code number of function type for source */
int ISRCfunctionOrder; /* order of the function for the source */

View File

@ -77,9 +77,9 @@ IFparm JFETmPTable[] = { /* model parameters */
char *JFETnames[] = {
"Drain",
"Gate",
"Source"
"Drain", /* 1 */
"Gate", /* 2 */
"Source" /* 3 */
};
int JFETnSize = NUMELEMS(JFETnames);

View File

@ -26,9 +26,13 @@ typedef struct sJFETinstance {
* current model*/
IFuid JFETname; /* pointer to character string naming this instance */
int JFETstate; /* pointer to start of state vector for jfet */
/* GENnode[] { */
int JFETdrainNode; /* number of drain node of jfet */
int JFETgateNode; /* number of gate node of jfet */
int JFETsourceNode; /* number of source node of jfet */
/* } */
int JFETdrainPrimeNode; /* number of internal drain node of jfet */
int JFETsourcePrimeNode; /* number of internal source node of jfet */

View File

@ -65,9 +65,9 @@ IFparm JFET2mPTable[] = { /* model parameters */
char *JFET2names[] = {
"Drain",
"Gate",
"Source"
"Drain", /* 1 */
"Gate", /* 2 */
"Source" /* 3 */
};
int JFET2nSize = NUMELEMS(JFET2names);

View File

@ -31,9 +31,13 @@ typedef struct sJFET2instance {
* current model*/
IFuid JFET2name; /* pointer to character string naming this instance */
int JFET2state; /* pointer to start of state vector for jfet */
/* GENnode[] { */
int JFET2drainNode; /* number of drain node of jfet */
int JFET2gateNode; /* number of gate node of jfet */
int JFET2sourceNode; /* number of source node of jfet */
/* } */
int JFET2drainPrimeNode; /* number of internal drain node of jfet */
int JFET2sourcePrimeNode; /* number of internal source node of jfet */

View File

@ -57,10 +57,10 @@ IFparm LTRAmPTable[] = { /* model parameters */
};
char *LTRAnames[] = {
"P1+",
"P1-",
"P2+",
"P2-"
"P1+", /* 1 */
"P1-", /* 2 */
"P2+", /* 3 */
"P2-" /* 4 */
};
int LTRAnSize = NUMELEMS(LTRAnames);

View File

@ -23,10 +23,13 @@ typedef struct sLTRAinstance {
* current model*/
IFuid LTRAname; /* pointer to character string naming this instance */
int LTRAstate; /* not used */
/* GENnode[] { */
int LTRAposNode1; /* number of positive node of end 1 of t. line */
int LTRAnegNode1; /* number of negative node of end 1 of t. line */
int LTRAposNode2; /* number of positive node of end 2 of t. line */
int LTRAnegNode2; /* number of negative node of end 2 of t. line */
/* } */
int LTRAbrEq1; /* number of branch equation for end 1 of t. line */
int LTRAbrEq2; /* number of branch equation for end 2 of t. line */

View File

@ -64,9 +64,9 @@ IFparm MESmPTable[] = { /* model parameters */
};
char *MESnames[] = {
"Drain",
"Gate",
"Source"
"Drain", /* 1 */
"Gate", /* 2 */
"Source" /* 3 */
};
int MESnSize = NUMELEMS(MESnames);

View File

@ -25,9 +25,13 @@ typedef struct sMESinstance {
* current model*/
IFuid MESname; /* pointer to character string naming this instance */
int MESstate; /* pointer to start of state vector for mesfet */
/* GENnode[] { */
int MESdrainNode; /* number of drain node of mesfet */
int MESgateNode; /* number of gate node of mesfet */
int MESsourceNode; /* number of source node of mesfet */
/* } */
int MESdrainPrimeNode; /* number of internal drain node of mesfet */
int MESsourcePrimeNode; /* number of internal source node of mesfet */

View File

@ -119,9 +119,9 @@ IFparm MESAmPTable[] = { /* model parameters */
};
char *MESAnames[] = {
"Drain",
"Gate",
"Source"
"Drain", /* 1 */
"Gate", /* 2 */
"Source" /* 3 */
};
int MESAnSize = NUMELEMS(MESAnames);

View File

@ -24,9 +24,12 @@ typedef struct sMESAinstance {
IFuid MESAname; /* pointer to character string naming this instance */
int MESAstate; /* pointer to start of state vector for MESAfet */
/* GENnode[] { */
int MESAdrainNode; /* number of drain node of MESAfet */
int MESAgateNode; /* number of gate node of MESAfet */
int MESAsourceNode; /* number of source node of MESAfet */
/* } */
int MESAdrainPrimeNode; /* number of internal drain node of MESAfet */
int MESAgatePrimeNode; /* number of internal gate node of MESAfet */
int MESAsourcePrimeNode; /* number of internal source node of MESAfet */

View File

@ -152,10 +152,10 @@ IFparm MOS1mPTable[] = { /* model parameters */
};
char *MOS1names[] = {
"Drain",
"Gate",
"Source",
"Bulk"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk" /* 4 */
};
int MOS1nSize = NUMELEMS(MOS1names);

View File

@ -24,10 +24,13 @@ typedef struct sMOS1instance {
IFuid MOS1name; /* pointer to character string naming this instance */
int MOS1states; /* index into state table for this device */
/* GENnode[] { */
int MOS1dNode; /* number of the gate node of the mosfet */
int MOS1gNode; /* number of the gate node of the mosfet */
int MOS1sNode; /* number of the source node of the mosfet */
int MOS1bNode; /* number of the bulk node of the mosfet */
/* } */
int MOS1dNodePrime; /* number of the internal drain node of the mosfet */
int MOS1sNodePrime; /* number of the internal source node of the mosfet */

View File

@ -160,10 +160,10 @@ IFparm MOS2mPTable[] = { /* model parameters */
};
char *MOS2names[] = {
"Drain",
"Gate",
"Source",
"Bulk"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk" /* 4 */
};
int MOS2nSize = NUMELEMS(MOS2names);

View File

@ -23,10 +23,13 @@ typedef struct sMOS2instance {
*current model*/
IFuid MOS2name; /* pointer to character string naming this instance */
int MOS2states; /* index into state table for this device */
/* GENnode[] { */
int MOS2dNode; /* number of the gate node of the mosfet */
int MOS2gNode; /* number of the gate node of the mosfet */
int MOS2sNode; /* number of the source node of the mosfet */
int MOS2bNode; /* number of the bulk node of the mosfet */
/* } */
int MOS2dNodePrime; /* number of the internal drain node of the mosfet */
int MOS2sNodePrime; /* number of the internal source node of the mosfet */

View File

@ -160,10 +160,10 @@ IFparm MOS3mPTable[] = { /* model parameters */
};
char *MOS3names[] = {
"Drain",
"Gate",
"Source",
"Bulk"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk" /* 4 */
};
int MOS3nSize = NUMELEMS(MOS3names);

View File

@ -23,10 +23,14 @@ typedef struct sMOS3instance {
*current model*/
IFuid MOS3name; /* pointer to character string naming this instance */
int MOS3states; /* index into state table for this device */
/* GENnode[] { */
int MOS3dNode; /* number of the gate node of the mosfet */
int MOS3gNode; /* number of the gate node of the mosfet */
int MOS3sNode; /* number of the source node of the mosfet */
int MOS3bNode; /* number of the bulk node of the mosfet */
/* } */
int MOS3dNodePrime; /* number of the internal drain node of the mosfet */
int MOS3sNodePrime; /* number of the internal source node of the mosfet */

View File

@ -156,10 +156,10 @@ IFparm MOS6mPTable[] = { /* model parameters */
};
char *MOS6names[] = {
"Drain",
"Gate",
"Source",
"Bulk"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk" /* 4 */
};
int MOS6nSize = NUMELEMS(MOS6names);

View File

@ -21,10 +21,14 @@ typedef struct sMOS6instance {
*current model*/
IFuid MOS6name; /* pointer to character string naming this instance */
int MOS6states; /* index into state table for this device */
/* GENnode[] { */
int MOS6dNode; /* number of the gate node of the mosfet */
int MOS6gNode; /* number of the gate node of the mosfet */
int MOS6sNode; /* number of the source node of the mosfet */
int MOS6bNode; /* number of the bulk node of the mosfet */
/* } */
int MOS6dNodePrime; /* number of the internal drain node of the mosfet */
int MOS6sNodePrime; /* number of the internal source node of the mosfet */

View File

@ -161,10 +161,10 @@ IFparm MOS9mPTable[] = { /* model parameters */
};
char *MOS9names[] = {
"Drain",
"Gate",
"Source",
"Bulk"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Bulk" /* 4 */
};
int MOS9nSize = NUMELEMS(MOS9names);

View File

@ -23,10 +23,14 @@ typedef struct sMOS9instance {
*current model*/
IFuid MOS9name; /* pointer to character string naming this instance */
int MOS9states; /* index into state table for this device */
/* GENnode[] { */
int MOS9dNode; /* number of the gate node of the mosfet */
int MOS9gNode; /* number of the gate node of the mosfet */
int MOS9sNode; /* number of the source node of the mosfet */
int MOS9bNode; /* number of the bulk node of the mosfet */
/* } */
int MOS9dNodePrime; /* number of the internal drain node of the mosfet */
int MOS9sNodePrime; /* number of the internal source node of the mosfet */

View File

@ -23,13 +23,13 @@ IFparm NDEVmPTable[] = { /* model parameters */
};
char *NDEVnames[] = {
"pin1",
"pin2",
"pin3",
"pin4",
"pin5",
"pin6",
"pin7"
"pin1", /* 1 */
"pin2", /* 2 */
"pin3", /* 3 */
"pin4", /* 4 */
"pin5", /* 5 */
"pin6", /* 6 */
"pin7" /* 7 */
};
int NDEVnSize = NUMELEMS(NDEVnames);

View File

@ -30,7 +30,11 @@ typedef struct sNDEVinstance {
IFuid NDEVname; /* pointer to character string naming this
* instance */
int NDEVstate; /* pointer to start of state vector for diode */
/* GENnode[] { */
int pin[7]; /* max 7 terminals are allowed */
/* } */
int term; /* the real number of terminals */
CKTnode *node[7]; /* the array of CKT node's node pointer */
char *bname[7]; /* the electrode boundary label for numerical solver */

View File

@ -42,8 +42,8 @@ IFparm NUMDmPTable[] = { /* model parameters */
};
char *NUMDnames[] = {
"D+",
"D-"
"D+", /* 1 */
"D-" /* 2 */
};
int NUMDnSize = NUMELEMS(NUMDnames);

View File

@ -34,8 +34,11 @@ typedef struct sNUMDinstance {
#define NUMDconduct NUMDstate+2
#define NUMDnumStates 3
/* GENnode[] { */
int NUMDposNode; /* number of positive node of diode */
int NUMDnegNode; /* number of negative node of diode */
/* } */
ONEdevice *NUMDpDevice;
GLOBvalues NUMDglobals; /* Temp.-Dep. Global Parameters */
int NUMDtype; /* device type pn or np */

View File

@ -48,8 +48,8 @@ IFparm NUMD2mPTable[] = { /* model parameters */
};
char *NUMD2names[] = {
"Anode",
"Cathode"
"Anode", /* 1 */
"Cathode" /* 2 */
};
int NUMD2nSize = NUMELEMS(NUMD2names);

View File

@ -34,8 +34,11 @@ typedef struct sNUMD2instance {
#define NUMD2conduct NUMD2state+2
#define NUMD2numStates 3
/* GENnode[] { */
int NUMD2posNode; /* number of positive node of diode */
int NUMD2negNode; /* number of negative node of diode */
/* } */
TWOdevice *NUMD2pDevice;
GLOBvalues NUMD2globals; /* Temp.-Dep. Global Parameters */
int NUMD2type; /* device type pn or np */

View File

@ -80,10 +80,10 @@ IFparm NUMOSmPTable[] = { /* model parameters */
};
char *NUMOSnames[] = {
"Drain",
"Gate",
"Source",
"Substrate"
"Drain", /* 1 */
"Gate", /* 2 */
"Source", /* 3 */
"Substrate" /* 4 */
};
int NUMOSnSize = NUMELEMS(NUMOSnames);

View File

@ -48,10 +48,13 @@ typedef struct sNUMOSinstance {
#define NUMOSdIgDVgb NUMOSstate+14
#define NUMOSnumStates 15
/* GENnode[] { */
int NUMOSdrainNode; /* number of drain node of MOSFET */
int NUMOSgateNode; /* number of gate node of MOSFET */
int NUMOSsourceNode; /* number of source node of MOSFET */
int NUMOSbulkNode; /* number of bulk node of MOSFET */
/* } */
double NUMOSarea; /* area factor for the mosfet */
double NUMOSwidth; /* width factor for the mosfet */
double NUMOSlength; /* length factor for the mosfet */

View File

@ -68,8 +68,8 @@ IFparm RESmPTable[] = { /* model parameters */
};
char *RESnames[] = {
"R+",
"R-"
"R+", /* 1 */
"R-" /* 2 */
};
int RESnSize = NUMELEMS(RESnames);

View File

@ -25,8 +25,11 @@ typedef struct sRESinstance {
IFuid RESname; /* pointer to character string naming this instance */
int RESstate; /* not used but needed for sructure consistency */
/* GENnode[] { */
int RESposNode; /* number of positive node of resistor */
int RESnegNode; /* number of negative node of resistor */
/* } */
double REStemp; /* temperature at which this resistor operates */
double RESdtemp; /* delta-temperature of a particular instance */

View File

@ -33,10 +33,10 @@ IFparm SWmPTable[] = { /* model parameters */
};
char *SWnames[] = {
"S+",
"S-",
"SC+",
"SC-"
"S+", /* 1 */
"S-", /* 2 */
"SC+", /* 3 */
"SC-" /* 4 */
};
int SWnSize = NUMELEMS(SWnames);

View File

@ -25,10 +25,12 @@ typedef struct sSWinstance {
IFuid SWname; /* pointer to character string naming this instance */
int SWstate; /* pointer to start of switch's section of state vector */
/* GENnode[] { */
int SWposNode; /* number of positive node of switch */
int SWnegNode; /* number of negative node of switch */
int SWposCntrlNode; /* number of positive controlling node of switch */
int SWnegCntrlNode; /* number of negative controlling node of switch */
/* } */
double *SWposPosptr; /* pointer to sparse matrix diagonal at
(positive,positive) for switch conductance */

View File

@ -30,10 +30,10 @@ IFparm TRApTable[] = { /* parameters */
};
char *TRAnames[] = {
"P1+",
"P1-",
"P2+",
"P2-"
"P1+", /* 1 */
"P1-", /* 2 */
"P2+", /* 3 */
"P2-" /* 4 */
};
int TRAnSize = NUMELEMS(TRAnames);

View File

@ -23,10 +23,14 @@ typedef struct sTRAinstance {
* current model*/
IFuid TRAname; /* pointer to character string naming this instance */
int TRAstate; /* not used */
/* GENnode[] { */
int TRAposNode1; /* number of positive node of end 1 of t. line */
int TRAnegNode1; /* number of negative node of end 1 of t. line */
int TRAposNode2; /* number of positive node of end 2 of t. line */
int TRAnegNode2; /* number of negative node of end 2 of t. line */
/* } */
int TRAintNode1; /* number of internal node of end 1 of t. line */
int TRAintNode2; /* number of internal node of end 2 of t. line */

View File

@ -27,9 +27,9 @@ IFparm URCmPTable[] = { /* model parameters */
};
char *URCnames[] = {
"P1",
"P2",
"Ref"
"P1", /* 1 */
"P2", /* 2 */
"Ref" /* 3 */
};
int URCnSize = NUMELEMS(URCnames);

View File

@ -24,9 +24,12 @@ typedef struct sURCinstance {
* current model*/
IFuid URCname; /* pointer to character string naming this instance */
int URCstate; /* not used */
/* GENnode[] { */
int URCposNode; /* number of positive node of URC */
int URCnegNode; /* number of negative node of URC */
int URCgndNode; /* number of the "ground" node of the URC */
/* } */
double URClength; /* length of line */
int URClumps; /* number of lumps in line */

View File

@ -191,10 +191,10 @@ IFparm VBICmPTable[] = { /* model parameters */
};
char *VBICnames[] = {
"collector",
"base",
"emitter",
"substrate"
"collector", /* 1 */
"base", /* 2 */
"emitter", /* 3 */
"substrate" /* 4 */
};

View File

@ -25,10 +25,13 @@ typedef struct sVBICinstance {
IFuid VBICname; /* pointer to character string naming this instance */
int VBICstate; /* pointer to start of state vector for vbic */
/* GENnode[] { */
int VBICcollNode; /* number of collector node of vbic */
int VBICbaseNode; /* number of base node of vbic */
int VBICemitNode; /* number of emitter node of vbic */
int VBICsubsNode; /* number of substrate node of vbic */
/* } */
int VBICcollCXNode; /* number of internal collector node of vbic */
int VBICcollCINode; /* number of internal collector node of vbic */
int VBICbaseBXNode; /* number of internal base node of vbic */

View File

@ -33,10 +33,10 @@ IFparm VCCSpTable[] = { /* parameters */
};
char *VCCSnames[] = {
"V+",
"V-",
"VC+",
"VC-"
"V+", /* 1 */
"V-", /* 2 */
"VC+", /* 3 */
"VC-" /* 4 */
};
int VCCSnSize = NUMELEMS(VCCSnames);

View File

@ -24,10 +24,12 @@ typedef struct sVCCSinstance {
IFuid VCCSname; /* pointer to character string naming this instance */
int VCCSstates; /* state info */
/* GENnode[] { */
int VCCSposNode; /* number of positive node of source */
int VCCSnegNode; /* number of negative node of source */
int VCCScontPosNode; /* number of positive node of controlling source */
int VCCScontNegNode; /* number of negative node of controlling source */
/* } */
double VCCSinitCond; /* initial condition (of controlling source) */
double VCCScoeff; /* coefficient */

View File

@ -31,10 +31,10 @@ IFparm VCVSpTable[] = { /* parameters */
};
char *VCVSnames[] = {
"V+",
"V-",
"VC+",
"VC-"
"V+", /* 1 */
"V-", /* 2 */
"VC+", /* 3 */
"VC-" /* 4 */
};
int VCVSnSize = NUMELEMS(VCVSnames);

View File

@ -25,10 +25,13 @@ typedef struct sVCVSinstance {
IFuid VCVSname; /* pointer to character string naming this instance */
int VCVSstates; /* state info */
/* GENnode[] { */
int VCVSposNode; /* number of positive node of source */
int VCVSnegNode; /* number of negative node of source */
int VCVScontPosNode; /* number of positive node of controlling source */
int VCVScontNegNode; /* number of negative node of controlling source */
/* } */
int VCVSbranch; /* equation number of branch equation added for v source */
double VCVSinitCond; /* initial condition (of controlling source) */

View File

@ -43,8 +43,8 @@ IFparm VSRCpTable[] = { /* parameters */
};
char *VSRCnames[] = {
"V+",
"V-"
"V+", /* 1 */
"V-" /* 2 */
};
int VSRCnSize = NUMELEMS(VSRCnames);

View File

@ -27,8 +27,10 @@ typedef struct sVSRCinstance {
IFuid VSRCname; /* pointer to character string naming this instance */
int VSRCstate; /* not used */
/* GENnode[] { */
int VSRCposNode; /* number of positive node of source */
int VSRCnegNode; /* number of negative node of source */
/* } */
int VSRCbranch; /* equation number of branch equation added for source */