036307-5-T USER MANUAL FOR FEMTETRA.F: A TETRAHEDRAL FINITE ELEMENT-BOUNDARY INTEGRAL (FE-BI) CODE Arik Brown Zhifang Li John L. Volakis Mission Research Corp. 147 John Sims Parkway Valparaiso, FL. 32580 Air Force Office of Scientific Research AFOSR/NM Boiling AFB, DC 20332-0001 December 1998 36307-5-T = RL-2500

PROJECT INFORMATION PROJECT TITLE: REPORT TITLE: Focused Application Software for Design of Ferrite Patch Antennas USER MANUAL FOR FEMTETRA.F: A TETRAHEDRAL FINITE ELEMENT-BOUNDARY INTEGRAL (FE-BI) CODE U-M REPORT No.: 036307-5-T CONTRACT START DATE: July 1997 END DATE: June 1999 DATE: December 1998 SPONSOR: S. McCool and K. Trott Mission Research Corp. 147 John Sims Parkway Valparaiso, FL. 32580 trott @ fwb.gulf.net Phone: 904-729-4494 Fax: 904-729-2443 Dr. Arje Nachman Air Force Office of Scientific Research AFOSR/NM Bolling AFB, DC 20332-0001 nachman @ afosr.af.mil SPONSOR CONTRACT No.: U-M PRINCIPAL INVESTIGATOR: CONTRIBUTORS TO THIS REPORT: SC-0022-97-001 (Air Force Prime Contract no. F49620-97-C-0022) John L. Volakis EECS Dept. University of Michigan 1301 Beal Ave Ann Arbor, MI 48109-2122 Phone: (313) 764-0500 FAX: (313) 747-2106 volakis @umich.edu http://www-personal.engin.umich.edu/-volakis/ Arik Brown, Zhifang Li and J.L. Volakis

User Manual for femtetra.f: A Tetrahedral Finite Element-Boundary Integral(FE-BI) Code Arik D. Brown Zhifang Li John L. Volakis University of Michigan Radiation Laboratory Department of Electrical Engineering and Computer Science 1301 Beal Ave. Ann Arbor, MI 48109-2122 December 15, 1998

Contents 1 Introduction 4 1.1 Code Description............................. 4 2 Mesher 6 2.1 Running the Automatic Mesher..................... 6 2.1.1 Rectangular Meshes....................... 6 2.1.2 Circular Meshes......................... 6 3 Running femtetra.f 9 3.1 Preprocessor............................... 9 3.1.1 Additional Key Information on Running the Preprocessor.. 9 3.2 Running femtetra.f............................ 10 3.2.1 Additonal Information for Running femtetra................ 11 4 Demonstration Examples 12 4.1 Rectangular Patch: Zin.......................... 12 4.1.1 Mesh Generation............................ 12 4.1.2 Preprocessor.................................15 4.1.3 Running the Code and Code Output...................16 4.2 Circular Patch: Backscattering......................... 16 4.2.1 Mesh Generation............................ 18 4.2.2 Preprocessor.............................. 20 4.2.3 Running the Code and Code Output.................. 21 4.3 Rectangular Ferrite Patch: Backscattering................... 23 4.3.1 Mesh Generation............................ 24 4.3.2 Preprocessor.............................. 26 4.3.3 Running the Code and Code Output.................. 26 2

List of Figures 1 Diagram of the procedure for running femtetra.f in conjunction with the automatic mesher........................... 5 2 Input file for meshrect.f......................... 6 3 Surface mesh for the sample input file in Figure 2............... 7 4 Description of input file in Figure 2..................... 7 5 Input file for meshcirc.f........................... 8 6 Surface mesh for the sample input file in Figure 5............... 8 7 Sample preprocessor file................................10 8 Rectangular patch geometry............................. 13 9 Input file inputmeshZin.................................13 10 Surface mesh for the rectangular patch..................... 14 11 Zin preprocessor file.............................. 15 12 Zin input file................................16 13 Zin output file............................... 17 14 Plot of Zin = Rn+jXi -................................... 17 15 Circular patch geometry.......................... 18 16 Input file to meshcirc.f.............................. 18 17 Surface mesh for circular patch...........................19 18 Circular patch preprocessor input file.................. 20 19 Circular patch input file.......................... 21 20 Backscattering output file......................... 22 21 Plot of ar.................................... 22 22 Rectangular patch geometry........................... 23 23 Input file inputmeshyang.............................. 24 24 Surface mesh for the rectangular patch..................... 25 25 Ferrite patch preprocessor file.......................... 26 26 Ferrite patch input file............................. 27 27 Backscattering output file......................... 28 28 Plot of.............................................. 29 3

