035675-1-T K. Sertel J. L. Volakis Users Manual for FMM-SWITCH May 1999 35675-1-T = RL-2495

PROJECT INFORMATION PROJECT TITLE: Parallel Computational Tools REPORT TITLE: Manual for FMM SWITCH U-M REPORT No.: 035675- 1 -T CONTRACT START DATE: END DATE: November 1999 DATE: April 1999 SPONSOR: Dr. Kuiechien Hill AFRL Wright Laboratory WL/XPN Bldg. 254 2591 K. Street WPAFB, OH 45433-7602 Phone: (937) 255-0277 hillkc@deneb.ws.afrl.af.mil Dennis Andersh DEMACO Inc/SAIC Inc 100 Trade Centre Dr., suite 303 Champaign, IL 61280-7237 Phone: (217) 355-4748 Fax: (217) 355-4749 dandersh@demaco.com SPONSOR CONTRACT No.: U-M PRINCIPAL INVESTIGATOR: P.O. SW01073 John L. Volakis EECS Dept. University of Michigan 1301 Beal Ave Ann Arbor, MI 48109-2122 Phone: (313) 764-0500 FAX: (313) 647-2106 volakis @umich.edu http://www-personal.engin.umich.edu/-volakis/ PROJECT PEOPLE: K. Sertel, M. Smelyaskiy and J.L. Volakis

User's Manual for FMM-SWITCH Version 1.0 Kubilay Sertel and John L. Volakis Radiation Laboratory Department of Electrical Engineering and Computer Science University of Michigan Ann Arbor, MI 48109-2212, USA May 10, 1999 1

Contents 1 Introduction 3 2 Input and Output Files 4 2.1 Dimension File....................................... 4 2.2 Geometry Files....................................... 5 2.2.1 PATRAN Geometry Output..................... 5 2.2.2 SWITCH Geometry Output............... 7 2.3 Input File........................................ 8 2.4 Output Files........................................ 10 2.4.1 Farfield Radar-Cross-Section (RCS) Data........... 10 2.4.2 Induced Surface Currents...................... 11 2.4.3 Solution Coefficients......................... 12 2.4.4 Clustering Information....................... 12 3 Executing the Solver 13 4 Data Visualization 14 4.0.5 RCS Data Visualization................. 14 4.0.6 Surface Currents Visualization.................. 14 4.0.7 Cluster Visualization......................... 15 5 Example Runs 15 5.1 The Ogive........................................ 15 5.2 Sphere............................... 16 5.3 Dart.......................................... 18 6 Example: Sphere 22 7 Quick Reference 27 7.1 Compilation of the Solver........................... 27 7.2 Executing the Solver................................. 27 7.3 Checking the Output................................. 28 7.4 Visualizing the Outputs............................ 28 2

1 Introduction This document is intended to describe the compilation and execution of the code FMM-SWITCH developed at the Radiation Laboratory of the University of Michigan Electrical Engineering and Computer Science Department. FMM-SWITCH is a Method of Moments (MoM) based Computational Electromagnetics (CEM) tool to simulate electromagnetic (EM) scattering scenerios involving arbitrarily curved perfect electric conductor (PEC) targets. It is implemented in Fortran 77. The MoM formulation used in the implementation of the code is based on the Electric-Field-IntegralEquation (EFIE), the Magnetic-Field-Integral-Equation (MFIE), and the Combined-Field-Integral-Equation (CFIE) formulations of EM scattering from PEC targets. To overcome the computation time length and memory requirements of the convensional MoM implementations (O(N3) and O(N2) respectively), the Fast Multipole Method (FMM) is implemented. The FMM reduces the computation complexity to O(N1'5) per iteration (in iterative solution of the resulting linear system) and the memory to O(N1'5). The reader is referred to the references [1, 2, 3] for further information on the formulations used in the implementation of the code. The target geometry is represented in the code using curved quadrilateral surface patches which are defined by 9 points in space located on a topologically rectangular 3 x 3 grid [1]. The generation of target geometry is discussed in Section 2.2. The input parameters related to the simulation should be given in the input file as outlined in Section 2.3. Section 2.4 describes the output files generated by the code. RCS and induced surface current density data produced at the output can be visualized using the MATLAB and PATRAN visualization files as described in Section 4. There are two versions of the code. The "non-symmetric" version located in SWITCH/NonSymmetric/ uses the whole target geometry, whereas the "symmetric" version in SWITCH/Symmetric/ makes use of symmetry to model half of the target. This manual is based on the "non-symmetric" version. The difference between the two versions are mensioned whenever necessary. 3

