32 circulator::circulator () :
circuit (3) {
34 setVoltageSources (3);
41 nr_double_t r1 = (
z0 - z1) / (
z0 + z1);
42 nr_double_t r2 = (
z0 - z2) / (
z0 + z2);
43 nr_double_t r3 = (
z0 - z3) / (
z0 + z3);
44 nr_double_t d = 1 - r1 * r2 * r3;
49 (z2 +
z0) * r3 * (1 - r1 * r1) / d);
51 (z3 +
z0) * r1 * (1 - r2 * r2) / d);
53 (z1 +
z0) * r2 * (1 - r3 * r3) / d);
55 (z1 +
z0) * (1 - r2 * r2) / d);
57 (z3 +
z0) * (1 - r1 * r1) / d);
59 (z2 +
z0) * (1 - r3 * r3) / d);
66 nr_double_t r1 = (
z0 - z1) / (
z0 + z1);
67 nr_double_t r2 = (
z0 - z2) / (
z0 + z2);
68 nr_double_t r3 = (
z0 - z3) / (
z0 + z3);
69 nr_double_t d = 1 - r1 * r2 * r3;
71 nr_double_t s11 = (r2 * r3 - r1) / d;
72 nr_double_t s22 = (r1 * r3 - r2) / d;
73 nr_double_t s33 = (r1 * r2 - r3) / d;
74 nr_double_t s12 =
sqrt (z2/z1) * (z1+
z0) / (z2+
z0) * r3 * (1-r1*r1) / d;
75 nr_double_t s23 =
sqrt (z3/z2) * (z2+
z0) / (z3+
z0) * r1 * (1-r2*r2) / d;
76 nr_double_t s31 =
sqrt (z1/z3) * (z3+
z0) / (z1+
z0) * r2 * (1-r3*r3) / d;
77 nr_double_t s21 =
sqrt (z1/z2) * (z2+
z0) / (z1+
z0) * (1-r2*r2) / d;
78 nr_double_t s13 =
sqrt (z3/z1) * (z1+
z0) / (z3+
z0) * (1-r1*r1) / d;
79 nr_double_t s32 =
sqrt (z2/z3) * (z3+
z0) / (z2+
z0) * (1-r3*r3) / d;