1 Introduction 1.1 Code Description The program femtetra.f is written in Fortran77 and has been verified on Hewlett Packard(HP) and Sun workstations. The code has an internal preprocessor that uses a Universal file mesh(.unv) for input. The mesh can be generated using Ideas. The University of Michigan has developed an automatic mesher which can be used in conjunction with femtetra.f. The mesher allows the user to bypass generating a mesh manually and facilitates a simple and convenient interface between the mesher and femtetra.f. femtetra.f is used to analyze printed antennas on dielectric or anisotropic substrates. The code employs a hybrid Finite Element Method - Boundary Integral(FEBI) approach using an Electric Field Integral Equation(EFIE) formulation. The resulting FE-BI system of equations is solved iteratively using a Bi-Conjugate Gradient(BiCG) solver. An additional feature of the code is the Adaptive Integral Method(AIM), which is a fast integral method used specifically in the BI portion of the formulation for improved speed. Figure 1 gives an overview of the steps needed to run femtetra.f in conjunction with the automatic mesher. First, meshrect.f (rectangular geometries) or meshcirc.f (circular geometries) is run, to produce a Universal file. This Universal file is then given as input to femtetra.f which processes the file, and produces the necessary tetrahedral information and dimensioning information for the code. The code is then compiled using a make file. After compiling is completed, femtetra.f is then used to compute either scattering or radiation data. 4

Begin - -............ Automatic Mesher meshrect.f/meshcirc.f output. V. _... Universal File.unv | input femtetra.f preprocessor output v DIM.INC(dimensioning include file), Tetrahedral Table Files Use Makefile to compile: femtetra.f, tetraaim.f, inverse.f, CFFT2D.f femtetra. f output Scattering or Radiation Results Scattering or Radiation Results l Figure 1: Diagram of the procedure for running femtetra.f in conjunction with the automatic mesher. 5

0 1.4166667.425 3 2.4166667.425 12 8 1 1.08779 Figure 2: Input file for meshrect.f. 2 Mesher 2.1 Running the Automatic Mesher A Universal file is needed to run femtetra.f. The Universal file can be generated using the automatic mesher. Depending on whether the problem geometry is rectangular or circular, meshrect.f or meshcirc.f is the file needed for mesh generation. 2.1.1 Rectangular Meshes Figures 2 and 3 show a sample input file for meshrect.f, and the corresponding surface mesh. An explanation of each line of the sample file, inputrect, is shown in Figure 4. 2.1.2 Circular Meshes Figures 5 and 6 show a sample input file for meshcirc.f, and the corresponding surface mesh. The description of the file inputcirc is similar in structure to inputrect and will not be discussed.

4 3 2 1 0 -1 - ____ I ____ ____ ____ I - II III ____ - _ _ II 111111111 ii __ __ __ __ I __ I __ __ __ I __ I __ __ __ __ __ ___ ___ ___ ___ ___ I ___ ___ I ___ ___ I ___ ___ ___ I ___ _ _ _ II 11111 I I I ___ I I ___ I I I ___ ___ ___ I ___ I ___ I _ _I_ KKiKKiI I 7 _ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ I ____ ____ ____ ____ I I I I I I 0 1 2 3 4 5 6 Figure 3: Surface mesh for the sample input file in Figure 2. 0; linel, Specifies whether surface nodes are all substrate(l=yes, 0=no). 1; line2, Specifies whether patch or slot(l=patch, 0=slot)..4166667.425; line3, Specifies the element size(cm) in the x and y directions, respectively, between the antenna and cavity wall. 3 2; line4, Specifies the number of elements between the antenna and cavity wall in the x and y directions, respectively..4166667.425; line5, Specifies the element size(cm) in the x and y directions, of the antenna only. 12 8; line6, Specifies the number of antenna elements in the x and y directions, respectively. 1; line7, Specifies element type(l=tetras, 0=prisms). 1; line8, Specifies the number of substrate layers..08779; line9, Specifies the height of the substrate layer. Figure 4: Description of input file in Figure 2. 7