2 Input and Output Files The following subsections outline the I/O and visualization files used by the solver FMM-SWITCH. 2.1 Dimension File Before compiling the solver, the dimensions of the data arrays used in the code must be approximately specified in the dimension file main.dim located in SWITCH/NonSymmetric/src directory. The structure of the file is parameter ( & NNodes = 5600, & Nntri = 3600, & Nunknowns = 4500, & Ncluster = 60, & NL = 15, & Nnzbimat = 1500000 & C NNodes: Number of NODES in target geometry C Nntri: Number of ELEMENTS in target geometry C Nunknowns: Number of UNKNOWNS in target geometry C Ncluster: Number of CLUSTERS in target geometry C (Ncluster=sqrt(Nunknowns)) C NL: Number of MULTIPOLES in target geometry C Nnzbimat: Number of NONZEROES+1 in the near-field matrix The number of NODES and ELEMENTS can be found in the first few lines of the geometry files. Number of UNKNOWNS is equal to the number of edges shared by two quad elements. It is equal to twice the number of ELEMENTS for a closed geometry. Number of CLUSTERS should be set to be Ncluster=sqrt(Nunknowns). Number of MULTIPOLES is computed by the code and it varies between 6 and 20. Number of NONZEROES in the 4

near-field matrix is also problem dependent and an estimate to this number can be found as Nnzbimat=(10 to 20)*Ncluster*Nunknowns. The whole code needs to be recompiled whenever this file is modified. The compilation is machine dependent and must be done using proper "makefiles". The dimension file for the "symmetric" version is located in SWITCH/Symmetric/src and has the same structure as that of the "non-symmetric" version as explained above. 2.2 Geometry Files The geometry files used in the code are the neutral PATRAN output files and the original SWITCH geometry files. Two seperate geometry files are required. One file contains the coordinates of the nodes of the quad elements forming the mesh, and the other contains the nodes of the elements. The geometry file containing the quad element nodes must be placed in the directory SWITCH/Non Symmetric /geom/elements and the other geometry file must be placed in the directory SWITCH/NonSymmetric /geom/nodes. These two geometry files must have the same name. It is crucial that the element normals be pointing outward (necessary when the MFIE or CFIE option is used). This can easily be checked in commercial mesh generation packages such as PATRAN. Example element and node files for PATRAN and IDEAS outputs are given below for the "non-symmetric" version. For the "symmetric" version, the same structure is used. However, the geometry files contain only half of the symmetric geometry. The symmetry plane is specified in the input file. The assumption used is that the symmetric geometry lies on one side of the symmetry plane. The latter is assumed to be on one of the principle planes in cartesian coordinate system. 2.2.1 PATRAN Geometry Output After the target mesh is generated using PATRAN, it is then exported in Neutral File format to two seperate files (one for nodes and the other for node connectivity as noted above). The format of the output node file from PATRAN is like the one below. 5

25 0 0 1 0 0 0 0 0 P3/PATRAN Neutral File from: /tmp/PATRAN/dart2.db 26 0 0 1 8906 0 0 0 -1 05-Mar-99 16:01:00 3.0 1 1 0 2 0 0 0 0 0 -1.OOOOOOOOOE+O -7.814555225E-9 3.184821606E-1 1G 6 0 0 000000 1 2 0 2 0 0 0 0 0 -1.OOOOOOOOOE+0 5.538074672E-2 3.129804432E-1 1G 6 0 0 000000 1 3 0 2 0 0 0 0 0 -1.000000477E+0 1.105192080E-1 3.056425154E-1 1G 6 0 0 000000 1 8906 0 2 0 0 0 0 0 -4.162685776E+1 -5.847183704E+0 1.057478547E+0 1G 6 0 0 000000 99 0 0 1 0 0 0 0 0 Not all of the lines above are needed by the FMM-SWITCH code. Clearly the line including the 3 decimal numbers refer to the node coordinates. The actual node number is given as the second number in the line above the coordinates. The format of the element connectivity file exported from PATRAN is 25 0 0 1 0 0 0 0 0 P3/PATRAN Neutral File from: /tmp/PATRAN/dart2.db 26 0 0 1 8906 2226 0 0 -1 05-Mar-99 16:01:12 3.0 2 1 4 2 0 0 0 0 0 9 0 0 0.OOOOOOOOOE+00.OOOOOOOOOE+00.OOOOOOOOOE+00 219 216 185 189 217 218 188 221 220 2 2 4 2 0 0 0 0 0 9 0 0 0.OOOOOOOOOE+00.OOOOOOOOOE+00.OOOOOOOOOE+00 178 184 189 185 182 187 188 183 186 6

2 2226 4 2 0 0 0 0 0 9 0 0 0.OOOOOOOOOE+00.OOOOOOOOOE+00.OOOOOOOOOE+00 1710 6229 6231 1712 6221 6230 6223 1711 6222 99 0 0 1 0 0 0 0 0 Again, not all the lines are used by FMM-SWICTH. Here, the lines containing the 9 integers gives the node numbers of the element. As noted above, the node file should be placed in the directory SWITCH/NonSymmetric /geom/nodes and the element file should be placed in the directory SWITCH/NonSymmetric/geom/elements with the same name for proper operation of the code. Also the geometry type in the main input file should be specified as "patran". This file should be placed in the directory SWITCH /NonSymmetric/input. For the "symmetric" version, the node file should be placed in the directory SWITCH/Symmetric /geom/nodes and the element file should be placed in the directory SWITCH/Symmetric/geom/elements with the same name. Also the geometry type in the input file in SWITCH /Symmetric/input directory should be specified as "PATRAN". 2.2.2 SWITCH Geometry Output The geometry files that are in the format of the original Northrop SWITCH code can also be read into the FMM-SWITCH solver. In this caes, the node file should have the format 962 1 0.4999994E+01 0.2838807E-13 -0.6494433E-06 2 0.1192099E-05 0.9999973E+00 0.OOOOOOOE+00 3 0.4566187E+01 0.1716829E+00 0.OOOOOOOE+00 962 -0.3427966E+01 -0.2119954E+00 -0.4965332E+00 Clearly, the first column in the above listing is the node number followed by its coordinates. The first line gives the total number of nodes (962 here). The element file should have the format P3/PATRAN Neutral File /ogive480.db small 240 quad EMCC test 7

case, 11/24/97 240 0 240 240 0 0 0 480 480 0 0 0 0 1 9 7 0 1970 3 72 27 45 118 71 1 70 26 001203400000 0 0 1 2 0 3 4 0 0 0 0 0 2970 2 9 7 0 4 74 28 46 119 73 3 72 27 0 0 2 5 0 6 7 0 0 0 0 0 240 9 7 0 754 783 755 932 962 931 870 892 871 0 0 -440 -386 0 480 479 0 0 0 0 0 The node file should be placed in the directory SWITCH/Non-Symmetric /geom/nodes and the element file should be placed in the directory SWITCH/NonSymmetric/geom/elements with the same name for proper operation of the code. Also the geometry type in the input file in SWITCH /NonSymmetric/input directory should be specified as "switch". For the "symmetric" version, the node file should be placed in the directory SWITCH/Symmetric /geom/nodes and the element file should be placed in the directory SWITCH/Symmetric/geom/elements with the same name. Also the geometry type in the input file to be placed in the directory SWITCH /Symmetric/input should be specified as "switch". 2.3 Input File The parameters (frequency, pattern cuts, etc) related to the specific simulation runs must be specified in filename.input. As noted earlier, this should be placed in SWITCH/NonSymmetric/input. The file structure is "switch" "inches" 5.91 1.0 8

"bistatic" 2 90.0 90.0 0.0 0.0 180.0 0.5 0.001 500 The first line in this file specifies the format of the geometry file. Valid options are "switch" and "PATRAN". Others can be added in the future. The second line gives the units of the geometry. Valid options are "inches" and "meters". When the unit is specified as "inches" the solver automatically scales the frequency so that the read geometry data are treated in units of "meters". The RCS results are unaffected. The solution frequency is entered in GHz and is specified in the third line. This version of the solver only works at a single frequency. The a parameter of the CFIE is specified in the fourth line as a real number. Valid values are 0.0 < a < 1.0 for closed targets. For open structures a must be set to 1.0. The RCS pattern type is specified in line 5. Valid entries are "bistatic" and "monostatic". The polarization of the incident plane electromagnetic wave is specified in line 6. Valid entries are 1 and 2 (1 for vertical polarization, 2 for horizontal polarization). Line 7 specifies the range of observation angle 0 measured from the vertical axis. The first value is the beginning value and the second is the ending value; the third value is the angle increment. Line 8 specifies the range of observation angles ~ with reference to the x-axis. Again, the first value is the beginning value and the second is the ending value; the third value is the angle increment. Line 9 specifies the convergence tolerance for the iterative solver. The Conjugate Gradient Squared (CGS) is implemented this time but others can be used. Line 10 specifies the maximum number of iterations prior to terminating th eiterative solver. If the solver does not converge in the specified number of iterations, it will stop. Output data will be generated, but depending on the error in the last step it may or may not reflect a correct solution. For the "symmetric" version, the input file must contain the symmetry 9

plane information, so its structure is slightly different from the above. It should be placed in the directory SWITCH/Symmetric/input and has the structure "PATRAN" "x-z" "inches" 5.91 1.0 "bistatic" 2 90.0 90.0 0.0 0.0 180.0 0.5 0.001 500 The symmetry-plane is specified in the second line, the other information is the same as in the "non-symmetric" version. Valid entries for the symmetry-plane specification are "x-y" "y-x" "x-z" "z-x "y-z" Ilz-y I 2.4 Output Files The output files for the "symmetric" and "non-symmetric" versions are the same. The following output files are generated. 2.4.1 Farfield Radar-Cross-Section (RCS) Data After solving the problem, the code computes the scattered field by the target and generates the RCS data in the following format 90.00000 0.00000 -52.49841 120.04202 -65.76239 108.26443 10

90.00000 0.50000 -52.52096 119.97476 -65.92950 108.37727 90.00000 1.00000 -52.56872 119.91295 -66.09913 108.49729 90.00000 1.50000 -52.64211 119.85621 -66.27121 108.62270 90.00000 179.50000 -19.82681 -30.93680 -63.67008 84.47012 90.00000 180.00000 -19.82989 -30.90826 -63.61202 83.64088 This is the specific output for the ogive480 geometry for VV pol. The first column gives the 0-angle value (in deg.) and the second column gives the +-angle value (in deg.) corresponding to the computed RCS values given in the remaining colmuns to the right. The third and fifth colums give the RCS results for vertical and horizontal field components in dBs. The forth and sixth colums are the corresponding phases of the vertical and horizontal field components in degrees. 2.4.2 Induced Surface Currents For visualization purposes, the values of the induced surface current are also output. The file structure is bistatic 1 1 1 0 962 240 1 0 0 0 bistatic 1 0.00000 0.00000 0 962 1 1 1 1 0 0 0 0 0 0 bistatic 1 1 6.0863093E-072.7060833E-035.1328743E-016.0863093E-07... 2 1 9.7520167E-035.8606099E-101.1953557E-019.7520167E-03... 962 1 1.4312185E+009.0374618E-023.6556860E-011.4312185E+00... This is an auxiliary file to be used as an input to the converter restxt. The file contains the magnitudes of the induced surface current on the target at each node of the mesh. It can be converted into binary format using an auxiliary PATRAN file restxt. It can then be imported into PATRAN to 11

visualize the surface currents induced on the target. This will be adressed in Section 4. 2.4.3 Solution Coefficients This file is generated for completeness. It contains the solution vector (the unknown coefficient in the basis function expansion of the induced surface current) for the problem being analyzed. The structure is 1 1.58523E-03 5.14229E-04 2 1.55354E-02 5.81232E-02 3 -0.257247 -0.200015 4 5.44715E-02 0.349153 479 -0.523232 -0.763163 480 -0.623706 0.479390 The values in the first column are the associated unknown-number of the basis functions used (here they refer to the edges shared by two quad elements in the mesh). Second and the third columns are the real and imaginary parts of the coefficient. It should be noted that the basis functions are not numbered as they appear in the element file. 2.4.4 Clustering Information To check the quality of the clustering for FMM implementation, the file ccenters.xyz.filename is output after clustering is done. The file structure is 1.874762 0.318430 0.675829 0.800198 3.048203 -0.124327 0.438653 0.733757 0.400361 0.680715 0.552857 0.829164 -0.462368 -0.557853 -0.695336 0.794405 -2.523491 -0.546767 -0.092770 0.851855 Each line refers to one of the clusters. The first column is the values of the maximum radii of the cluster; the second, third and forth columns are 12

simply the x, y, and z coordinates of the cluster centers. 3 Executing the Solver The following directories must be available/created prior to compiling the code SWITCH /NonSymmetric/geom/nodes SWITCH /NonSymmetric/geom/elements SWITCH /NonSymmetric/input SWITCH /NonSymmetric/src SWITCH /Non-Symmetric/workspace SWITCH /NonSymmetric/bin SWITCH /Non-Symmetric/datavis SWITCH /Non Symmetric/output The explanation to execute the solver given below is based on the "nonsymmetric" version of the code. The same instructions also apply to the "symmetric" version if the steps are carried out in the directory of the "symmetric" version (SWITCH /Symmetric/). Once the geometry and input files are ready for the simulation, they must be put in the proper directories. The source files are located in the directory SWITCH /NonSymmetric/src. Before compiling the code, the sparse matrix solver library needs to be compiled. The source files for this library are located in the directory SWITCH/sparse. When compiled, the file sparse.a is generated. This file is an assembly file and its compilation is machine dependent, hence it should be recompiled when the operation platform is changed. The generated library file is linked by the compiler of FMM-SWITCH. Hence, sparse.a should be copied in the directory SWITCH/NonSymmetric /src. Once the dimension file main.dim is also ready, the user can proceed with its compilation. The code is compiled using the make utility with a proper makefile depending on the machine being used. After compilation the executable is automatically placed in the directory SWITCH/Non-Symmetric/bin. This directory must therefore be available prior to compilation. To run the code, the user must be in the directory SWITCH/Non Symmetric. Executing the available batch file 13

runsw filename will execute the solver. If the dimensions in the file main.dim are less than needed, the code will prompt the information and stop. The dimensions should be fixed, the code should be recompiled and rerun. The sparse solver library file need not be recompiled unless the operating platform is changed. The code uses the directory SWITCH/Non Symmetric/workspace to write auxiliary files while it is running. The output files are written in this directory, and after the run is complete those files are moved to SWITCH/NonSymmetric/output. 4 Data Visualization The output files can be imported in e.g. Matlab for visualization. The following subsections outline the visualization tools for Matlab and PATRAN. 4.0.5 RCS Data Visualization The Matlab file ffphi.m can be used to generate RCS plots on constant 0 cuts using the data in the RCS output file generated and similarly fftheta.m can be used to generate RCS plots on constant b cuts. Both files are located in the directory SWITCH/NonSymmetric/datavis. The RCS data file should be copied in SWITCH/NonSymmetric/datavis under the name farfield.output. 4.0.6 Surface Currents Visualization The output file current.txt.filename can be converted into PATRAN binary results file using an auxiliary PATRAN file PATRAN/bin/restxt. Extensive information about the auxiliary files of PATRAN can be found in PATRAN's user's manual. The output file can then be imported into PATRAN and the magnitude of the induced surface currents can be plotted in PATRAN. To do so, the output file, e.g. current.txt.dart2 should first be copied into current.txt. When the auxiliary file restxt is executed, it prompts for the type of conversion. The "txt —to-res" conversion option should be selected and the name of the file should be input as current (i.e. 14

without the.txt extension). The output will create the file curent.res. In the PATRAN Analysis menu, this file should be read into PATRAN. In the Results menu in PATRAN the surface currents can then be plotted. 4.0.7 Cluster Visualization The quality of clustering can be checked using the Matlab file plcntr.m located in SWITCH/Non-Symmetric/datavis. The clustering file (e.g. ccenters.ogive) should be copied in SWITCH/Non-Symmetric/datavis with the name ccenters.xyz. The Matlab script plcntr.m can be used to plot the circles representing the clusters. This version only plots 2-D circles representing the clusters. 5 Example Runs This section is intended to demostrate typical runs and outputs of the solver FMM-SWITCH. 5.1 The Ogive In this example a PEC ogive is analyzed at 5.91 GHz. The geometry is the same as that used in the original SWITCH manual. The two geometry files are located in the directory SWITCH/Non-Symmetric/geom with the name ogive480. The dimension file for this problem given in main.dim is parameter ( & NNodes = 962, & Nntri = 240, & Nunknowns = 480, & Ncluster = 21, & NL = 8, & Nnzbimat = 113923 & 15

z x. Figure 1: The Ogive Mesh The input file for the ogive depicted in Fig 1 is "switch" "inches" 5.91 0.5 "bistat ic" 2 90.0 90.0 0.0 0.0 180.0 0.5 0.001 500 Fig 2 depicts the RCS result for the ogive480 geometry. 5.2 Sphere In this example a PEC sphere of radius im. is analyzed at 0.3 GHz. The geometry is generated in PATRAN. The two geometry files are located in the 16

Ogive480 analyzed at 5.91 GHz. CFIE Soln. witha = 0.5 -1n. I I I I F II:::: — 2 0 -..................................................,..... -.. -20 -3::: -30..................................:.................:::.: —;.,:: l: 1i i.I........... "........................ -.40.... ~. O 20 40 60 80 100 120 140 160 180 0 (Degrees) Figure -2: The RCS of t: e ogive:t 5.91 GHz directory SWITCH/Non-Symmetric/geom with the name sphereO5. The dimension file for this problem given in main.dim is parameter ( & NNodes = 5494, & \ IHH pol i | | VVpol. Figure 2: The input file of the sphere depicted in Fig 3 is directory SWITCH/NonSymmetric/geom with the name sphere05. The dimension file for this problem given in main.dim is " PATRAN " parameter ( O.3 & NNodes = 5494, & Nntri = 1373, & Nunknowns = 2746, & Ncluster = 52, & NL = 7, & Nnzbimat = 2448423 The input file of the sphere depicted in Fig 3 is "PATRAN" "meters" 0.3 17

z x Figure 3: The Sphere Mesh 0.5 "bistatic" 2 90.0 90.0 0.0 0.0 180.0 0.5 0.001 500 Fig 4 depicts the RCS result for the sphere05 geometry and Fig 5 depicts the magnitude plot of the induced surface currents. 5.3 Dart In this example the PEC dart is analyzed at 2 GHz. The geometry is generated using PATRAN. The two geometry files are located in the directory geom with the name dart2. The dimension file for this problem is given in main.dim. The input file of the dart depicted in Fig 6 is parameter ( 18

SphereO3 analyzed at 0.3 GHz. CFIE Soln. witha = 0.5, HH pol. -lo, I I I I I I I I — 20 -30 -40.c.S2 -50 -60 Ii..,..,,,..... -7 0 ' 1 1 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ D 20 40 60 80 100 4 (Degrees) 120 140 160 180 Figure 4: Bistatic RCS of the sphere at 0.3 GHz MSC/PATRAN Version 7.0A 19-Mar-99 12:2551 FRINGE: bisaalic, MAX DEFLECTION =.OOE-00: DISPLACEMENT, TRANSLATION (VEC-MAG) -P 1' x0 2.065 1.932 1.799 1.666 1.533 1.400 1.267 1.134 1.001 8679 7349 6019.4689 3359.2029 06992 i ---...................................I...;.... I r I I Figure 5: Induced surface currents on the sphere at 0.3 GHz 19

z x - - - Figure 6: The Dart Mesh & NNodes = 8906, & Nntri = 2226, & Nunknowns = 4452, & Ncluster = 66, & NL = 11, & Nnzbimat = 4248015 & & ) The input file of the dart depicted in Fig 6 is "PATRAN" "inches" 2.0 0.5 "bistatic" 2 90.0 90.0 0.0 0.0 180.0 0.5 20

Dart2 analyzed at 2.0 GHz, VV pol., CFIE with a=0.5 1U I i I I I 1 I 0 -10 -20 -30 -40:~~~f —:~-~~~~-~\ i i::.i!I -0 - i- I ------ L __i III_ I__ I ) 20 40 60 80 100 120 4 (Degrees) 140 160 180 Figure 7: Bistatic RCS of the dart at 2.0 GHz 0.001 500 Fig 7 depicts the RCS result for the dart2 and Fig 8 depicts the magnitude plot of the induced surface currents. 21

MSC/PATRAN Version 7.0A 19-Mar-99 17:1222 -RINGE: bistatic, MAX DEFLECTION =.00E-00: DISPLACEME NT, TRANSLATION (VEC-MAG) -P 3 557 3.325 3093 2.862 2.630 1.934 1.703 1.471 1.239 1.007 7754 5436 x.3118....'' '....`....``....`'....'`....''....i....:....,.Vl~fUi Figure 8: Induced surface currents the dart at 2.0 GHz, VV pol. 6 Example: Sphere Given in this section is an example run to demonstrate the usage of the code. The sphere geometry is generated using PATRAN. The radius of the sphere is Im. Two files are generated one of which containes the element nodes and the other contains the node coordinates. The file containing the element nodes reads as follows: 25 0 0 1 0 0 0 0 0 P3/PATRAN Neutral File from: /tmp/PATRAN/sphere.db 26 0 0 1 5494 1373 0 0 -1 18-Mar-99 20:05:39 3.0 2 1 4 2 0 0 0 0 0 9 0 0 0.OOOOOOOOOE+00.OOOOOOOOOE+00.00000000OE+00 3 63 62 1 443 442 441 380 1105 2 2 4 2 0 0 0 0 0 9 0 0 0.OOOOOOOOOE+00.OOOOOOOOOE+00.OOO000000000E+00 4 64 63 3 445 444 443 381 1106 2 1373 4 2 0 0 0 0 0 22

9 0 0 0.OOOOOOOOOE+00.00000000E+00.OOOOOOOOOE+00 4478 4477 4508 4479 5077 5155 5154 5079 5494 99 0 0 1 0 0 0 0 0 This file is copied to SWITCH/NonSymmetric/geom/elements/. The file containing the node coordinates reads as follows: 25 0 0 1 0 0 0 0 0 P3/PATRAN Neutral File from: /tmp/PATRAN/sphere.db 26 0 0 1 5494 0 0 0 -1 18-Mar-99 20:05:25 3.0 1 1 0 2 0 0 0 0 0 -1.OOOOOOOOOE+0-3.797475040E-20 8.687610093E-13 1G 6 0 0 000000 1 2 0 2 0 0 0 0 0 9.999999404E-1 -8.741933044E-8 0.OOOOOOOOOOE+ 1G 6 0 0 000000 1 5494 0 2 0 0 0 0 0 -5.068947077E-1 7.210024595E-1 -4.724544585E-1 1G 6 0 0 000000 99 0 0 1 0 0 0 0 0 This file is copied to SWITCH/NonSymmetric/geom/nodes/. For this problem the bistatic RCS of the sphere is computed at 0.3 GHz. for VV polarization. So the input file is as follows: "PATRAN" "meters" 0.3 0.5 "bistatic" 1 90.0 90.0 0.0 0.0 180.0 0.5 23

0.001 500 This file is copied to SWITCH/NonSymmetric/input/. The dimension file main.dim in SWITCH/NonSymmetric/src/ reads as: parameter ( & NNodes = 5494, & Nntri = 1373, & Nunknowns = 2746, & Ncluster = 52, & NL = 7, & Nnzbimat = 2448423 & & ) C NNodes: Number of NODES in target geometry C Nntri: Number of ELEMENTS in target geometry C Nunknowns: Number of UNKNOWNS in target geometry C Ncluster: Number of CLUSTERS in target geometry C (Ncluster=sqrt(Nunknowns)) C NL: Number of MULTIPOLES in target geometry C Nnzbimat: Number of NONZEROES in the near-field matrix Then the sparse solver is compiled in SWITCH/sparse/. To compile the sparse solver, use make f makefilesun on a SUN machine. The compiler generates a library file sparse.a. This file is then copied to SWITCH/Non-Symmetric/src/. The solver is then compiled in SWITCH/NonSymmetric/src/ using make f makefilesun Now the solver is ready to run. User must be in SWITCH/NonSymmetric/. Type runsw sphereO5 24

to execute the solver. The following is output on the screen on a single processor SUN Ultra: wavelength= 1.0000000000000 m. nnode,nquad= 5494, 1373 Geometry file read in = 0.710684 Elements paired in = 3.40323 nbasis= 2746 nclus= 52 Clusters formed in = 0.183546 Clusters paired in = 5.19966E-02 Translations computed in = 2.04550 Aggregations computed in = 39.1651 alpha= 0.50000000000000 Sparse matrix structure formed in = 0.493427 10% done. 20% done. 30% done. 40% done. 50% done. 60% done. 70% done. 80% done. 90% done. 100% done. Near-field matrix filled in = 1318.00 Non-zeros in preconditioner= 80354 Near-field matrix factored in = 204.301 1 of 1 is being processed. ITER= 1 ERROR= 0.29340707366055 ITER= 2 ERROR= 8.9859981758242D-02 ITER= 3 ERROR= 8.4873548373478D-02 ITER= 4 ERROR= 5.5020817083269D-03 ITER= 5 ERROR= 3.2430174817679D-04 ITER= 5 ERROR= 3.2430174817679D-04 Solution computed in = 15.1542 25

Sphere03 analyzed at 0.3 GHz. CFIE Soln. witha = 0.5, HH pol. -l I.. -2 0..................... -30 i...I cc _740~ -------- I~-~-~ --- —------------------------------------ - 6 0..................................................-70 20 40 60 80 100 120 140 160 180 Q (Degrees) Figure 9: Bistatic RCS of the sphere at 0.3 GHz Time per Iteration = 3.03085 After a successfull run, the output files are moved in the directory SWITCH/Non-Symmetric/output. Fig 9 is generated using the visualizetion tool ffphi.m in SWITCH/Non-Symmetric/datavis/. 26

7 Quick Reference This section is a step-by-step reference to execute the code FMM-SWITCH. It is assumed that the directory structure of the code is already created on user's account. To use the "symmetric" version of the solver, users should execute the steps below in the directory SWITCH/Symmetric/ as opposed to executing them in SWITCH/NonSymmetric/. It sould be kept in mind that the geometry and input files of the "symmetric" version are different than those of the "non-symmetric" version. 7.1 Compilation of the Solver * Go to directory SWITCH/sparse * Compile the sparse solver by executing make * Copy the assembly file sparse.a to SWITCH/Non Symmetric/src * Go to directory SWITCH/NonSymmetric/src * Design the parameter file main.dim subject to the geometry size. * Type touch*.f so that each file includes the updated main.dim * Compile the code by executing make makefileXXX using the proper makefileXXX where "XXX" refers to the machine type such as "sun", hp, or "sgi". * Now the executable sw is generated and moved in the directory SWITCH/Non-Symmetric/bin 7.2 Executing the Solver * Put the geometry files in SWITCH/Non-Symmetric/geom. See Section 2.2 for more information. * Select the run parameters and put the input file in SWITCH/Non-Symmetric/input * Go to directory SWITCH/Non-Symmetric 27

* Execute the solver by typing runsw filename. The name of the geometry files and the input file should all be the same. 7.3 Checking the Output * Go to directory SWITCH/Non-Symmetric/output * Check that all four output files are generated after the simulation is completed. These are 1. ccenters.filename 2. coeff.filename 3. current. txt.filename 4. farfield.filename 7.4 Visualizing the Outputs * Copy farfield.filename to SWITCH/Non-Symmetric /datavis/farfield.output. * Copy ccenters.filename to SWITCH/Non-Symmetric /datavis/ccenters.xyz. * Copy current.txt.filename to SWITCH/Non-Symmetric / datavis/current. txt. * Go to SWITCH/Non-Symmetric/datavis/. * Start up IMatlab by typing matlab. * In Matlab run the RCS visualization files to plot the RCS data. See Section 4.0.5 for more information. * In Matlab run the clustering visualization files to plot the clustering data. See Section 4.0.7 for more information. * Convert the file current.txt into current.res using restxt uitlity of PATRAN. See Section 4.0.6 for more information. 28

* Start up PATRAN by typing PATRAN. * Import the geometry files into PATRAN. * Import current.res into PATRAN using the Analysis menu. * Choose the PATRAN "Results" menu to display the surface currents. 29

References [1] G. E. Antilla and N. G. Alexopoulos, "Scattering from Complex 3D Geometries by a Curvilinear Hybrid Finite Element-Integral Equation Approach", J. Opt. Soc. Am. A, Vol. 11, No. 4, pp. 1445-1457, 1994 [2] J. M. Song and W. C. Chew, "Multilevel Fast Multipole Algorithm for solving Combined Field Integral Equations of Electromagnetic Scattering", Microwave and Opt. Tech. Letters. Vol. 10, No. 1, pp. 14-19, September 1995 [3] R. Coifman, V. Rokhlin, and S. Wandzura, "The Fast Multipole Method for the Wave Equation: A Pedestrian Prescription", IEEE Antennas and Propagation Magazine, Vol. 35, pp. 7-12, June 1993 30