/* Multiloop_plate.c / OpenMOM / ch.5 */ #include #include #include #include "omm_datalib.h" int main(void) { const double fstart = 2.2e9; const double fstop = 3.8e9; const int fdiv = 40; const double L3 = 100e-3; const double C1 = 1.19 * L3; const double Cn = 0.87 * L3; const double h = 0.1 * L3; const double Lv = 0.058 * L3; const double Lh = 0.192 * L3; const double radius = 0.002 * L3; const double e = 3 * radius; const double feed = (C1 + Cn) / 16; const char title[] = "Plate-loop antenna"; const char fout[] = "Multiloop_plate.omm"; // initialize omm_init(); // title omm_title(title); // geometry // plate-loop const double a1 = Cn / 8; const double a2 = C1 / 8; const int div_corner = NINT(a2 - a1, e); const int div_edge = NINT(2 * a1, e); const double radius2 = e / 5; // corners omm_geometry_zrect(h, +a1, +a2, +a1, +a2, div_corner, div_corner); omm_radius(radius2); omm_geometry_zrect(h, +a1, +a2, -a1, -a2, div_corner, div_corner); omm_radius(radius2); omm_geometry_zrect(h, -a1, -a2, +a1, +a2, div_corner, div_corner); omm_radius(radius2); omm_geometry_zrect(h, -a1, -a2, -a1, -a2, div_corner, div_corner); omm_radius(radius2); // edges omm_geometry_zrect(h, -a1, +a1, +a1, +a2, div_edge, div_corner); omm_radius(radius2); omm_geometry_zrect(h, -a1, +a1, -a1, -a2, div_edge, div_corner); omm_radius(radius2); omm_geometry_zrect(h, -a1, -a2, -a1, +a1, div_corner, div_edge); omm_radius(radius2); omm_geometry_zrect(h, +a1, +a2, -a1, +a1, div_corner, div_edge); omm_radius(radius2); // feed omm_geometry_zline(0, e, feed, 0, 1); omm_feed(1, 0); omm_geometry_zline(e, Lv, feed, 0, NINT(Lv - e, e)); omm_geometry_yline(0, feed, Lv, feed, NINT(feed, e)); omm_geometry_xline(feed, 2 * feed - Lh, feed, Lv, NINT(Lh - feed, e)); omm_radiusall(1, radius); omm_z0(50); // ground omm_ground(); // frequency omm_frequency(fstart, fstop, fdiv); // frequency char. //omm_plotsmith(); //omm_plotzin(1, 0, 0, 0); //omm_plotyin(1, 0, 0, 0); omm_plotref(2, -20, 0, 4); // far1d field //omm_plotfar1d('X', 72, 0); //omm_far1dstyle(0); //omm_far1dcomponent(1, 0, 0); //omm_far1ddb(1); //omm_far1dscale(-30, +10, 4); // output omm_outdata(fout); return 0; }