0 1.0825 8.082 5.0508 Figure 5: Input file for meshci'rc.f. 0.5 ~ < k- kQ -0.5 - -1 -0.5 0 0.5 1 Figure 6: Surface mesh for the sample input file in Figure 5. 8

3 Running femtetra.f 3.1 Preprocessor Before running ferntetra.f, it is necessary to process the Universal input file generated by the automatic inesher. When running the code initially, the user will be prompted with 3 menu options: 1. Run Preprocessor 2. Run Tetrahedral FEM-BI Code 3. Exit Code In order to process the mesh file, the user must choose option '1'. The user will then be prompted with a series of questions about the mesh geometry. Since the preprocessor prompts the user at each entry, the user can easily apply the following example to other mesh geometries(i.e. open cavity, circular patch, circular cavity, etc...) with a clear understanding of how the preprocessor works. Figure 7 shows a description of the input needed for the preprocessor. For this sample input file, it is assumed that the cavity is rectangular and that there is one pec patch on the aperture, and one substrate layer. 3.1.1 Additional Key Information on Running the Preprocessor There are several important things the user should be cognizant of when running the preprocessor in femtetra.f. Initially, the user should have a dummy DIM.INCfile in order to compile the code for the first time. See[l] for the structure of DIM.INC. In actuality, the user will be supplied with several demonstration runs which will include DIM.INC files that can be used to compile femtetra.f for the first time. In addition, if the user is modeling a ferrite material, the user should enter (1.0, 0.0) for the value of H/a. When running the preprocessor for a rectangular patch geometry, the user will need to first ascertain the maximum/minimum x-y coordinates of the patch, using either Ideas or the mesh viewer in Matlab, which is supplied with the automatic mesher. This is because the automatic mesher does not center the patch at the coordinates (0.0,0.0), thus the values for xmaxpatch, Xminpatch, ymaxpatch, and yminpatch can not be predetermined. This is not necessary for circular patches because the automatic mesher centers the patch at the coordinates (0.0,0.0) 9

