36 mscross::mscross () : circuit (6) {
77 nr_double_t er = subst->getPropertyDouble (
"er");
78 nr_double_t
h = subst->getPropertyDouble (
"h");
79 nr_double_t
t = subst->getPropertyDouble (
"t");
82 nr_double_t Zl1, Er1, Zl2, Er2;
83 nr_double_t ZlEff, ErEff, WEff;
94 nr_double_t W1h = W1 /
h;
95 nr_double_t W2h = W2 /
h;
97 cubic (W2h) + 74 * W2h + 130;
98 return 1e-12 * W1 * (0.25 * X *
qucs::pow (W1h, -1.0 / 3.0) - 60 +
99 1 / W2h / 2 - 0.375 * W1h * (1 - W2h));
103 nr_double_t W1h = W1 /
h;
104 nr_double_t W2h = W2 /
h;
105 nr_double_t Y = 165.6 * W2h + 31.2 *
qucs::sqrt (W2h) - 11.8 *
sqr (W2h);
106 return 1e-9 * h * (Y * W1h - 32 * W2h + 3) *
qucs::pow (W1h, -1.5);
115 nr_double_t
h = subst->getPropertyDouble (
"h");
116 nr_double_t W1h = (W1 + W3) / 2 / h;
117 nr_double_t W2h = (W2 + W4) / 2 / h;
118 nr_double_t C1, C2, C3, C4, L1, L2, L3, L4, L5;
121 C1 =
calcCap (W1, h, (W2 + W4) / 2);
122 C2 =
calcCap (W2, h, (W1 + W3) / 2);
123 C3 =
calcCap (W3, h, (W4 + W2) / 2);
124 C4 =
calcCap (W4, h, (W3 + W1) / 2);
126 L1 =
calcInd (W1, h, (W2 + W4) / 2);
127 L2 =
calcInd (W2, h, (W1 + W3) / 2);
128 L3 =
calcInd (W3, h, (W4 + W2) / 2);
129 L4 =
calcInd (W4, h, (W3 + W1) / 2);
131 L5 = 1e-9 * h * (5 * W2h *
qucs::cos (
M_PI / 2 * (1.5 - W1h)) -
132 (1 + 7 / W1h ) / W2h - 337.5);
144 nr_double_t o = 2 *
M_PI * f;
std::complex< nr_double_t > nr_complex_t
matrix ytos(matrix y, qucs::vector z0)
Admittance matrix to scattering parameters.
nr_double_t getPropertyDouble(const char *)
nr_complex_t pow(const nr_complex_t z, const nr_double_t d)
Compute power function with real exponent.
nr_complex_t cos(const nr_complex_t z)
Compute complex cosine.
qucs::matrix calcMatrixY(nr_double_t)
substrate * getSubstrate(void)
void setVoltageSources(int)
nr_double_t capCorrection(nr_double_t, nr_double_t)
nr_double_t calcInd(nr_double_t, nr_double_t, nr_double_t)
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.
void initSP(void)
placehoder for S-Parameter initialisation function
nr_complex_t log10(const nr_complex_t z)
Compute principal value of decimal logarithm of z.
#define M_PI
Archimedes' constant ( )
static char * createInternal(const char *, const char *)
void allocMatrixMNA(void)
void setNode(int, const char *, int intern=0)
void voltageSource(int, int, int, nr_double_t value=0.0)
static void analyseQuasiStatic(nr_double_t, nr_double_t, nr_double_t, nr_double_t, char *, nr_double_t &, nr_double_t &, nr_double_t &)
static void analyseDispersion(nr_double_t, nr_double_t, nr_double_t, nr_double_t, nr_double_t, nr_double_t, char *, nr_double_t &, nr_double_t &)
char * getPropertyString(const char *)
nr_double_t calcCap(nr_double_t, nr_double_t, nr_double_t)