46 #ifndef Xyce_N_DEV_LTRA_h
47 #define Xyce_N_DEV_LTRA_h
54 #include <N_UTL_BreakPoint.h>
57 #define LTRA_MOD_LTRA 0
62 #define LTRA_MOD_LEN 5
68 #define LTRA_MOD_RELTOL 11
69 #define LTRA_MOD_ABSTOL 12
70 #define LTRA_POS_NODE1 13
71 #define LTRA_NEG_NODE1 14
72 #define LTRA_POS_NODE2 15
73 #define LTRA_NEG_NODE2 16
74 #define LTRA_INPUT1 17
75 #define LTRA_INPUT2 18
77 #define LTRA_BR_EQ1 20
78 #define LTRA_BR_EQ2 21
79 #define LTRA_MOD_NL 22
80 #define LTRA_MOD_FREQ 23
82 #define LTRA_MOD_FULLCONTROL 26
83 #define LTRA_MOD_HALFCONTROL 27
84 #define LTRA_MOD_NOCONTROL 28
85 #define LTRA_MOD_PRINT 29
86 #define LTRA_MOD_NOPRINT 30
88 #define LTRA_MOD_STEPLIMIT 32
89 #define LTRA_MOD_NOSTEPLIMIT 33
90 #define LTRA_MOD_LININTERP 34
91 #define LTRA_MOD_QUADINTERP 35
92 #define LTRA_MOD_MIXEDINTERP 36
93 #define LTRA_MOD_RLC 37
94 #define LTRA_MOD_RC 38
95 #define LTRA_MOD_RG 39
96 #define LTRA_MOD_LC 40
97 #define LTRA_MOD_RL 41
98 #define LTRA_MOD_STLINEREL 42
99 #define LTRA_MOD_STLINEABS 43
100 #define LTRA_MOD_CHOPREL 44
101 #define LTRA_MOD_CHOPABS 45
102 #define LTRA_MOD_TRUNCNR 46
103 #define LTRA_MOD_TRUNCDONTCUT 47
114 static const char *
name() {
return "Lossy Transmission Line";}
152 void registerLIDs(
const std::vector<int> & intLIDVecRef,
153 const std::vector<int> & extLIDVecRef );
158 const std::vector< std::vector<int> > &
jacobianStamp()
const;
159 void registerJacLIDs(
const std::vector< std::vector<int> > & jacLIDVec );
214 std::vector<double>
v1;
215 std::vector<double>
v2;
217 std::vector<double>
i1;
218 std::vector<double>
i2;
343 int quadInterp_ (
double t,
double t1,
double t2,
double t3,
double& c1,
double& c2,
double& c3);
344 int linInterp_ (
double t,
double t1,
double t2,
double& c1,
double& c2);
345 double intlinfunc_ (
double lolimit,
double hilimit,
346 double lovalue,
double hivalue,
347 double t1,
double t2);
349 double otherlolimit,
double lovalue,
350 double hivalue,
double t1,
double t2);
352 double secondlolimit,
double thirdlolimit,
353 double lovalue,
double hivalue,
354 double t1,
double t2);
357 double& lf2,
double& lf3);
376 double & h1dashfirstcoeff,
377 double & h2firstcoeff,
378 double & h3dashfirstcoeff,
379 std::vector<double> & h1dashcoeffs,
380 std::vector<double> & h2coeffs,
381 std::vector<double> & h3dashcoeffs,
382 size_t listsize,
double cbyr,
double rclsqr,
double curtime,
383 const std::vector<double> & timelist,
int timeindex,
double reltol);
386 double & h1dashfirstcoeff,
double & h2firstcoeff,
double & h3dashfirstcoeff,
387 std::vector<double> & h1dashcoeffs, std::vector<double> & h2coeffs, std::vector<double> & h3dashcoeffs,
388 size_t listsize,
double T,
double alpha,
double beta,
double curtime,
389 const std::vector<double> & timelist,
int timeindex,
double reltol,
int *auxindexptr);
392 double x2,
double y2,
393 double x3,
double y3,
401 double SECONDDERIV_(
int i,
double a,
double b,
double c);
535 virtual bool updateState (
double * solVec,
double * staVec,
double * stoVec);
538 virtual bool loadDAEVectors (
double * solVec,
double * fVec,
double * qVec,
double * bVec,
double * storeLeadF,
double * storeLeadQ);
539 virtual bool loadDAEMatrices (N_LAS_Matrix & dFdx, N_LAS_Matrix & dQdx);