meshinput.unv(user supplied) 1 1 1 xmaxpatch xmiripatch ymaxpatch yminpatch linel, Specify input mesh file name. line2, Specify if there is a patch (1=yes, (=no). line3, Specify cavity shape (1=rectangular, O=circular). line4, Specify number of pec patches. line4, Specify maximum x coordinate for the patch. line5, Specify minimum x coordinate for the patch. line4, Specify maximum y coordinate for the patch. line5, Specify minimum y coordinate for the patch. line6, Specify number of cavity layers. line7, Specify cr and /pr for each layer (in this case there is one substrate layer). 1 (Erreal rimag) (orjreal,rimag ) Figure 7: Sample preprocessor file. 3.2 Running femtetra.f There are 3 files separate from femtetra.f which are needed in order to run the code. The files are: * tetraaim.f * inverse.f * CFFT2D.f These files are included with the code. In order to compile femtetra.f and it's corresponding files, a make file is also included with the code. The name of this file is Makefile1. After compiling femtetra.f, the user will then be able to run the code. When running the code, the user will once again be prompted with 3 menu options: 1. Run Preprocessor 2. Run Tetrahedral FEM-BI Code 1When compiling the code on a Sun workstation, the options +E1 and +U77 should be omitted. 10

3. Exit Code The user should choose option '2' to generate the particular scattering or radiation information needed. Similar to the automatic mesher, and the preprocessor, when running femtetra.f the user will be prompted for the information needed for each line of input. In the next section, several demonstration examples are shown giving the user a chance to become familiar with the code. 3.2.1 Additonal Information for Running femtetra.f Running femtetra.f is straightforward, although an additional comment will be made regarding geometries that include a probe-fed patch. When running femtetra.f for a problem with a probe feed, the user will be prompted to specify the global node numbers for the corresponding probe edges within the FEM volume. The global node numbers can be found in two ways. The first approach is to view the mesh file in Ideas before running the code, and locate the node numbers for the probe feed edges. The secon(1 and easier approach is to view the surface mesh using Matlab via the automatic mesher. See[l] for more information on using the mesh viewing option in the automatic mesher package. The mesh viewer displays the global node numbers for the surface mesh on the bottom of the cavity. To obtain the global node number for the node directly above the corresponding node in the surface mesh, simply add the number of aperture nodes to the corresponding node number. For example, if the bottom of the probe has the global node number 10, and there are 250 aperture nodes, then the node directly above node 10 would be global node number 260. In this manner the global node numbers for the probe edge(s) can be found easily. 11

4 Demonstration Examples This section contains three different demonstration examples for femtetra.f. The examples will consist of the following: * Single layer rectangular cavity with a rectangular patch, input impedance(Zin). * Single layer circular cavity with a circular patch, backscatter. * Single layer rectangular ferrite cavity with a rectangular patch, backscatter. Each individual example will include the following items: * Input file for the automatic mesher. * Surface mesh figure. * Input file for the preprocessor in femtetra.f. * Input file for running femtetra.f. * Output data. These examples allow the user to become familiar with the procedure for running femtetra.f. 4.1 Rectangular Patch: Zin The rectangular patch shown in Figure 8 can be found in [2]. It consists of a rectangular patch residing in a cavity, with a single probe feed. The patch size is 5.0 cm x 3.4 cm and the cavity size is 7.5 cm x 5.1 cm. The substrate has a thickness of 0.08779 cm, er - 2.17, and a loss tangent of 0.0015. The probe is located at the coordinates (xp = 1.22cm, yp = 0.85cm). 4.1.1 Mesh Generation In order to generate the Zin for this geometry, the mesh must be generated. To accomplish this using the automatic mesher, the automatic mesher, the appropriate file to use is meshrect.f. The corresponding input file inputmeshZin is shown on page 13 with a description for each line of input. The surface mesh generated by the automatic mesher is shown in Figure 10. 12

Top View A probe. t: ';f ' 0 0 0 ff0 -;4 ' 00 X 0.:' 't0 t -X t 3.4cm I A F 5.1cm 4 - 5.0cm y 7.5cm Side View ~r=2.17 tan8= 0.0015 h=0.08779cm Figure 8: Rectangular patch geometry. 0 1.4166667.425 32.4166667.425 12 8 1 1.08779 Specifies that the surface substrate nodes are not all dielectric. Specifies a patch geometry. Size(cm) of the elements(x,y) between the patch and cavity wall. Number of elements in the x-y direction between the patch and cavity wall. Size(cm) of the elements(x,y) on the patch. Number of elements in the x-y direction on the patch. Specifies tetra elements. Specifies one substrate layer. Specifies the substrate height. Figure 9: Input file inputmeshZin. 13

........................ -....................._..............................................................................................................I................... - - - --........I — --....................j..........K - - --.............. /............................... 0 1 2 3 4 5 6 Figure 10: Surface mesh for the rectangular patch. 14

1 Zin.unv 1 1 1 5.41667 0.4166667 3.4 0.0 1 (2.17,-0.003255) (1.,0.) Preprocessor menu option. Name of Universal file(mesh). Specifies a patch geometry. Shape of cavity(l=rectangular). Specifies number of patches. Maximum x value for patch.2 Minimum x value for patch.2 Maximum y value for patch.2 Minimum y value for patch.2 Specifies number of material layers. (Erreai, rimag ) (U7rreal, I rimag )' Figure 11: Zin preprocessor file 4.1.2 Preprocessor Once the mesh has been created, it must then be processed by femtetra.f. The input file is shown on page 15 with a description for each line of input. Once the mesh has been processed, femtetra.f will automatically exit from the code. The user must then recompile femtetra.f using the Makefile. The preprocessor automatically creates the include file DIM.INC which contains the proper dimensioning. Thus the user does not have to change or adjust the dimensioning for the code at all. 2See Section 3.1.1. 15

2 3 1.8, 1.87, 9 2 Zin 1 101 348 0.03 1 6,6 21,42 1 0. 0 Option to run the code. Specifies output data desired(3-Radiation). Specifies frequency range: fstartlfstop, number of frequency points. Specifies radiation pattern, Zin, or gain(2=Zin). Output file name. Number of current probes. Global node #1 for current probe edge3. Global node #2 for current probe edge3. Specifies desired solver(0=Symmetric BiCG). Specifies tolerance. Option to implement AIM(l=yes)4. x-y integer threshold values for determining ZfBI and ZBI Size of FFT grid(NXFFT) and FFT pad(NXFFTP); NXFFTP=2*NXFFT5. Check to see if input data is correct to this point(1=yes). Specifies phase for probe feed(Assume unit amplitude). Specifies whether there are any ferrite layers(0=no). Figure 12: Zin input file. 4.1.3 Running the Code and Code Output After the mesh has been processed and femtetra.f has been recompiled, the code is then ready to run. Figure 12 shows the input file for the rectangular patch, and a description for each line of input. The ouput file Zin is shown in Figure 13. A plot of the file is shown in Figure 14. The first column in Figure 13 is frequency(GHz), the second column is the input resistance Ri, the third column is the input reactance Xin, the fouth column is the residual error of the iterative solver, the fifth column is the time it takes to solve for the time it takes to solve for the unknown electric fields, and the sixth column is the number of iterations needed for convergence. 4.2 Circular Patch: Backscattering The circular patch shown in Figure 15, can be found in [4]. It consists of a circular patch on an infinite dielectric substrate. The patch is modeled in a finite sized 3See Section 3.2.1. 4See [3]. 5After compiling, the user must look at the fileDIM.INC in order to ascertain the value needed for input for NXFFTP. This value should be set to the value of MAXFFTP in DIM.INC. 16

Freq(GHz) Rin 1.800 2.44997 1.840 23.52436 1.845 41.05225 1.850 82.92909 1.855 183.08553 1.856 196.88599 1.860 223.11853 1.865 111.11250 1.870 52.95052 1.911 3.46754 1.967.92698 2.022.46880 2.078.31412 2.133.25608 2.189.23824 2.244.25143 2.300.29810 Xin 29.70910 77.13712 96.10212 119.73116 106.96385 96.64947 -52.38531 -112.74718 -92.74758 -21.77493 -7.42587 -2.39746.37886 2.30123 3.85179 5.26132 6.68483 Res. Time(s) Iter..03 497.7800 794.03 517.1900 864.03 547.3000 628.03 441.6300 899.03 562.7600 625.01 517.1400 1012.03 440.4600 752.03 497.2300 1063.03 635.9600 884.03 618.9000 807.03 520.4500 667.03 458.2000 837.03 534.6700 663.03 456.6200 795.03 515.8199 657.02 454.0700 657.02 454.2800 641 Figure 13: Zin output file. Input Impedance, Zin=Rin+jXin E X 1.86 1.88 Frequency(GHz) Figure 14: Plot of Zi, = Rin + jXi. 17

r-: 2.33 h=-00787 cm Figure 15: Circular patch geometry. 0 Specifies that the surface substrate nodes are not all dielectric. 1 Specifies a patch geometry..175625 Size(cm) of the radial elements between the patch and cavity wall. 8 Number of elements in the radial direction between the patch and cavity wall..1625 Size(cm) of the radial elements on the patch. 4 Number of elements in the x-y direction on the patch. 1 Specifies tetra elements. 1 Specifies one substrate layer..0787 Specifies the substrate height. Figure 16: Input file to meshcirc.f. cavity, that is large enough to simulate the infinite substrate. The patch radius is 0.65cm, the substrate height is 0.0787cm, the distance from the cavity to the patch is 1.405cm, and the substrate has an 6r = 2.33. 4.2.1 Mesh Generation In order to calculate the backscattering for this geometry, the mesh must be generated. To accomplish this using the automatic mesher, the appropriate file to use is meshcirc.f. The corresponding input file inputmeshcircpatch is shown on page 18 with a description for each line of input. The surface mesh generated by the automatic mesher is shown in Figure 17. 18

2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 \ I~f... I —, I -2 -1 0 2 Figure 17: Surface mesh for circular patch. 19

1 circpatch.unv 1 0 2.005 1 0.0 0.0 0.65 1 (2.33,0.0) (1.,0.) Preprocessor menu option. Name of Universal file(mesh). Specifies a patch geometry. Shape of cavity(0=circular). Radius of the entire cavity. Specifies number of patches. x coordinate for the center of the patch. y coordinate for the center of the patch. Radius of the circular patch. Specifies number of material layers. (Erreal 7 rimag ) (,Urreal I lrimag ) Figure 18: Circular patch preprocessor input file. 4.2.2 Preprocessor Once the mesh has been created, it must then be processed by femtetra.f. The input file is shown in Figure 18. Once the mesh has been processed, femtetra.f will automatically exit from the code. The user must then recompile femtetra.f. The preprocessor automatically creates the include file DIM.INC which contains the proper dimensioning. Thus the user does not have to change or adjust the dimensioning for the code at all. 20

2 Option to run the code. 2 Specifies output data desired(2=Backscatter). 7., 9., 1 Specifies frequency range: fstart,fstop, number of frequency points. rcscirc Output file name. 0 Option to normalize the Radar Cross Section(RCS). 0 Choose E field polarization angle, a (degrees) (0=0 - pol). 2 Specifies cut(2=0). 180. Fixed start observation angle q(degrees). 180. Fixed start observation angle q(degrees). 60. Start observation angle 0(degrees). 60. Start observation angle 0(degrees). 1 Number of observation points. 1 Number of fixed observation points. 0 Specifies desired solver(0=Symmetric BiCG)..03 Specifies tolerance. 1 Option to implement AIM(1=yes)6. 6,6 x-y integer threshold values for determining ZfaI and ZBI 36,72 Size of FFT grid(NXFFT) and FFT pad(NXFFTP); NXFFTP=2*NXFFT7. 1 Check to see if input data is correct to this point(l=yes). 0 Specifies whether there are any ferrite layers(0=no). Figure 19: Circular patch input file. 4.2.3 Running the Code and Code Output After the mesh has been processed and fe7ntetra.f has been recompiled, the code is then ready to run. On page 21 is the input file for the circular patch, and a description for each line of input. The ouput file rcscirc is shown in Figure 20. A plot of the file is shown in Figure 21. The first column in Figure 20 is the backscatter angle 0 (degrees), the second column is the backscatter angle 0 (degrees), the third column is the frequency(GHz), the fourth column is a (dBsm), the fifth column is ao0 (dBsm), the sixth column is agO (dBsm), the seventh column is the residual error, the eighth column is the time(sec.) it takes to solve for the unknown electric fields, and the ninth column is the number of iterations needed for convergence. 6See [3]. 7After compiling, the user must look at the fileDIM.INC in order to ascertain the value needed for input for NXFFTP. This value should be set to the value of MAXFFTP in DIM.INC. 21

P 0 Freq(GHz) ace( aOee Res. Time(s) 180.000 60.000 7.000 -49.514 -80.000 -49.514.0210 1060.87 180.000 60.000 7.250 -38.948 -80.000 -38.948.0279 1122.71 180.000 60.000 7.500 -26.992 -98.964 -26.992.0263 1081.23 180.000 60.000 7.750 -31.237 -103.721 -31.237.0255 1071.01 180.000 60.000 8.000 -35.036 -107.449 -35.036.0246 1109.24 180.000 60.000 8.250 -37.151 -108.184 -37.151.0278 1074.67 180.000 60.000 8.500 -38.670 -108.764 -38.670.0284 1047.25 180.000 60.000 8.750 -40.019 -108.835 -40.019.0290 1046.36 180.000 60.000 9.000 -41.366 -108.713 -41.366.0267 1046.63 Iter. 156 225 179 166 210 171 141 140 140 Figure 20: Backscattering output file. I- u I Il I I I I I l -20 — 30 E -40 0 /) O -5 0 0 0 0 0 0 -60 -70 — l I 7 7.2 7.4 7.6 7.8 8 8.2 8.4 8.6 8.8 Freq.(GHz) Figure 21: Plot of eoo. 9 22

Top View A 0.4cm., i fl [. I I. 1.6cm 0.55cm 1.75cm Side View ~r=12.8 47cMs=1780 G Ho=360 Oe y-bias h=0.06cm Figure 22: Rectangular patch geometry. 4.3 Rectangular Ferrite Patch: Backscattering The rectangular patch shown in Figure 22 can be found in [5]. It consists of a rectangular patch residing on an infinite y-biased ferrite substrate. In order to model this a finite cavity was used. The patch size is 0.55 cm x 0.4 cm and the cavity size is 1.75 cm x 1.6 cm. The substrate has a thickness of 0.06 cm, Er = 12.8, saturation magnetization(47rM5) = 1780 G and a y-bias magnetic field(H,) = 360 Oe. 23

0 1.06.06 10 10.06875.06667 86 1 1.06 Specifies that the surface substrate nodes are not all dielectric. Specifies a patch geometry. Size(cm) of the elements(x,y) between the patch and cavity wall. Number of elements in the x-y direction between the patch and cavity wall. Size(cm) of the elements(x,y) on the patch. Number of elements in the x-y direction on the patch. Specifies tetra elements. Specifies one substrate layer. Specifies the substrate height. Figure 23: Input file inputmeshyang. 4.3.1 Mesh Generation In order to generate the backscattering data for this geometry, the mesh must be generated. To accomplish this using the automatic mesher, the appropriate file to use is meshrect.f. The corresponding input file inputmeshyang is shown in Figure 23 with a description for each line of input. The surface mesh generated by the automatic mesher is shown in Figure 24. 24

1A4 1.2 -0.4 0.2....................................... 0........ 0... 0.5..1. 1.5 Figure.............. 24..Surface.mesh for. the. rectangular...patch..... 25

1 yang.unv 1 1 1 1.03 0.48 0.88002 0.48 1 (12.8,0.) (1.,0.) Preprocessor menu option. Name of Universal file(mesh). Specifies a patch geometry. Shape of cavity(l=rectangular). Specifies number of patches. Maximum x value for patch8. Minimum x value for patch.8 Maximum y value for patch.8 Minimum y value for patch.8 Specifies number of material layers. (Erreal, E rimag ) ( irreal, rimag )' Figure 25: Ferrite patch preprocessor file 4.3.2 Preprocessor Once the mesh has been created, it must then be processed by femtetra.f. The input file is shown on page 26 with a description for each line of input. Once the mesh has been processed, femtetra.f will automatically exit from the code. The user must then recompile femtetra.f with the proper dimensioning. The preprocessor automatically creates the include file DIM.INC which contains the proper dimensioning. Thus the user does not have to change or adjust the dimensioning for the code at all. 8See Section 3.1.1. 26

4.3.3 Running the Code and Code Output After the mesh has been processed and femtetra.f has been recompiled, the code is then ready to run. On page 27 is the input file for the rectangular patch, and a description for each line of input. The ouput file yangferrircsy is shown in Figure 27 for the y-biased patch. A plot of the file is shown in Figure 28. Both biased and unbiased(47rAMs = 0 G and Ho = 0 Oe) data are shown in the plot. 2 Option to run the code. 2 Specifies output data desired(2=Backscatter). 6.4,20.,35 Specifies frequency range: fstart fstop, number of frequency points. rcscirc Output file name. 0 Option to normalize the Radar Cross Section(RCS). 0 Choose E field polarization angle, a (degrees) (0=0 - pol). 2 Specifies cut(2=0). 45. Fixed start observation angle 0(degrees). 45. Fixed start observation angle q(degrees). 60. Start observation angle 0(degrees). 60. Start observation angle 0(degrees). 1 Number of observation points. 1 Number of fixed observation points. 0 Specifies desired solver(0=Symmetric BiCG)..03 Specifies tolerance. 1 Option to implement AIM(1=yes)9. 6,6 x-y integer threshold values for determining Zfji and ZBIJ. 47,94 Size of FFT grid(NXFFT) and FFT pad(NXFFTP); NXFFTP=2*NXFFT10. 1 Check to see if input data is correct to this point(l=yes). 1 Specifies whether there are any ferrite layers(1=yes). 1 Specifies ferrite or isotropic for each layer(l=ferrite). 1780. 47rM, value. 360. Ho value. 0 Specifies whether bias is non-uniform or not(0=no). 0. Linewidth(AH) value. 1 Direction of bias(1 = y-bias). Figure 26: Ferrite patch input file. 9See [3]. 10After compiling, the user must look at the fileDIM.INC in order to ascertain the value needed for input for NXFFTP. This value should be set to the value of MAXFFTP in DIM.INC. 27

45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 45.000 0 Freq(GHz) a 60.000 6.400 -55.004 60.000 6.800 -47.834 60.000 7.200 -52.078 60.000 7.600 -66.251 60.000 8.000 -63.838 60.000 8.400 -61.424 60.000 8.800 -59.671 60.000 9.200 -57.619 60.000 9.600 -53.928 60.000 10.000 -43.544 60.000 10.400 -47.287 60.000 10.800 -53.797 60.000 11.200 -54.914 60.000 11.600 -53.402 60.000 12.000 -45.721 60.000 12.400 -62.062 60.000 12.800 -52.454 60.000 13.200 -37.413 60.000 13.600 -62.659 60.000 14.000 -57.752 60.000 14.400 -55.497 60.000 14.800 -54.167 60.000 15.200 -53.253 60.000 15.600 -52.574 60.000 16.000 -52.068 60.000 16.400 -52.393 60.000 16.800 -49.088 60.000 17.200 -45.704 60.000 17.600 -43.158 60.000 18.000 -56.564 60.000 18.400 -57.988 60.000 18.800 -55.211 60.000 19.200 -44.825 60.000 19.600 -42.380 60.000 20.000 -49.478 -63.503 -55.703 -56.610 -66.377 -69.537 -69.846 -68.418 -65.654 -61.069 -50.302 -54.831 -63.756 -68.964 -72.828 -67.884 -71.537 -65.255 -44.516 -64.600 -69.638 -72.225 -73.392 -73.352 -72.129 -69.457 -61.862 -68.792 -57.832 -49.604 -60.900 -66.222 -72.497 -54.051 -54.069 -59.978 ee00 Res. Tiime(sec.) Iter. -55.665 0.0263 5050.96 420 -48.609 0.0281 4020.92 286 -53.964 0.0212 4667.75 389 -81.703 0.0292 4165.59 299 -65.200 0.0284 3652.52 204 -62.099 0.0294 3799.83 207 -60.293 0.0297 3595.98 198 -58.362 0.0279 4244.96 275 -54.861 0.0291 5104.06 414 -44.572 0.0284 4453.91 300 -48.128 0.0286 4013.00 244 -54.259 0.0295 3925.36 234 -55.088 0.0247 3755.71 220 -53.451 0.0288 4204.11 308 -45.748 0.0287 4375.55 337 -62.582 0.0288 4868.86 414 -52.688 0.0225 4774.47 397 -38.354 0.0278 5583.75 525 -67.090 0.0285 3913.35 242 -58.043 0.0208 3861.77 225 -55.590 0.0296 3933.65 232 -54.219 0.0292 3913.48 229 -53.296 0.0287 3898.74 230 -52.623 0.0224 3944.39 255 -52.148 0.0295 4825.23 412 -52.914 0.0262 4337.27 328 -49.135 0.0251 4111.01 279 -45.979 0.0243 4143.86 289 -44.275 0.0275 5153.78 450 -58.559 0.0291 4267.26 300 -58.694 0.0276 4555.44 335 -55.293 0.0276 4514.57 345 -45.377 0.0272 5622.29 531 -42.685 0.0249 6569.80 713 -49.884 0.0259 4592.91 340 Figure 27: Backscattering output file. The first column in Figure 27 is the backscatter angle 0 (degrees), the second column is the backscatter angle 0 (degrees), the third column is the frequency(GHz), the fourth column is a (dBsm), the fifth column is oHo (dBsm), the sixth column is Osq (dBsm), the seventh column is the residual error, the eighth column is the time(sec.) it takes to solve for the unknown electric fields, and the ninth column is the number of iterations needed for convergence. 28

Frequency(GHz) Figure 28: Plot of aOo. 29

References [1] A. Brown, Z. Li and J. Volakis, "Theory, Mesher and Users Manual for a Ferrite Finite Element-Boundary Integral Tetrahedral Code," University of Michigan Radiation Laboratory, Department of Electrical Engineering and Computer Science, Ann Arbor, MI, 1998 [2] J. Jin and J.L. Volakis,"A hybrid finite element method for scattering and radiation by inicrostrip patch antennas and arrays residing in a cavity," IEEE Trans. Antennas Propagat., vol. 39, no. 11, pp.1598-1604, 1991. [3] T. Eibert and J.L.Volakis,"Fast Spectral Domain Method for Hybrid Finite Element - Boundary Integral Modeling of Doubly Periodic Structures," University of Michigan Report #375458-3-T, Ann Arbor, MI, 1998 [4] J.L.Volakis, J. Gong and A. Alexanian, "Electromagnetic scattering from microstrip patch antennas and spirals residing in a cavity," Electromagnetics, vol. 14, no. 1, pp.63-85, 1994. [5] H.Y. Yang, J.A. Castaneda, and N.G. Alexopoulos,"The RCS of a microstrip patch on an arbitrarily biased ferrite substrate," IEEE Trans. Antennas Propagat., vol. AP-41, no. 12, pp. 1610-1614, 1993. 30