📄 ltra.c
字号:
/**********Copyright 1990 Regents of the University of California. All rightsreserved.Author: 1990 Jaijeet S. Roychowdhury**********//* * This file defines the LTRA data structures that are available to the * next level(s) up the calling hierarchy */#include "spice.h"#include <stdio.h>#include "devdefs.h"#include "ifsim.h"#include "ltradefs.h"#include "suffix.h"IFparm LTRApTable[] = { /* parameters */ IOPAU( "v1", LTRA_V1, IF_REAL , "Initial voltage at end 1"), IOPAU( "v2", LTRA_V2, IF_REAL , "Initial voltage at end 2"), IOPAU( "i1", LTRA_I1, IF_REAL , "Initial current at end 1"), IOPAU( "i2", LTRA_I2, IF_REAL , "Initial current at end 2"), IP("ic", LTRA_IC, IF_REALVEC,"Initial condition vector:v1,i1,v2,i2"), OPU("pos_node1", LTRA_POS_NODE1,IF_INTEGER,"Positive node of end 1 of t-line"), OPU("neg_node1", LTRA_NEG_NODE1,IF_INTEGER,"Negative node of end 1 of t.line"), OPU("pos_node2", LTRA_POS_NODE2,IF_INTEGER,"Positive node of end 2 of t-line"), OPU("neg_node2", LTRA_NEG_NODE2,IF_INTEGER,"Negative node of end 2 of t-line")};IFparm LTRAmPTable[] = { /* model parameters */ IOP( "ltra", LTRA_MOD_LTRA, IF_FLAG, "LTRA model"), IOPU( "r", LTRA_MOD_R, IF_REAL , "Resistance per metre"), IOPAU( "l", LTRA_MOD_L, IF_REAL , "Inductance per metre"), IOPR( "g", LTRA_MOD_G, IF_REAL , "Conductance per metre"), IOPAU( "c", LTRA_MOD_C, IF_REAL , "Capacitance per metre"), IOPU( "len", LTRA_MOD_LEN, IF_REAL , "length of line"), OP( "rel", LTRA_MOD_RELTOL, IF_REAL, "Rel. rate of change of deriv. for bkpt"), OP( "abs", LTRA_MOD_ABSTOL, IF_REAL, "Abs. rate of change of deriv. for bkpt"), IOPU("nocontrol", LTRA_MOD_NOCONTROL, IF_FLAG, "No timestep control"), IOPU( "steplimit", LTRA_MOD_STEPLIMIT, IF_FLAG, "always limit timestep to 0.8*(delay of line)"), IOPU( "nosteplimit", LTRA_MOD_NOSTEPLIMIT, IF_FLAG, "don't always limit timestep to 0.8*(delay of line)"), IOPU( "lininterp", LTRA_MOD_LININTERP, IF_FLAG, "use linear interpolation"), IOPU("quadinterp", LTRA_MOD_QUADINTERP, IF_FLAG, "use quadratic interpolation"), IOPU("mixedinterp", LTRA_MOD_MIXEDINTERP, IF_FLAG, "use linear interpolation if quadratic results look unacceptable"), IOPU("truncnr", LTRA_MOD_TRUNCNR, IF_FLAG, "use N-R iterations for step calculation in LTRAtrunc"), IOPU( "truncdontcut", LTRA_MOD_TRUNCDONTCUT, IF_FLAG, "don't limit timestep to keep impulse response calculation errors low"), IOPAU( "compactrel", LTRA_MOD_STLINEREL, IF_REAL, "special reltol for straight line checking"), IOPAU( "compactabs", LTRA_MOD_STLINEABS, IF_REAL, "special abstol for straight line checking")#ifdef notdef IOP( "f", LTRA_MOD_FREQ, IF_REAL , "Frequency"), IOP( "nl", LTRA_MOD_NL, IF_REAL , "Normalized length at frequency given"), IOP("fullcontrol", LTRA_MOD_FULLCONTROL, IF_FLAG, "rigorous timestep control"), IOP("halfcontrol", LTRA_MOD_HALFCONTROL, IF_FLAG, "only the current step is considered for timestep control"), IOP( "print", LTRA_MOD_PRINT, IF_FLAG, "printing of debugging info on"), IOP( "noprint", LTRA_MOD_NOPRINT, IF_FLAG, "printing of debugging info off"), IOP( "ronly", LTRA_MOD_RONLY, IF_FLAG, "use special load routines for G=0"), IOP( "choprel", LTRA_MOD_CHOPREL, IF_REAL, "special reltol for truncation of impulse responses"), IOP( "chopabs", LTRA_MOD_CHOPABS, IF_REAL, "special abstol for truncation of impulse responses "),#endif};char *LTRAnames[] = { "P1+", "P1-", "P2+", "P2-"};int LTRAnSize = NUMELEMS(LTRAnames);int LTRApTSize = NUMELEMS(LTRApTable);int LTRAmPTSize = NUMELEMS(LTRAmPTable);int LTRAiSize = sizeof(LTRAinstance);int LTRAmSize = sizeof(LTRAmodel);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -