void mutual::calcSP (nr_double_t frequency) {
#if 0
    setMatrixS (ytos (calcMatrixY (frequency)));
#else
    nr_double_t l1 = getPropertyDouble ("L1");
    nr_double_t l2 = getPropertyDouble ("L2");
    nr_double_t k = getPropertyDouble ("k");
    nr_double_t o = 2 * M_PI * frequency;
    nr_double_t a = k * k - 1;
    nr_complex_t d = rect (o * o * l1 * l2 * a / 2 / z0 + 2 * z0, o * (l1 + l2));
    nr_complex_t r;
    r = rect (2 * z0, o * l2) / d;
    setS (NODE_1, NODE_4, r);
    setS (NODE_4, NODE_1, r);
    r = 1.0 - r;
    setS (NODE_1, NODE_1, r);
    setS (NODE_4, NODE_4, r);
    r = rect (2 * z0, o * l1) / d;
    setS (NODE_2, NODE_3, r);
    setS (NODE_3, NODE_2, r);
    r = 1.0 - r;
    setS (NODE_2, NODE_2, r);
    setS (NODE_3, NODE_3, r);
    r = rect (0, o * k * sqrt (l1 * l2)) / d;
    setS (NODE_1, NODE_2, r);
    setS (NODE_2, NODE_1, r);
    setS (NODE_3, NODE_4, r);
    setS (NODE_4, NODE_3, r);
    r = -r;
    setS (NODE_1, NODE_3, r);
    setS (NODE_3, NODE_1, r);
    setS (NODE_2, NODE_4, r);
    setS (NODE_4, NODE_2, r);
#endif
}
Example #2
0
/*! Compute S parameters.
 *! Reuse computed Y matrix.
 */
void bondwire::calcSP (const nr_double_t frequency) {
  setMatrixS (ytos (calcMatrixY (frequency)));
}
Example #3
0
void msmbend::calcSP (nr_double_t frequency) {
  setMatrixS (ztos (calcMatrixZ (frequency)));
}
Example #4
0
void mutual2::calcSP (nr_double_t frequency) {
  setMatrixS (ytos (calcMatrixY (frequency)));
}
Example #5
0
void cpwgap::calcSP (nr_double_t frequency) {
  setMatrixS (ytos (calcMatrixY (frequency)));
}
Example #6
0
void mscross::calcSP (nr_double_t frequency) {
  setMatrixS (ytos (calcMatrixY (frequency)));
}