57 rectline::rectline () : circuit (2) {
58 alpha = beta = fc_low = fc_high = 0.0;
64 if (!strcmp (Mat,
"Copper")) {
71 8.68341e-12 * T - 2.72120e-12;
75 1.11681e-12 * T + 4.23709e-11;
79 8.73888e-11 * T + 1.37016e-9;
83 7.06020e-11 * T - 3.51125e-9;
91 else if (!strcmp (Mat,
"StainlessSteel")) {
93 1.2902e-11 *
qucs::pow (T, 2.0) - 2.9186e-10 * T +4.9320e-7;
95 else if (!strcmp (Mat,
"Gold")) {
100 rho = 2e-12 *
qucs::pow (T, 2.0) - 8e-11 * T + 1e-9;
106 rho = 8e-11 * T - 1e-10;
154 nr_double_t er = getPropertyDouble (
"er");
155 nr_double_t mur = getPropertyDouble (
"mur");
156 nr_double_t tand = getPropertyDouble (
"tand");
157 nr_double_t a = getPropertyDouble (
"a");
158 nr_double_t b = getPropertyDouble (
"b");
164 nr_double_t ad, ac, rs;
167 if (frequency >= fc_high) {
169 "band (%g <= TE10 <= %g) or outside non propagative mode "
170 "<= %g\n", frequency, fc_low, fc_high, fc_low);
177 if (frequency >= fc_low) {
182 ad = (
sqr(k0) * tand) / (2.0 * beta);
186 (
cubic (a) * b * beta * k0 *
Z0);
190 zl = (k0 *
Z0) / beta;
203 nr_double_t
l = getPropertyDouble (
"L");
206 nr_double_t T = getPropertyDouble (
"Temp");
207 matrix
s = getMatrixS ();
208 matrix e =
eye (getSize ());
216 nr_double_t a = getPropertyDouble (
"a");
217 nr_double_t b = getPropertyDouble (
"b");
218 nr_double_t epsr = getPropertyDouble (
"er");
219 nr_double_t mur = getPropertyDouble (
"mur");
225 fc_low =
C0 / (2.0 * a *
c);
227 fc_high =
MIN (
C0 / (a * c),
C0 / (2.0 * b * c));
229 rho = getPropertyDouble (
"rho");
230 nr_double_t T = getPropertyDouble (
"Temp");
231 calcResistivity (getPropertyString (
"Material"),
kelvin (T));
235 setCharacteristic (
"Zl",
real (zl));
247 nr_double_t
l = getPropertyDouble (
"L");
250 calcPropagation (frequency);
274 setVoltageSources (0);
281 nr_double_t
l = getPropertyDouble (
"L");
284 calcPropagation (frequency);
296 nr_double_t
l = getPropertyDouble (
"L");
299 nr_double_t T = getPropertyDouble (
"Temp");
300 setMatrixN (4.0 *
kelvin (T) /
T0 *
real (getMatrixY ()));
316 PROP_RNG_STR4 (
"unspecified",
"Copper",
"StainlessSteel",
"Gold") },
std::complex< nr_double_t > nr_complex_t
#define MU0
magnetic constant of vacuum ( )
matrix real(matrix a)
Real part matrix.
#define T0
standard temperature
nr_complex_t coth(const nr_complex_t z)
Compute complex hyperbolic cotangent.
nr_complex_t pow(const nr_complex_t z, const nr_double_t d)
Compute power function with real exponent.
#define K
Absolute 0 in centigrade.
nr_complex_t cosh(const nr_complex_t z)
Compute complex hyperbolic cosine.
nr_complex_t sqr(const nr_complex_t z)
Square of complex number.
nr_complex_t sqrt(const nr_complex_t z)
Compute principal value of square root.
nr_complex_t cosech(const nr_complex_t z)
Compute complex argument hyperbolic cosec.
void calcResistivity(char *, nr_double_t)
#define M_PI
Archimedes' constant ( )
matrix transpose(matrix a)
Matrix transposition.
#define PROP_RNG_STR4(s1, s2, s3, s4)
void calcPropagation(nr_double_t)
void calcNoiseAC(nr_double_t)
#define MIN(x, y)
Minimum of x and y.
nr_complex_t sinh(const nr_complex_t z)
Compute complex hyperbolic sine.
void saveCharacteristics(nr_complex_t)
#define C0
speed of light in vacuum ( )
matrix eye(int rs, int cs)
Create identity matrix with specified number of rows and columns.
matrix conj(matrix a)
Conjugate complex matrix.
void logprint(int level, const char *format,...)
#define Z0
Wave impedance in vacuum ( )
#define PROP_NO_SUBSTRATE
void calcNoiseSP(nr_double_t)