036307'-T THEORY, MESHER AND USERS MANUAL FOR A FERRITE FINITE ELEMENT-BOUNDARY INTEGRAL TETRAHEDRAL 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 Bolling AFB, DC 20332-0001 May 1998 36307-3-T = RL-2504

PROJECT INFORMATION PROJECT TITLE: REPORT TITLE: U-M REPORT No.: Focused Application Software for Desing of Ferrite Patch Antennas THEORY, MESHER AND USERS MANUAL FOR A FERRITE FINITE ELEMENT-BOUNDARY INTEGRAL TETRAHEDRAL CODE 036307-2-T CONTRACT START DATE: END DATE: July 1998 June 30, 1998 (June 1999 with Option ) DATE: May 1998 SPONSOR: S. McCool, L. Kempel and K. Trott Mission Research Corp. 147 John Sims Parkway Valparaiso, FL. 32580 l.kempel @ieee.org 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: 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 CONTRIBUTORS TO THIS REPORT:

1 Introduction This manual describes a tetrahedral FE-BI fortran code for solving electromagnetic radiation and scattering problems from a cavity. In addtion, this manual also includes a description of the preprocessing tools used to create the input data files for the tetrahedral program, along with a description of the input file contents. The code is capable of modeling anisotropic media in addition to isotropic materials. This code was originally developed by Dr. Jian Gong. Due to the modularity of the code, some of the basic subroutines used in the original code have been kept, while various other subroutines have been modified, and many new subroutines have been added. Two important features which this code posseses are: * 3 different types of solvers 1. Symmetric BiConjugate Gradient(BiCG) 2. Unsymmetric BiCG 3. Generalized Minimal Residual(GMRES) * Capability of modeling anisotropic substrate materials(i.e. ferromagnetic media) This manual is broken into several sections. First, the formulation for the FE-BI system will be presented. Second, a description of the automatic mesh generator and it's capabilities will be given. Third, a sample input file will be shown to demonstrate how to operate the mesh preprocessor which is used on the universal file produced by the mesher. Next, an in depth description of the program input files will be given. Last, another sample file will be shown which shows how to run the FE-BI tetrahedral code. Figure 1, shows a flowchart which gives an overall view of how the program interacts with the mesher and preprocessor. In the future, the mesher will produce the input files automatically, thus eliminating the need for the preprocessor. This will be easier for the user. 2 Formulation The geometry to be considered, (see Figure 2), consists of a patch situated in a rectangular cavity. The presence of the cavity eliminates radiation loss via surface waves, and does not affect the radiation pattern provided the cavity perimeter is placed at some small distance from the patch edges. To obtain the unknown field, in the context of FEM, the variational equation 8F(E)= O (1) 2

Geometry Specifications Automatic Mesh Generator Universal File / Preprocessor preprocmod.f ~r Input Files FE-BI Tetrahedral Program fematetra.f Data Results Figure 1: Flowchart for Data Generation. 3

