Jspice3
tra.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: 1985 Thomas L. Quarles
5  1993 Stephen R. Whiteley
6 ****************************************************************************/
7 
8 #include "spice.h"
9 #include <stdio.h>
10 #include "tradefs.h"
11 #include "uflags.h"
12 
13 static IFparm TRApTable[] = { /* parameters */
14  IOPU( "z0", TRA_Z0, IF_REAL, "Characteristic impedance"),
15  IOPR( "zo", TRA_Z0, IF_REAL, "Characteristic impedance"),
16  IOPAU( "f", TRA_FREQ, IF_REAL, "Frequency"),
17  IOPAU( "td", TRA_TD, IF_REAL, "Transmission delay"),
18  IOPAU( "nl", TRA_NL, IF_REAL, "Normalized length at frequency given"),
19  IOPAU( "v1", TRA_V1, IF_REAL, "Initial voltage at end 1"),
20  IOPAU( "v2", TRA_V2, IF_REAL, "Initial voltage at end 2"),
21  IOPAU( "i1", TRA_I1, IF_REAL, "Initial current at end 1"),
22  IOPAU( "i2", TRA_I2, IF_REAL, "Initial current at end 2"),
23  IP( "ic", TRA_IC, IF_REALVEC,"Initial condition vector:v1,i1,v2,i2"),
24  OP( "rel", TRA_RELTOL,IF_REAL, "Rel. rate of change of deriv. for bkpt"),
25  OP( "abs", TRA_ABSTOL,IF_REAL, "Abs. rate of change of deriv. for bkpt"),
26 
27  OPU( "pos_node1", TRA_POS_NODE1, IF_INTEGER,
28  "Positive node of end 1 of t. line"),
29  OPU( "neg_node1", TRA_NEG_NODE1, IF_INTEGER,
30  "Negative node of end 1 of t. line"),
31  OPU( "pos_node2", TRA_POS_NODE2, IF_INTEGER,
32  "Positive node of end 2 of t. line"),
33  OPU( "neg_node2", TRA_NEG_NODE2, IF_INTEGER,
34  "Negative node of end 2 of t. line"),
35  OPU( "delays",TRA_DELAY, IF_REALVEC, "Delayed values of excitation")
36 };
37 
38  /* model parameters */
39 /* static IFparm TRAmPTable[] = { }; */
40 
41 static char *TRAnames[] = {
42  "P1+",
43  "P1-",
44  "P2+",
45  "P2-"
46 };
47 
48 static IFkeys TRAkeys[] = {
49  { 't', NUMELEMS(TRAnames), TRAnames, 0, 0 },
50 };
51 
52 
53 static int TRAkSize = NUMELEMS(TRAkeys);
54 static int TRApTSize = NUMELEMS(TRApTable);
55 static int TRAmPTSize = 0;
56 static int TRAiSize = sizeof(TRAinstance);
57 static int TRAmSize = sizeof(TRAmodel);
58 
59 
61  {
62  "Tranline",
63  "Lossless transmission line",
64 
65  &TRAkSize,
66  TRAkeys,
67  1,
68  NULL,
69  TRAparse,
70 
71  &TRApTSize,
72  TRApTable,
73 
74  0, /*&TRAmPTSize*/
75  NULL /*TRAmPTable*/
76  },
77 
78  TRAparam,
79  NULL,
80  TRAload,
81  TRAsetup,
82  TRAsetup,
83  TRAtemp,
84  TRAtrunc,
85  NULL,
86  TRAacLoad,
87  TRAaccept,
88  GENdestroy,
89  GENmDelete,
90  GENdelete,
91  NULL,
92  TRAask,
93  NULL,
94  NULL,
95  NULL,
96  NULL, /* DISTO */
97  NULL, /* NOISE */
98 
99  &TRAiSize,
100  &TRAmSize
101 };
#define TRA_Z0
Definition: tradefs.h:95
int TRAsetup()
#define TRA_ABSTOL
Definition: tradefs.h:105
#define TRA_POS_NODE1
Definition: tradefs.h:106
#define TRA_I1
Definition: tradefs.h:100
#define OPU(a, b, c, d)
Definition: uflags.h:65
#define NUMELEMS(ARRAY)
Definition: spice.h:157
SPICEdev TRAinfo
Definition: tra.c:60
#define TRA_I2
Definition: tradefs.h:102
#define IOPR(a, b, c, d)
Definition: uflags.h:57
void GENdestroy()
void TRAparse()
#define TRA_V1
Definition: tradefs.h:99
#define TRA_RELTOL
Definition: tradefs.h:104
static IFparm TRApTable[]
Definition: tra.c:13
int TRAacLoad()
int TRAtemp()
#define TRA_V2
Definition: tradefs.h:101
struct sTRAmodel TRAmodel
#define NULL
Definition: spdefs.h:121
static IFkeys TRAkeys[]
Definition: tra.c:48
static int TRAkSize
Definition: tra.c:53
#define IF_INTEGER
Definition: ifsim.h:107
#define TRA_IC
Definition: tradefs.h:103
Definition: ifsim.h:54
Definition: ifsim.h:267
#define IF_REAL
Definition: ifsim.h:108
int TRAparam()
#define IP(a, b, c, d)
Definition: devdefs.h:118
static char * TRAnames[]
Definition: tra.c:41
int GENmDelete()
#define IF_REALVEC
Definition: ifsim.h:125
int GENdelete()
int TRAaccept()
#define TRA_FREQ
Definition: tradefs.h:98
int TRAtrunc()
#define TRA_POS_NODE2
Definition: tradefs.h:108
#define IOPAU(a, b, c, d)
Definition: uflags.h:51
#define TRA_NEG_NODE2
Definition: tradefs.h:109
#define TRA_TD
Definition: tradefs.h:96
static int TRAmSize
Definition: tra.c:57
#define OP(a, b, c, d)
Definition: devdefs.h:119
struct sTRAinstance TRAinstance
#define IOPU(a, b, c, d)
Definition: uflags.h:48
static int TRAiSize
Definition: tra.c:56
static int TRAmPTSize
Definition: tra.c:55
#define TRA_NL
Definition: tradefs.h:97
int TRAload()
#define TRA_NEG_NODE1
Definition: tradefs.h:107
static int TRApTSize
Definition: tra.c:54
#define TRA_DELAY
Definition: tradefs.h:112
int TRAask()