z x y E XH Patch Antenna X Ferrite Substrate Figure 2: Geometry for a patch antenna on an anisotropic substrate. is solved, where F(E) = 2/ [.(V xE) (V x E)-k.E.E dV + J f [jkoZoJi.E - Mint. (V x E)]dV +jkoZo, (E x H).dS (2) where V denotes the cavity volume, S is the cavity aperture, E and A. are the relative permittivity and permeability tensors of the ferrite substrate, Jint and Mint are internal electric and magnetic sources due to the antenna feeds, and the last term in (2) is the BI term. From (3), we can obtain a discrete system to solve for the solution of the fields interior to and on the aperture of the antenna cavity. 2.1 Finite Element Tetrahedral Formulation This section will show how to produce the element matrices {A'} and {Be} where A' -!ffVr-1 * (V x E) * (V x E)dV and Be = -fffvk2(r E) * EdV using surface area normal vectors. We start by giving the tetrahedron geometry(Figure 3), along with the corresponding edge definitions: edge i i i2 1 1 2 2 1 3 3 4 1 4 2 3 5 4 2 6 4 3 4

Element e 4 ( 5e 1 4 2 Figure 3: Tetrahedral Element For each tetrahedral element, the electric field is represented by 6 Ee E We (3) i=l where the electric field in each element(Ee) is represented by a linear combination of the field values at each element edge. Ee is a constant scalar value, and We is a Whitney vector element with the form We Lil VL2 - L2VLil. We begin by writing the equation for Lm which is Am Lm = 3 (r- rk), m =1,..., 4; k: m (4) where Am = s bi x bj. In the preceding equation, m=1,...4, i1,...,6, j= 1,...,6, i:j, s = sgn((b1 x b2) ' (b3)), and bi is an edge vector which can be defined as ri2- ri. I and j represent edges which are opposite node m, therefore Am is not unique for each node value m. In equation 4, Lm is represented as a ratio of volumes, and using the relation Vm = Am (r- rk), m = 1,..., 4; k: m (5) Equation 5 can be substituted into equation 4 to obtain Lm Vm m= 1,...,4 (6) 5

Since Ve = 4=1i Vjm, it is obvious that the value of Lm is 1 at node m, but 0 at any other node: to m. With Lm clearly defined, the only expressions needed to complete the construction of the element matrices are Am VLm A m=1,..., 4 (7) 3Ve' 3 Ail x Ai2 = Vebj, i =1,...,6;j 1,...,6 (8) The correct form for the {A'} matrix is (Ae} - b b6 (7i 1 b6) -b5s (r1 * b6) b4 (7-1.b6) b3 (7r 1 b6) -b2 * (o 1 b6) bl (77 b6) b5 (alr b5) -b4 * (r b5) -b3 (r b5) b2 * (.r * b) -bi (r7Z b5) e1 b4) b3 (tr - ' b4) -b2. (Orl b4) -b2.(r b4) 9) 9ve. ( 1 b3) -b2. (-. b3) bli (-r b3) b2 * (Tr * b2) -bi (-r b2) b * (r. bi) To evaluate the {Be} matrix, the integral below Be =S f f f [ LilLjl (. Ai2) Aj3 -LilLj2 (.r Ai2).Aj - Li2Ljl (r- Ai,) Aj + Li2Lj2 (- Ai) Ajl]dV (10) must be solved for each matrix entry. Two useful integrals for solving the integral in equation 10 are ///LiLjdV = (11) 2 rr Ve JJJLidV=2y (12) Because the resulting matrix expressions are rather complicated, a simple matrix formula for {Be} is not shown. 3 Automatic Mesh Generator This section describes a complete 2-D and 3-D mesher package for antenna patches or slots. All codes are written in FORTRAN 77. There are several great features for this mesher package: * The meshers can mesh patch or slot antennas of rectangular, circular, or log-periodic geometry; 6

* The mesh is terminated by either boundary integral (BI) or artificial absorber (AA) truncation; * For BI truncation, non-uniform surface mesh is available of rectangular or circular geometry (log-periodic is intrinsically non-uniform); * For AA truncation, cavity or microstrip configuration are both available; while for BI truncation only cavity configuration is available; * In meshing the 3-D structure, either prismatic or tetrahedral elements can be chosen; * The 3-D mesher is additionally capable of meshing non-planar platforms for circular antennas with BI termination; * Multiple layers of substrates and/or superstrates can be dealt with; * Multiple probe feeds coinciding with edges can be specified within the mesher. There are two steps in generating a volume mesh from user-defined geometry. First, a 2-D surface mesher is created from user-supplied geometric data. The output file of this mesh - 'SurfMesh' is used by the 3-D volume mesher, which grows the surface mesh to the normal of the platform and creates a 3-D volume mesh consisting of either prismatic or tetrahedral elements according to user's choice. The user can also verify the correctness of meshes by using powerful viewing tools. The 2-D mesh can be displayed by either MatLab or some other viewing tool. The 3-D mesh can be viewed by I-DEAS since a universal file is generated within the mesher. Also, the user can choose a non-uniform mesh for rectangular or circular antennas with BI termination, where the antenna and cavity are meshed with two different element sizes. The detailed usage of the package along with examples will be illustrated in the following sections. 7

3.1 Mesh Termination Options There are two choices for the user as to the mesh termination schemes. One is boundary integral (BI) and the other is artificial absorber (AA). For AA truncation, the FEM domain is surrounded by a PEC conducting shell. The region between the antenna cavity and the shell consists of an inner air region and an outer absorbing region. The total air/absorber thickness is usually 0.3A0, 0.15Ao for air and 0.15Ao for absorber, respectively. The permittivity and permeability of the absorber material are identical, usually 1 - j2.7. For BI truncation, although there is no absorber or air region as in AA, BI provides an accurate modeling of conformal antennas, while AA is only approximate. In addition, there are two kinds of configurations available for AA. One is cavity-backed, the other is microstrip. For BI, only one configuration - cavity-backed is available. In Figure 1, a summary of the two mesh termination options are listed. Modeling of the two configurations with BI and AA terminations: (Computation space is circled with dashed lines) Figure 4: Mesh truncation schemes 8

3.2 The 2-D Structured Surface Mesher Generating a 2-D surface mesh from user-supplied geometric information is the first step to use this package. Before doing this, the user must have the following files ready in the same directory as is the mesher code 'SurfMesher.f': Plot.aux which contains the statement axis('equal') in its first line; fema.dml which contains the parameter statements for memory allocation; fema.dm2 which contains parament statement for circular antennas; SurfMesher.f which is the 2-D mesher code. We also need matlab files Setup.m, Mesh.m, GloNod.m, and LocNod.m, etc. in the same directory for future mesh display via MatLab. 3.2.1 Running the surface mesher The steps for running the 2-D surface mesher are as the following: 1. Adjust the dimension parameters 'NdmTri', 'NdmSEd', and 'NdmSNo' in the file 'fema.dml'. The meanings of them are: maximum # of triangles, edges, and nodes, respectively, in the final surface mesh.(Tip: estimate NdmTri first, then set the values of NdmSEd and NdmSNo as about 1.5 times the value of NdmTri.) 2. Create the input file 'Surfin'. The 1st line of the 'SurfIn' file is as the following: Line#1: I I I - 1 = Boundary Integral (BI), 0 = Artificial Absorber (AA) Rea 1 = Log-periodic, 2 = Circular, 3 = Rectangular. Rea 1 = Printed, 0 = Slot I: Integer Line #2-4 depend on the entries of line #1. We will give detailed example later. 3. Compile the mesher 'SurfMesher.f', which was written in FORTRAN 77: f77 SurfMesher.f -o SurfMesher. e 4. Run the mesher by typing: SurfMesher.e and then hit return. Note: if the code cannot run, first check the input file; if the input file is OK, then check the file 'fema.dml' and make sure the 3 parameters in step 1 are large enough. Make changes if necessary and recompile the code (i.e. redo step 3) before rerun the code again. Several files will be created after these procedures. Among them 'SurfMesh' is for the 3-D mesher to generate a volume mesh, and all the other files generated 'MeshDs', 'Attr', 'AngInt', 'AntEdg', 'CavEdg', 'SrfEdg', and 'Setup.m'(this m file exists before running and is updated after running) is for mesh display via MatLab. 9

3.2.2 Non-uniform mesh for patches with BI termination A great feature of the 2-D structured mesher is its capability to do the non-uniform meshing for rectangular and circular patch antennas with BI termination. With this new feature, the user is able to mesh the antenna part and the part between antenna and cavity wall with different element sizes. This provides more flexibility and accuracy for the task. For example, when dealing with a slot antenna, we can mesh the slot with very small elements while meshing the cavity with larger elements. We will give some examples in section 3.3. 3.2.3 Examples of surface mesh and mesh viewing in MatLab In this section we will give some examples on the input file 'Surfin' for the surface mesh, and illustrate the results via MatLab. There are several m files in the directory which can do different tasks. They are: Setup sets up the screen and reads in the mesh data. Must be issued first prior to other MatLab commands. Mesh displays the mesh. GloNod numbers the nodes globally. LocNod numbers the nodes locally with respect to each triangle. TriNum numbers the triangular patches. AngDst plots on a second window the distribution of internal angles in the mesh (this is useful for assessing the quality of the mesh). Bound displays geometry with mesh in the background. After the creation of the surface mesh, the user can start MatLab and issue the above commands as needed. Among the commands listed above, the most important one is the GloNod. This is a must for specifying feed location in the 'MainIn' file for the input of the 3-D mesher. Another important note is that the user must run 'Setup' first before running the command 'Mesh'. 3.2.4 BI termination - rectangular Figure 2 is a nonuniform mesh example of a rectangular patch with BI termination. Also indicated in this figure is mesh viewing in MatLab and the illustration of global numbering of nodes. 3.2.5 AA termination - rectangular Figure 3 is a uniform mesh example of a rectangular slot with AA termination and cavity configuration. Also indicated in this figure is mesh viewing in MatLab. 10

'Surf In': Line #1: 1 3 1 Line #2: 0.5 0.5 10 2 Line #3: 0.75 0.75 3 4 o-Ax 1 (sampling cell size in x-direction) P-Ay 1 (sampling cell size in y-direction) to NxA (number of antenna cells in x-direction) 0-NyA (number of antenna cells in y-direction) oAx2 (sampling cell size in x-direction) io Ay2 (sampling cell size in y-direction) 0 — NxC (# of cells between the antenna and the cavity wall in x-direction) I" NyC (# of cells between the antenna and the cavity wall in y-direction) MatLab running: ~> Setup ~> Mesh ~> GloNod 17+1 --- 172a- 17-3 --- 174- 175- 176 — 1772- 178&- 179- 1 80 — 181- 182- 183- 184 — 185 — 186- 187 114 155 ----' 5 --- 157 — 158 — 159 — 160 — 1& 162 16-3 — 164- 165 166-, 167 168- -16 169 --- 170 4 5.......1-1 --- —-79........80 81 82 83 84 8586 87 888990.........91.........152.......153 Vi- 147- 66- 67 — 68 --- 69 70 — 71 72 --- 7-3 74 75 --- 76 77 78...... 148 ---— 149 1 2 143 53..... 54 55 — 56 —. 57......56-, 59, --- 60- 6 62- - 63- 64 --- 65........ 14-4....... 145 2 116 19 40 44-. 42-.43-.44- 45- 46- 4:7- 4- 49 5- 51...... 52.......140 --- 141 1134....... 135...... 27......... 28 29 30 31 32 33 34 35 36 37 38........ 39........ 136....... 137 130 13-1 1 4 15 --- 1 6 17 18- 1 9 20 2-1 2-2 23....24 25 2&.... 132 -----— 133 Oj20 17 —1 2 --- - 3 —4- 5 ---- 6 --- 7 ---- 8 ---- 9 ---- 1 0 --- 1 1 — 12-' — - 13 ---- 128 — 129 10...... 11-0...... 111-....... 112 — 1-13 114 115 11-6 11-7 1 1.8 1.19 120 121 12-2....... 123...... 124....... 125 9 1 96 97 98 9 10 11 12 13 1 04 10 16 10- 10 -1 0 1 2 3 4 5 6 7 8 Figure 5: A nonuniform mesh for a rectangular patch with BI termination 11

Line#1: 0 3 1 Line #2: 0.5 0.5 16 2 o Ax (sampling cell size in x-direction)... Ay (sampling cell size in y-direction) >* NxA (number of antenna cells in x-direction) ----- NyA (number of antenna cells in y-direction) Line #3: 1..... 1 = cavity-backed, 0 = microstrip cavity-backed I --- —--— L --- —------------------------------- --------— A ------- I Line #4: 2 3 2 3 2 2 NxC (# of cells between the antenna and the cavity wall in x-direction) - NyC (# of cells between the antenna and the cavity wall in y-direction). NxAir (# of air gap cells in x-direction) a NyAir (# of air gap cells in y-direction) NxAbs (# of absorber cells in x-direction). NyAbs (# of absorber cells in y-direction) NxAir, NyAir > 0 -______- ___ --- —--- -__ _ --- —------- ---- _ — --- ----------------- ---------- _ — _-_- __ --- - 'Line#4: I I I I > NxAir (# of air gap cells in x-direction) - NyAir (# of air gap cells in y-direction) - NxAbs (# of absorber cells in x-direction) NvAbs (# of absorber cells in v-direction) NxAir, NvAir > 1 I I I I I I I I ------------------------------------------------------------------ -------------— m ' microstrip MatLab running: >> Setup >> Mesh 6 4 2 0 - -2,,i/j/l/I/I/L/I/I/Lt/I// / 1/i/1//1/// /i/ I//I/I/I/t /'l1/i//I/7//I/ /!7/I/I//1/1/1/1/1//l/i/j /1//I/I/I/l....... — - - - - - - - - - - - - - ------- /1I/I/I A1/ /717IIIII /1/1/1/1/-/I/ / /'lI/I/I/I/IX/I//I/I/I/ / /1/I/I/I/I/I/I///1/1/1/1/1/. — t --- -- -- - -- - - - - - - - - - - - - - - - - -- / 1I/IX/I/I/I/I/I/I/1/[/I//I/I/I/I//lI/I//1/./1//./. /t1/l/I/I/I/I/!/I//Il//I//!/I/I/I//l//I.I/I/I/l/I/l/l fl/l/l/lZ|/Z/|/l/l1/|1 / /|/|/|/l/|//lX / /|1^s/l/1/^f -2 0 2 4 6 8 10 12 Figure 6: Mesh for a rectangular slot with AA termination and cavity configuration 12

3.2.6 BI termination- circular Figure 4 is a nonuniform mesh example of a circular patch with BI termination. Also indicated in this figure is mesh viewing in MatLab and the illustration of global numbering of triangles. 'Surfin': Line #1: 1 2 1 Line #2: 0.75 4 w AR1 (radial thickness of antenna rings) - Na (# of antenna rings) Line #3: 1 3 > AR2 (radial thickness of rings between the antenna and cavity ) > Nc (# of rings between the antenna and the cavity wall) MatLab running: >> Setup >> Mesh >> TriNum...................... 219 '..... 29' 217 4! 292 2?lrx 1^ 218 293 290,-... 22 221 8' 289. 28 ' "' ' —224 153 ' 2 — 214 ' / 27.; 2 15 15 2 ' 215 212 22722. 157156 1 ' 2 9... " ' 21 21 0 285284 / 922' 8 1S9158;; 101 9...149 47146 1 4 2092068 283282 / 230 11 1 561'1260........... 1 207206 ' 2 -. 23I 16 5104 5 143142" 205 280.9 2 232 16.. '07.. 6 2,, 5j '89 64:' 20? 278 233 164 10. 2y9 28, 7. 139 204 277 0 - 234 165 i - 6/63/' 9` 84`4:....23 16':;.:.106 3/ 1[6 2\ 4 8.:': 201 27. 235 167 11.. 3, 2 5 2 47 86.< 137 20.0. 275: 237 16 ' 111 66 6 33:1 >, 4:,. 85 13. 199 274 230 169 11~,6 3^ @ 1 1^4 t 4 j 9r ' ' 135 198; 27$ 1 6, 23 3 1'..8.3L\QKA^ 14'"34. 19' 27"' "23.9 1701 1!4., 6 73'J' " 8 2.'.... 133 19......27 2. 3 48\8 -2":':: 241 17?,, 1.5118 ' 71 80 131132 195 27-. 242..42 173174, 1178i '8.,7 129130. 1.3194..' 269 243244 175 176 1t96 1 2 125 '2 1 28 1 1192 267278 \: 1"" - 19.... '' '" 1.3 ' " ';... '.14 26.' 245246 ' 177 178. 1314 -... 189190 265266 21 123 1:::819:: 263264, 2.....49 250 e '.. 261 262 261.2 54 | 2...... 27''. 257 2'o260: 253 25 256 2 ' -6 -4 -2 0 2 4 6 Figure 7: A nonuniform mesh for a circular patch with BI termination 13

3.2.7 AA termination - circular Figure 5 is a uniform mesh example of a circular patch with AA termination and microstrip configuration. Also indicated in this figure is mesh viewing in MatLab and the illustration of local numbering of nodes. 'Surfin': Line #1: 0 2 1 Line #2: 0.75 4 AR (radial thickness of the rings) - Na (# of antenna rings) Line #3: 0 1 = Cavity-backed, 0 = Microstrip Line #4: I I I - Nc (# of rings between the antenna and the cavity wall) itbacked -- Nair (# of air gap rings) * Nabs (# of absorber rings) ' Line #4: 3 2, Nair (# of air gap rings) - Nabs (# of absorber rings) Nair > 1 MatLab running: >> Setup >> Mesh >> LocNod Figure 8: Mesh for a circular patch with AA termination and microstrip configuration 14

3.2.8 BI termination - log-periodic Figure 6 shows the format of input file 'Surfin' file and parameter definition of a logperiodic antenna patch with BI termination. 'Surfln': Line#1: 1 1 1 or 1 10 Line #2: R R I I R R R R R a (deg.) f3 (deg.).... Na (# of arms) Ns (# of sections) R: Real Ro I: Integer R R1.. -- K A- R (suggested radial discretization length for the mesh) Line #3: R ~ ARc (distance from the antenna boundary to the cavity wall) Definition ofthe parameters P Arm #1 R 2 r3 - / -, Section #1,.'-. ~ Section #2 - Section #3 R1 R2 R3 = #3 j- R2 R3 R4 R1 R2 _ R3 _ rl r2 r3 Arm #2 Note: K- ~ r for equal metal and air teeth width AR < Ro / 3 for decent mesh quality around the center of the antenna Figure 9: Input file format and parameter definition for log-periodic with BI termination An example of log-periodic mesh with BI termination with a MatLab display of the mesh is showed in Figure 7. Another good feature of the surface mesher is that it can assess the quality of the mesh. The ideal distribution is a delta function located at 60 degrees and represents a perfect surface mesh. The more concentrated the distribution is around 60 degrees, the better. Figure 8 shows the distribution of internal angles for our log-periodic example in Figure 7. 15

..:...... -................ -............................,...........................: - \......;;; "';..:,.(,::~,5.: t.~''" (,~:".::. '.:;-,' ':'.:' '; 7,'..-1 - '''............ '.- -, \,- " - - - "-.. 3 -.:'-. '. -3 -4 -3 -2 -1 0 1 2 3 4 Figure 10: Mesh for a log-periodic patch with BI termination The MatLab command for this function is AngDst. It can also be used towards rectangular and circular antennas. Distribution of Angles 0.015 - 0.01 - 0.005 - - 0.02 C-) 0 20 I~I & W^ Ut [ O, A,, U,A A I I 0 20 40 6 0 80 100 120 140 160 180 Angle (deg.) Figure 11: Distribution of internal angles for a log-periodic mesh 16

3.3 The 3-D Structured Volume Mesher 3.3.1 Introduction After the 2-D surface mesh is generated, the next step is to grow the surface mesh along the normal of the platform to form a 3-D mesh. There are two options for the meshing elements: prisms or tetrahedrons. Whether or not the user chooses the prism mesh, the first step for volume mesh is always to have a prism mesh. After that, if the user has chosen a tetrahedral mesh option, each prism element will go on to break into 3 tetrahedrons, and new connectivity tables will be formed. This procedure is illustrated in Figure 9. A single prism is divided into 3 tetrahedrons 6 Figure 12: A single prism element is divided into three tetrahedral element 3.3.2 Non-planar substrate A great feature for our volume mesher is that it can deal with non-planar substrates when the antenna and cavity are of circular shape, plus the BI termination and prismatic meshing are chosen. Under this circumstance, the elements are no longer right prisms, but distorted prisms. Figure 10 shows the scheme for the non-planar substrates. 3.3.3 Running the volume mesher Before we are able to run the volume mesher, there must be some necessary files in the directory: 17

Important! Works with planar platforms with Boundary Integral termination and circular cavities. Platform is asssumed to be located at z=0. Substrate accupies the z<O space. zt Patch z=O r / z>O z<O - cut 0 0- Locations for which the coordinates (z,r) are provided in "MainIn" file. Example geometry: (-0.45, 2.6) (-0.4, 1.2) (-0.4, 0) I / / -- =1.6 -- ( = 1.2 (-0.8, 0) \ (-0.8, 1.2) (-0.95, 2.6) Figure 13: Non-planar substrate 18

SurfMesh which has been generated from 2-D mesher and contains surface mesh information; dm.f which will read in 'SurfMesh' file and create a decent 'fema.dml' file; VolumeMesher.f which is the FORTRAN code for the 3-D volume mesher. The steps for running the 3-D volume mesher is are the following: 1. Create the input file 'MainIn' for the mesher. The format for this file will be introduced immediately after enumerating the running steps. 2. Compile 'dm.f': f77 dm.f -o dm.e 3. Run the executable file compiled from last step. The a new, better 'fema.dml' file will be created. dm.e 4. Compile the mesher 'VolumeMesher.f', which was written in FORTRAN 77: f77 VolumeMesher.f -o VolumeMesher.e 5. Run the mesher by typing: VolumeMesher.e and then hit return. The input file 'MainIn' consists of two parts of data. The first part are mainly geometric parameters, the second part are mostly electric pa arameters. See Figure 11 for the detailed format. Figure 12 is an example of 'MainIn' file, with the choice of tetrahedral mesh of a rectangular patch antenna. 19

* I - --- = Tetraledral elements, 0 = Prismatic elements * I -- I = Boundary Integral (BI) termination, 0 = Artificial Absorber (AA) termination M a * I ---- I = Printed, 0 = Slot, Geom I,,, # of substrate layers 1 = all substrate layers are identical and planar, 0 = non-uniform but planar, 2 = Non-uniform and non-planar -- - # of superstrate layers ( enter zero for no superstrate) 1 = all superstrate layers have the same thickness and material parameters, 0 = otherwise R C C * R C C Ordered from the bottom of the cavity up, each row corresponds to a substrate layer. Only one row: is needed if all layers are identical ( row has the info for a single layer). * R C dnIn Part 1 ietric Parameters substrate layers conforms to platform I I I I I I I I I I -- Thickness of the layer -- Relative permittivity of the layer -e Relative permeability of the layer -- -—. -- -- -- -- -- -- -- - IC C --- —--------------------------------------------- * I C C N - 1 - Nw rf eras- segm s I I I I I I I I I I I I 0 i l + Number ol 1inear segments - -A- Relative permittivity of the layer Relative permeability of the layer R R R R......R R z- r coordinates of the segment junctions (number of pairs equals to the first entry on the previous line) I C C R R R R......R R Ordered from bottom up (first entry for the bottom ground plane. No entry for the aperture, which is always planar) \ substrate layers do not necessarily conform to platform, which is planar Works with BI option only! For this section, enter "2 "for the second entry on the previous line. I - 0 I c R R R R...... R R -------------------------------------------- M ainIn Part 2 /0 RCC z * R C C.. ' R C C Same as above but for the superstrate. Ordered from the antenna surface up (first row corresponds to thel I J layer just above the antenna surface). Electrical Parameters * R C C -- --— A ----? --- —----------------------------------------------------- - -- ---- - # of probe feeds present only if there is superstrate ~ III, 1 1 anrd works with the AA option only Each row corresponds to a probe feed * I I I - > o Surface node number #1 Surface node number #2 Probe current flows from node #1 to node #2. Layer # (layer within which the normally oriented probe is located, or the layer at top of which the laterally oriented probe is located). Entry can be positive or negative and increase away from the surface of the antenna with zero corresponding to the layer immediately below the antenna. * R R R Starting frequency in GHz -- - Final frequency in GHz Increment frequency in GHz I - I = Read in user specified termination parameters (given in the following row), 0 = code will figure out the optimum parameters (this is the safe course if one is not familiar with the artificial absorber termination). RI I C -- - Thickness of one layer (all layers have the same thickness) For AA only! -- - Total number of layers from the top of the outer-most superstrate layer to the termination boundary (Ignored by BI) - -- Number of absorber layers Relative permittivity of the absorbing layers. -, - - - - - - - - - - - - - - - - - - - - - - - - - - - - - — % Figure 14: Format for an input 'MainIn' file 20

Sample 'Mainin' file: 1 1 1 1 100 0.6 (1.41,0) (1.,0) 1 43430 1 1.50.1 --- tetrahedral mesh A --- BI termination. --- printed antenna ---- 1 substrate layer, no superstrate layer -4 —substrate thickness, relative permittivity and permeability --- number of feeds --— feed position, from node #43 to #43, located in layer 0, i.e. a vertical feed below antenna -— starting freq., final freq. and freq. increment in GHz Figure 15: Example of an input 'MainIn' file of a rectangular patch 4 Mesh Preprocessor The file preprocmod.f takes the Ideas universal file generated by the automatic mesh generator, and produces the necessary input files for the fema tetra.f program. The preprocessor needs only a small amount of data information to process the universal file mesh. The preprocessor is able to handle meshes with either rectangular or circular cavities/patches, and with a trivial modification can also process meshes with annular rings. Figure 16, shows a sample input file with a description of each input line. 5 Description of Input Files 5.1 Notation Description This section gives a description of the information content for the files used in the tetrahedral code. The terms 'FIELD' and 'RECORD' will be used to explain the file contents. A 'RECORD' is defined as a row of 'FIELDS' which contains file data. Each 'FIELD' is composed of either an integer(I), real(R), or complex(C) number, or a string(S). If not specifically stated, the 'Field' should be assumed to be an integer. Each 'RECORD' can be a combination of strings and num bers('FIELDS'). For simplicity R# is short for RECORD# and F# is short for FIELD#, ex. F1 means FIELD 1. 5.1.1 File Name: APDATA R1 F1 R2 F1 R3 F1 21

sunilcavity_35.unv I Name of universal file 1 I Patch option: 0-No patch 1-Patch 0 I Cavity option: 0-Circular 1-Rectangular 3. I Cavity radius(cm) 1 i: # of PEC patches; i=1 0. I X center coordinate for patch i 0. I Y center coordinate for patch i 2.5 I Radius(cm) of patch i 1 I # of substrate layers j; j=1 (2.2,-.002) (1.,0.) I Relative epsilon and mu for layer j Figure 16: Sample Input File for the Preprocessor File Description This file contains 3 integers. Fl of Ri is the total number of edges in the FEM system, Fl of R2 is the total number of PEC edges which includes cavity walls, patches, and posts, and Fl of R3 is the total number of nodes on the aperture of the cavity. File Example: 5802 1700 144 5.1.2 File Name: EDGY R1 Fl F2(R) F3(R) F4(R) R2 Fl F2(R) F3(R) F4(R) Rn F1 F2(R) F3(R) F4(R) R(n0-l} 0 0 n = total number of edges File Description In each record, Fl is an integer which represents a global edge i(i 1,...,n). For each edge i there are 2 nodes il and i2. Fields 2-4 are real numbers which contain the x, y, and z compo nents, respectively, of the edge vector ri. Thus, for Ri, Fl = i,,,and. The last record, R(n+l), contains a column of zeros which marks the end of the file. File Example: 1 5.5197E-03 -.115054.1174999 2.1227921 -.115054 6.91198E-23 00 0 0 22

5.1.3 File Name: EGLOB R1 F1 R2 FI(C) F2(C) R(l+nlayers) F1(C) F2(C) R(l+nlayers+l) Fl R(l+nlayers+2) Fl R(l+nlayers+3) Fl F2 F3 F4 F5 R(l+nlayers+3+m) Fl F2 F3 F4 F5 R(l+nlayers+4+m) 0 0 0 0 0 nlayers = # of layers in the cavity volume m = 6*(# of tetrahedral elements) - 1 File Description * Fl of Ri is the # of layers in the cavity volume R2 through R(l+nlayers) contain the complex permittivity and permeability for each layer. * Fl is the permittivity and F2 is the permeability. * Fl of R(l+nlayers+l) is the total # of nodes * Fl of R(l+nlayers+2) is the total # of tetrahedral elements The rest of the file is a connectivity table for each element.. For R(l+nlayers+3) through R(nlayers+3+m) the structure is as follows: * Fl is the tetrahedral element # * F2 is the global edge number * F3 and F4 are the node numbers, il and i2 respectively, corresponding to each global edge F2 * F5 is which layer the element of Fl is located A row of zeros marks the end of this file. File Example: 23

1 (2.50,-.00250) (1.0,.0) 1054 4087 1 1 79 20 1 2 33 20 3 154 80 1 1 1 1 1 0 00 0 0 5.1.4 File Name: ELNO R1 F1 F2 F3 F4 F5 F6 R(nelem) Fl F2 R(nelem+l) 0 0 F3 F4 F5 F6 0000 nelem=# of tetrahedral elements File Description This file is an element connectivity table. It contains a look-up table for each of the tetrahedral elements, the corresponding 4 nodes, and the layer in which the element is located. Fl is the tetrahedral element # F2-F5 are nodes for the corresponding element Fl F6 is which layer the element of Fl is loacated A row of zeros marks the end of this file. File Example: 1 201 79 33 3 1 20 349 758 343 344 1 00 0 0 0 0 24

5.1.5 File Name: ENODDY R1 Fl F2(R) F3(R) F4(R) R(nnodes) Fl F2(R) F3(R) F4(R) R(nnodes+l) 0 0 0 0 nnodes=total # of global nodes File Description This file contains the (x,y,z) coordinates of all the nodes. Records RI - R(nnodes), contain the same information for each node. Fl is the global node # F2-F4 contain the coordinates for each node Fl A row of zeros marks the end of this file. File Example: 1 -1.2999999523162839E+00 -1.2582527612418439E-15 0.00000000E+00 00 0 0 5.1.6 File Name: ESOURCE R1 F1 R2 F1 R(2*pnodes- 1) Fl R(2*pnodes) Fl R(2*pnodes + 1)0 pnodes=# of nodes on the probe feed File Description This file tells which global nodes are on the probe feed. The information is listed in groups of 2, so that the first # gives which number the probe is on the feed, while the second 25

# gives the probe's global #.. In the example, 1(R1) is the first node on the probe and 22(R2) is the global number of the probe. A single zero marks the end of this file. File Example: 1 22 2 21 3 24 4 23 0 5.1.7 File Name: ESURFC R1: Fl R(pecedges) Fl File Description This file gives the global edge numbers of all PEC edges. A single zero marks the end of this file. File Example: 6078 6079 7440 0(End Of File) 5.1.8 File Name: ESURFD R1: Fl F2 F3 F4 F5 F6 F7 F8 F9 F10 26

R(apedges) F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 R(apedges+l) 0 0 0 0 0 0 0 0 0 0 File Description This file contains information only for the aperture of the cavity which corresponds to the BI portion of the code. Each record contains the same type of information for each element on the aperture. * Fl is the # of the element on the aperture * F2, F5, and F8 are the three edges corresponding to Fl * F3 and F4 are the nodes corresponding to F2 * F6 and F7 are the nodes corresponding to F5 * F9 and F10 are the nodes corresponding to F8 A row of zeros marks the end of the file. File Example: 1656 306 196 9 10 2629 9 105 2630 10 105 540 25 106 542 25 140 538 106 140 0 0 0 0 0 0 0 0 0 5.1.9 File Name: PLATEO.DAT R1 FI(S) R2 F1(S) R3 F1 F2(R) F3(R) F4(R) R(2+apnodes) Fl R(2+apnodes+l) R(2+apnodes+2) R(2+apnodes+3) R(2+apnodes+4) R(2+apnodes+5) R(2+apnodes+6) F2(R) F3(R) F4(R) -1 000 F1(S) F1(S) Fl F1(S) Fl 27

R(2+apnodes+7) F1(S) R(2+apnodes+7) Fl F2 F3 R(m) Fl F2 F3 R(m+l) FI(S) R(m+2) F1(S) R(m+3) Fl R(m+4) FI(S) R(m+5) Fl F2 F3 F4 R(m+5+ntri) Fl F2 F3 F4 apnodes=# of aperture nodes m=2+apnodes+7+(apedges-l) ntri-# of aperture triangles File Description This file pertains strictly to the BI subsystem, and is a combination of 3 tables. The first table contains the aperture node #s and their corresponding Cartesian coordinates. This table starts at R3 and ends at R(2+apnodes). For this table, Fl is the aperture node # F2 -F4 are the coordinates x, y, and z R(2+apnodes+l) marks the end of this table. The second table gives the corresponding nodes il and i2 for every aperture edge i. This table begins at R(2+apnodes+7) and ends at R(2+apnodes+7+apedges-1). For each of these records, in the second table, * Fl is the aperture edge i * F2 and F3 are the nodes il and i2 respectively NOTE: For this table, all the interior edges on the aperture(non pec edges) are listed first followed by the exterior edges on the aperture(pec edges). So, the first NINTEDG records will be interior edges, and the next NEXTEDG records will be the exterior edges. The third table starts at R(m+5) and ends at R(m+5+ntri), and is a triangle-edge look-up table with three edges corresponding to each aperture triangle. * Fl is the aperture triangle # * F2-F4 are the three corresponding edges for Fl 28

The rest of the information for R(3+apnodes+4), R(3+apnodes+6), and R(m+3) are: * Fl of R(3+apnodes+4) is the # of interior aperture edges * Fl of R(3+apnodes+4) is the # of exterior aperture edges * Fl of R(m+3) is the # of aperture triangles File Example: FLAG1 NODCRDS 1 -1.3 -1.25825E-15.0 2 -1.206 -.316817.0 -10 0 FLAG2 NUMBER OF NUMBER OF EDGNODS 0 INTERIOR EDGES EXTERIOR EDGES 11 3 22 3 358 126 14 FLAG3 NUMBER OF TRIEDGS 1 285 1 TRIANGLES 2 214 276 284 281 5.1.10 File Name: TAB1 R1 Fl F2 29

R(ntri) Fl F2 ntri=# of aperture triangles File Description This is a triangle-element look-up table. Fl is the # of the aperture triangle, and F2 is the cor responding global tetrahedral element #. File Example: 1 698 25 5.1.11 File Name: TAB2 R1 Fl F2 R(apedges) Fl F2 File Description This is an aperture node - global node look-up table. Fl is the aperture node #, and F2 is the corresponding global node #. File Example: 1 1 2 11 30

5.1.12 File Name: TAB3 R1 F1 F2 R(apnodes) F1 F2 File Description This is an aperture edge - global edge look-up table. F1 is the aperture edge #, and F2 is the corresponding global edge #. NOTE: For this table, all the interior edges on the aperture(non pec edges) are listed first followed by the exterior edges on the aperture(pec edges). So, the first NINTEDG records will be interior edges, and the next NEXTEDG records will be the exterior edges. File Example: 1 1116 2 1032 5.1.13 File Name: CONST.INC INTEGER PEC,RESIST,BISTAT,BACKSCAT,ANGPHI INTEGER ANGTHETA,YES,NO,RADIATE COMPLEX PJ REAL PI, ETA PARAMETER (PEC=1) PARAMETER (RESIST=2) PARAMETER (BISTAT=1) PARAMETER (BACKSCAT=2) PARAMETER (RADIATE=3) PARAMETER (ANGPHI=1) PARAMETER (ANGTHETA=2) PARAMETER (YES=1) PARAMETER (NO=2)) PARAMETER (PI=3.1415926) PARAMETER (PJ-(0.,1.)) 31

PARAMETER (ETA=377.) File Description This file is for parameter settings and should be changed from problem to problem only if nec essary. 5.1.14 File Name: DIM.INC INTEGER NMAX,MAXRCS,MNON,MAXT,MAXP,MELE,MNODE INTEGER MAXNOD,MAXEDG PARAMETER (NMAX=50) PARAMETER (MNON=50) PARAMETER (MAXRCS=200) PARAMETER (MNODE=1054) PARAMETER (MELE=24522) PARAMETER (MAXNOD=144) PARAMETER (MAXT=5802) PARAMETER (MAXP=1700) PARAMETER (MAXA=4102) PARAMETER (MAXTRI=214) PARAMETER (MAXEDG=358) PARAMETER (MAXZ=284) PARAMETER (MENT=285766) File Description This file contains array dimensions for the main program. Definitions of parameters that should be modified for a specific problem are given below: MNODE total # of nodes MELE 6 times the # of elements MAXNOD # of aperture nodes MAXT total # of edges MAXP total # of PEC edges MAXA total # of unknowns of the FE-BI system MAXTRI # of aperture triangles MAXEDG # of aperture edges inclkuding those on PEC sides MAXZ total # of BI subsystem unknowns MENT is calculated by the formula: MNON x MAXA + MAXZ2 + 10 6 Tetrahedral Program Input The program fematetra.f takes the input files produced by preprocmod.f along with some input parameters to produce the desired output results. Figure 17, shows a sample input file with a description of each input line. 32

2 I Pattem Option: 1-BISTATIC,2-BACKSCATTER,3-RADIATION 1.,5.,51 I Freq: Start,Stop,# of frequency points sunilrcs_35theta51 I Designate RCS filename 90 I Polarization angle: 90->theta pol. 0->phi pol. 2 I RCS cut: 1-PHI, 2-THETA 0 I FIXED start observation angle 0 I FIXED stop observation angle 0 I start observation angle 0 I stop observation angle 1 I # of observation angle points 1 I # of FIXED observation angle points 0 I Solver option: (0)BiCG, (1)Nonsymmetric BiCG, (2)GMRES.01 ITolerance 1 I Check to see if the data is okay: 1-YES 2-NO 2 1 Option to obtain near field: 1-YES 2-NO 0 I For each layer(top to bottom) specify whether ferrite or I isotropict: 0-Isotropic 1-Ferrite 0. I Saturation Magnetization(4piMs) 0. I Applied Bias Field(Ho) 0. I Linewidth(deltaH) 1 I Biasing direction x(0), y(1), or z(2) Figure 17: Sample Input File. 33