EM.Libera is a 3D free-space structure simulator for modeling metallic structures. It features a full-wave Method of Moments (MoM) engine for analyzing wire structures or wire-frame models of metallic surfaces and solids. Many RF systems utilize wire antennas like dipoles, monopoles, loops, or arrays of wire antennas. The 3D method of moments (MoM) based on Pocklington's integral equation can accurately model such antennas and their coupling effects. Moreover, in many applications, metallic surface or [[Solid Objects|solid objects]] can be approximately modeled as wire-frame structures. EM.Libera's Wire MoM simulator can provide an adequate numerical solution of wire-frame structures. Examples of this sort are wire antennas in the presence of large reflectors or scatterers. Wire-frame models also make a good approximation of metallic target structures for radar cross section (RCS) analysis.
EM.Libera's Wire MoM simulator is seamlessly interfaced with [[EM.Cube|EM.CUBE]]'s other simulation engines. The solution of a wire-frame structure can be imported to [[EM.Cube]]'s other modules as a set of short dipole sources with proper amplitudes and phases.
== A 3D Method Of Moments Primer ==
In a 3D MoM simulation, the currents or fields on the surface of a structure are the unknowns of the problem. The given structure is immersed in the free space. These currents or fields are discretized as a collection of elementary currents or fields with small finite spatial extents. Such elementary currents or fields are called basis functions. They obviously have a vectorial nature and must satisfy Maxwell's equations and relevant boundary conditions individually. The actual currents or fields on the surface of the given structure (the solution of the problem) are expressed as a superposition of these elementary currents or fields with initially unknown amplitudes. Through the MoM solution, you find these unknown amplitudes, from which you can then calculate the currents or fields everywhere in the structure.
[[EM.Cubeâs Cube]]âs [[MoM3D Module|MoM3D module]] offers two distinct 3D MoM simulation engine. The first one is a Wire MoM solver that can be used to simulate wireframe models of metallic structures. This solver is particularly useful for modeling wire-type antennas and arrays. The second engine features a powerful surface MoM solver. It can model metallic surfaces and solids as well as solid dielectric objects. The Surface MoM solver uses a surface integral equation formulation of Maxwell's equations. In the case of solid dielectric objects, equivalent electric and magnetic currents are assumed on the surface of the dielectric object to formulate the interior and exterior boundary value problems.
=== Free Space Greenâs Function ===
=== Galerkin Testing ===
The integral equation derived in the previous section can be solved numerically by discretizing the computational domain using a proper meshing scheme. The original functional equation is reduced to a set of discretized linear algebraic equations over elementary cells. The unknown quantities are found by solving this system of linear equations, and many other [[parameters ]] can be computed thereafter. This method of numerical solution of integral equations is known as the Method of Moments (MoM). In this method, the unknown electric current is represented by an expansion of basis functions as follows:
:<math> \mathbf{J(r)} = \sum_{n=1}^N {I_n}^{(J)} \mathbf{ {f_n}^{(J)}(r) }</math>
=== Defining Groups Of PEC Objects ===
[[EM.Cube]]'s [[MoM3D Module]] features two different simulation engines: Wire MoM and Surface MoM. Both simulation engines can handle metallic structures. The Wire MoM engine models metallic objects as wireframe structures, while the Surface MoM engine treats them as perfect electric conductor (PEC) surfaces. The PEC objects can be lines, curves, surfaces or solids. All the PEC objects are created under the '''PEC''' node in the '''Physical Structure''' section of the Navigation Tree. Objects are grouped together by their color. You can insert different PEC groups with different colors. A new PEC group can be defined by simply right clicking on the '''PEC''' item in the Navigation Tree and selecting '''Insert New PEC...''' from the contextual menu. A dialog for setting up the PEC properties opens up. From this dialog you can change the name of the group or its color. Note that PEC object do not have any material properties that can be edited.
[[File:wire_pic1.png]] [[File:wire_pic2.png]]
[[File:FDTD4.png|thumb|250px|[[MoM3D Module]]'s Dielectric dialog]]
Of the two simulation engines of [[EM.Cube]]'s [[MoM3D Module]] only the Surface MoM solver can handle dielectric objects as dielectric materials cannot be modeled by wireframe structures. Dielectric objects are created under the '''Dielectric''' node in the '''Physical Structure''' section of the Navigation Tree. They are grouped together by their color and material properties. You can insert different dielectric groups with different colors and different permittivity e<sub>r</sub> and electric conductivity s. Note that a PEC object is the limiting cases of a lossy dielectric material when σ → ∞.
To define a new Dielectric group, follow these steps:
* Right click on the '''Dielectric''' item of the Navigation Tree and select '''Insert New Dielectric...''' from the contextual menu.
* Specify a '''Label''', '''Color''' (and optional Texture) and the electromagnetic properties of the dielectric material to be created: '''Relative Permittivity''' (e<sub>r</sub>) and '''Electric Conductivity''' (s).
* You may also choose from a list of preloaded material types. Click the button labeled '''Material''' to open [[EM.Cube]]'s Materials dialog. Select the desired material from the list or type the first letter of a material to find it. For example, typing '''V''' selects '''Vacuum''' in the list. Once you close the dialog by clicking '''OK''', the selected material properties fill the parameter fields automatically.
* Click the '''OK''' button of the dielectric material dialog to accept the changes and close it.
[[File:FDTD5.png]]
Figure: [[EM.Cube]]'s material list.
=== Moving Objects Between Groups & Modules ===
By default, the last PEC group that was defined is active. The current active group is always listed in bold letters in the Navigation Tree. All the new objects are inserted under the current active group. A group can be activated with a right click on its entry in the Navigation Tree and then selecting the '''Active''' item of the contextual menu. You can move one or more selected objects to any desired PEC group. Right click on the highlighted selection and select '''Move To [[File:larrow_tn.png]] MoM3D [[File:larrow_tn.png]]''' from the contextual menu. This opens another sub-menu with a list of all the available PEC groups already defined in the [[PO Module]]. Select the desired PEC group, and all the selected objects will move to that group. The objects can be selected either in the project workspace, or their names can be selected from the Navigation Tree. In the latter case, make sure that you hold the keyboard's '''Shift Key''' or '''Ctrl Key''' down while selecting a PEC group's name from the contextual menu. In a similar way, you can move one or more objects from a Physical Optics PEC group to [[EM.Cube|EM.CUBE]]'s other modules. In this case, the sub-[[menus ]] of the''' Move To [[File:larrow_tn.png]]''' item of the contextual menu will indicate all the [[EM.Cube|EM.CUBE ]] modules that have valid groups for transfer of the select objects.
=== 3D MoM Mesh Types ===
=== Creating & Viewing The Mesh ===
The [[MoM3D Module]]'s method of moments solver assumes an infinite open boundary for your project's structure and uses the free space Green's functions for the background structure. As a result, the extents of the computational domain are infinite in all directions. The mesh generation process in [[EM.Cube|EM.CUBE]]'s [[MoM3D Module]] involves three steps:
# Setting the mesh properties.
# Verifying the mesh.
The commercial release of [[EM.Cube|EM.CUBE]]'s [[MoM3D Module]] provides a Wire MoM solver. In this simulation engine, all the metallic objects are discretized as a wire-frame structure. Wires, line and curves are discretized as polylines made up of small linear cells (segments).Surface and [[Solid Objects|solid objects]] are discretized as a wire-frame mesh with triangular cells. The MoM3D mesh generator meshes the wires based on a specified mesh sampling rate expressed in cells/&lambda<sub>0</sub>. Curves are first polygonized and converted into '''Polyline''' Objects, whose edge lengths follow the specified mesh sampling rate. In the case of [[Solid Objects|solid objects]], only their surface and faces are discretized using a triangular wireframe mesh, which is regarded as a grid of interconnected wires. Two algorithms are offered for generation of a triangular wireframe mesh. The default algorithm is '''Regular Wireframe'''. This mesh generator creates wireframe elements that have almost equal edge lengths. The other algorithm is '''Structured Wireframe''', which usually creates a very structured wireframe with a large number of aligned wireframe elements.
To view the [[MoM3D Module]]'s wire-frame mesh, click on the [[File:mesh_tool_tn.png]] button of the '''Compute Toolbar''' or select '''Menu [[File:larrow_tn.png]] Compute [[File:larrow_tn.png]] Discretization [[File:larrow_tn.png]] Shoe Mesh''' or use the keyboard shortcut '''Ctrl+M'''. When the wire-frame mesh is displayed in the Project Workspace, [[EM.Cube|EM.CUBE]]'s mesh view mode is enabled. In this mode, you can perform view operations like rotate view, pan, zoom, etc. However, you cannot select or move or edit objects. While the mesh view is enabled, the '''Show Mesh''' [[File:mesh_tool.png]] button remains depressed. To get back to the Normal View mode, click this button one more time, or deselect '''Menu [[File:larrow_tn.png]] Compute [[File:larrow_tn.png]] Discretization [[File:larrow_tn.png]] Show Mesh''' to remove its check mark or simply click the '''Esc Key''' of the keyboard."Show Mesh" generates a new mesh and displays it if there is none in the memory, or it simply displays an existing mesh in the memory. This is a useful feature because generating a wire-frame mesh may take a long time depending on the complexity and size of objects. If you change the structure or alter the mesh settings, a new mesh is always generated. You can ignore the mesh in the memory and force [[EM.Cube|EM.CUBE ]] to generate a mesh from the ground up by selecting '''Menu [[File:larrow_tn.png]] Compute [[File:larrow_tn.png]] Discretization [[File:larrow_tn.png]] Regenerate Mesh''' or by right clicking on the '''3-D Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.
[[File:wire_pic5_tn.png]]
=== Mesh of Connected Objects ===
All the [[Solid Objects|solid objects]] belonging to the same PEC group are merged together using the Boolean union operation before meshing. If your structure contains attached, interconnected or overlapping [[Solid Objects|solid objects]], their internal common faces are removed and only the surface of the external faces is meshed. Similarly, all the [[Surface Objects|surface objects]] belonging to the same PEC group are merged together before meshing. However, following [[EM.Cube|EM.CUBE]]'s union rules, a solid and a surface object cannot not be "unioned" together. Therefore, their meshes will not connect even if the two objects belong to the same PEC group.
You can connect a line object to a touching surface. To connect lines to surfaces and allow for current continuity, you must make sure that the box labeled '''Connect Lines to Touching Surfaces''' is checked in the '''Mesh Settings Dialog'''. If the end of a line lies on a flat surface, [[EM.Cube|EM.CUBE ]] will detect that and create the connection automatically. However, this may not always be the case if the surface is not flat and has curvature. In such cases, you have to specifically instruct [[EM.Cube|EM.CUBE ]] to enforce the connection. An example of this case is shown in the figure below.
[[File:wire_pic7_tn.png|260px]] [[File:wire_pic8_tn.png|260px]] [[File:wire_pic9_tn.png|260px]]
=== Local Mesh Control ===
[[EM.Cube|EM.CUBE ]] applies the global mesh sampling rate to discretize all the objects in the Project Workspace. However, you can lock the mesh sampling rate of any PEC group to a desired value different than the global rate. To do so, open the property dialog of a PEC group by right clicking on its name in the Navigation Tree and select '''Properties...''' from the contextual menu. At the bottom of the dialog, check the box labeled '''Lock Mesh'''. This will enable the '''Sampling Rate''' box, where you can set a desired value. The default value is equal to the global mesh sampling rate. Keep in mind that objects that belong to different PEC groups are not merged during the mesh generation even if they overlap or are intended to be connected to one another.<br />
[[File:wire_pic10.png]]
=== Gaps Sources On Wires ===
A Gap is an infinitesimally narrow discontinuity that is placed on the path of the current. In [[EM.Cube]]'s [[MoM3D Module]], a gap is used to define an excitation source in the form of an ideal voltage source. Gap sources can be placed only on '''Line''' and '''Polyline''' objects. '''If you want to excite a curved wire antennas such as a circular loop or helix with a gap source, first you have to convert the curve object into a polyline using [[EM.Cube]]'s Polygonize Tool.''' The gap splits the wire into two segment with a an infinitesimally small spacing between them, across which the ideal voltage source is connected. To define a new gap source, follow these steps:
* Right click on the '''Gap Sources''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' from the contextual menu. The Gap Source Dialog opens up.
[[File:wire_pic15.png|thumb|300px|[[MoM3D Module]]'s lumped element dialog]]
In [[EM.Cube]]'s [[MoM3D Module]], you can define simple lumped elements in a similar manner as gap sources. In fact, a lumped element is equivalent to an infinitesimally narrow gap that is placed in the path of the current, across which Ohm's law is enforced as a boundary condition. You can define passive RLC lumped elements or active lumped elements containing a voltage gap source. The latter case can be used to excite a wire structure and model a non-ideal voltage source with an internal resistance. Unlike the [[FDTD Module]]'s single-device lumped loads that connect between two adjacent nodes, the [[MoM3D Module]]'s lumped circuit represent a series-parallel combination of resistor, inductor and capacitor elements. This is shown in the figure below:
[[File:image106.png]]
Ports are used to order and index gap sources for S parameter calculation. They are defined in the '''Observables''' section of the Navigation Tree. Right click on the '''Port Definition''' item of the Navigation Tree and select '''Insert New Port Definition...''' from the contextual menu. The Port Definition Dialog opens up, showing the total number of existing sources in the workspace. By default, as many ports as the total number of sources are created. You can define any number of ports equal to or less than the total number of sources. This includes both gap sources and active lumped elements (which contain gap sources). In the '''Port Association''' section of this dialog, you can go over each one of the sources and associate them with a desired port. Note that you can associate more than one source with same given port. In this case, you will have a coupled port. All the coupled sources are listed as associated with a single port. However, you cannot associate the same source with more than one port. Finally, you can assign '''Port Impedance''' in Ohms. By default, all port impedances are 50Σ. The table titled '''Port Configuration''' lists all the ports and their associated sources and port impedances.
{{Note|In [[EM.Cube|EM.CUBE ]] you cannot assign ports to an array object, even if it contains sources on its elements. To calculate the S [[parameters ]] of an antenna array, you have to construct it using individual elements, not as an array object.}}
[[File:port-definition.png]]
* In the '''Direction Unit Vector''' section, you can specify the orientation of the short dipole by setting values for the components '''uX''', '''uY''', and '''uZ''' of the dipole's unit vector. The default values correspond to a vertical (Z-directed) short dipole. The dialog normalizes the vector components upon closure even if your component values do not satisfy a unit magnitude.
When you simulate a wire structure in the [[MoM3D Module]], you can define a '''Current Distribution Observable''' in your project. This is used not only to visualize the current distribution in the project workspace but also to save the current solution into an ASCII data file. This data file is called "MoM.IDI" by default and has a '''.IDI''' file extension. The current data are saved as line segments representing each of the wire cells together with the complex current at the center of each cell. In the [[MoM3D Module]], you can import the current data from an existing '''.IDI''' file to serve as a set of short dipoles for excitation. To import a wire current solution, right click on '''Short Dipoles''' item in the '''Sources''' section of the Navigation Tree and select '''Import Dipole Source...''' from the contextual menu. This opens up the standard [[Windows ]] Open dialog with the file type set to '''.IDI'''. Browse your folders to find the right current data file. Once you find it, select it and click the '''Open''' button of the dialog. This will create as many short dipole sources on the [[PO Module]]'s Navigation Tree as the total number of mesh cells in the Wire MoM solution. From this point on, each of the imported dipoles behave like a regular short dipole source. You can open the property dialog of each individual source and modify its [[parameters]].
=== Plane Wave Sources ===
[[File:po_phys15.png|thumb|300px|plane wave dialog]]
The wire-frame structure in the [[MoM3D Module]] can be excited by an incident plane wave. In particular, a plane wave source can be used to compute the radar cross section of a metallic target. A plane wave is defined by its propagation vector indicating the direction of incidence and its polarization. [[EM.Cube|EM.CUBE]]'s [[MoM3D Module]] provides the following polarization options:
* TMz
[[File:wire_pic19.png|thumb|300px|[[MoM3D Module]]'s run simulation dialog]]
Once you have set up your metal structure in [[EM.Cube|EM.CUBE]]'s [[MoM3D Module]], have defined sources and observables and have examined the quality of the structure's wire-frame mesh, you are ready to run a simulation. To open the Run Simulation Dialog, click the '''Run''' [[File:run_icon.png]] button of the '''Compute Toolbar''' or select Menu [[File:larrow_tn.png]] Compute [[File:larrow_tn.png]] Run...or use the keyboard shortcut '''Ctrl+R'''. To start the simulation click the '''Run''' button of this dialog. Once the Wire MoM simulation starts, a new dialog called '''Output Window''' opens up that reports the various stages of Wire MoM simulation, displays the running time and shows the percentage of completion for certain tasks during the Wire MoM simulation process. A prompt announces the completion of the Wire MoM simulation. At this time, [[EM.Cube|EM.CUBE ]] generates a number of output data files that contain all the computed simulation data. These include current distributions, near field data, far field radiation pattern data as well bi-static or mono-static radar cross sections (RCS) if the structure is excited by a plane wave source.
You have the choice to run a '''Fixed Frequency''' simulation, which is the default choice, or run a '''Frequency Sweep'''. In the former case, the simulation will be carried out at the '''Center Frequency''' of the project. This frequency can be changed from the Frequency Dialog of the project or you can click the Frequency Settings button of the Run Dialog to open up the Frequency Settings dialog. You can change the value of Center Frequency from this dialog, too.
=== Setting Wire MoM Numerical Parameters ===
A Wire MoM simulation involves a number of numerical [[parameters ]] that normally take default values unless you change them. You can access these [[parameters ]] and change their values by clicking on the '''Settings''' button next to the "Select Engine" drop-down list in the '''Run Dialog'''. This opens up the Wire MoM Engine Settings Dialog. In the '''Solver''' section of the dialog, you can choose the type of linear solver. The current options are '''LU''' and '''Bi-Conjugate Gradient (BiCG)'''. The LU solver is a direct solver and is the default option of the [[MoM3D Module]]. The BiCG solver is iterative. Once selected, you have to set a '''Tolerance''' for its convergence. You can also change the maximum number of BiCG iterations by setting a new value for '''Max. No. of Solver Iterations / System Size'''. The Wire MoM simulator is based on Pocklington's integral equation method. In this method, the wires are assumed to have a very small radius. The basis functions are placed on the axis of the "wire cylinder", while the Galerkin testing is carried out on its surface to avoid the singularity of the Green's functions. In the "Source Singularity" section of the dialog, you can specify the '''Wire Radius''' . [[EM.Cube|EM.CUBE]]'s [[MoM3D Module]] assumes an identical wire radius for all wires and wireframe structures. This radius is expressed in free space wavelengths and its default value is 0.001λ<sub>0</sub>. The value of the wire radius has a direct influence on the wire's computed reactance.
[[File:wire_pic21.png]]
[[File:wire_pic25.png|thumb|300px|[[MoM3D Module]]'s current distribution dialog]]
At the end of a MoM3D simulation, [[EM.Cube|EM.CUBE]]'s Wire MoM engine generates a number of output data files that contain all the computed simulation data. The main output data are the current distributions and far fields. You can easily examine the 3-D color-coded intensity plots of current distributions in the Project Workspace. Current distributions are visualized on all the wires and the magnitude and phase of the electric currents are plotted for all the PEC objects. In order to view these currents, you must first define current sensors before running the Wire MoM simulation. To do this, right click on the '''Current Distributions''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''. The Current Distribution Dialog opens up. Accept the default settings and close the dialog. A new current distribution node is added to the Navigation Tree. Unlike the [[Planar Module]], in the [[MoM3D Module]] you can define only one current distribution node in the Navigation Tree, which covers all the PEC object in the Project Workspace. After a Wire MoM simulation is completed, new plots are added under the current distribution node of the Navigation Tree. Separate plots are produced for the magnitude and phase of the linear wire currents. The magnitude maps are plotted on a normalized scale with the minimum and maximum values displayed in the legend box. The phase maps are plotted in radians between -π and π.
Current distribution maps are displayed with some default settings and options. You can customize the individual maps (total, magnitude, phase, etc.). To do so, open the '''Output Plot Settings Dialog''' by right clicking on the specific plot entry in the Navigation Tree and selecting '''Properties...''' or by double clicking on the surface of the plot's legend box. Two '''scale''' options are available: '''Linear''' and '''dB'''. With the '''Linear''' (default) option selected, the current value is always normalized to the maximum total current in that plane, and the normalized scale is mapped between the minimum and maximum values. If the '''dB''' option is selected, the normalized current is converted to dB scale. The plot limits (bounds) can be set individually for every current distribution plot. In the '''Limits''' section of the plot's property dialog, you see four options: '''Default''', '''User Defined''', '''95% Conf.''' and '''95% Conf.'''. Select the user defined option and enter new values for the '''Lower''' and '''Upper''' limits. The last two options are used to remove the outlier data within the 95% and 99% confidence intervals, respectively. In other words, the lower and upper limits are set to ? ± 1.96? and ? ± 2.79? , respectively, assuming a normal distribution of the data. Three color maps are offered: '''Default''', '''Rainbow''' and '''Grayscale'''. You can hide the legend box by deselecting the box labeled '''Show Legend Box'''. You can also change the foreground and background colors of the legend box.
=== Scattering Parameters and Port Characteristics ===
If the project structure is excited by gap sources, and one or more ports have been defined, the Wire MoM engine calculates the scattering (S) [[parameters ]] of the selected ports, all based on the port impedances specified in the project's "Port Definition". If more than one port has been defined in the project, the scattering matrix of the multiport network is calculated. The S [[parameters ]] are written into output ASCII data files. Since these data are complex, they are stored as '''.CPX''' files. Every file begins with a header starting with "#". The admittance (Y) and impedance (Z) [[parameters ]] are also calculated and saved in complex data files with '''.CPX''' file extensions. The voltage standing wave ratio of the structure at the first port is also computed and saved to a real data '''.DAT''' file.
You can plot the port characteristics from the Navigation Tree. Right click on the '''Port Definition''' item in the '''Observables''' section of the Navigation Tree and select one of the items: '''Plot S [[Parameters]]''', '''Plot Y [[Parameters]]''', '''Plot Z [[Parameters]]''', or '''Plot VSWR'''. In the first three cases, another sub-menu gives a list of individual port [[parameters]]. Keep in mind that in multi-port structures, each individual port parameter has its own graph. You can also see a list of all the port characteristics data files in [[EM.Cube|EM.CUBE]]'s data manager. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or select '''Compute [[File:larrow_tn.png]]Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. Select any data file by clicking and highlighting its '''ID''' in the table and then click the '''Plot''' button to plot the graph. By default, the S [[parameters ]] are plotted as double magnitude-phase graphs, while the Y and Z [[parameters ]] are plotted as double real-imaginary part graphs. The VSWR data are plotted on a Cartesian graph. You change the format of complex data plots. In general complex data can be plotted in three forms:
# Magnitude and Phase
# Smith Chart
In particular, it may be useful to plot the S<sub>ii</sub> [[parameters ]] on a Smith chart. To change the format of a data plot, go to the row in the '''Data Manager Dialog''' that contains a specific complex data file's name and click on the fourth column under the title '''Graph Type'''. The selected table cell turns into a dropdown list that contains the above three formats. Select the desired format and click the '''Plot''' button of the data manager dialog to plot the data in the new format.
[[File:wire_pic56.png]]
[[EM.Cube|EM.CUBE]]'s data manager showing the port characteristics data files for a two-port structure consisting of two adjacent dipoles.
The magnitude and phase graphs of the S<sub>11</sub> parameter.
[[File:wire_pic30.png|thumb|300px|[[MoM3D Module]]'s field sensor dialog]]
[[EM.Cube|EM.CUBE ]] allows you to visualize the near fields at a specific field sensor plane. Calculation of near fields is a post-processing process and may take a considerable amount of time depending on the resolution that you specify. To define a new Field Sensor, follow these steps:
* Right click on the '''Field Sensors''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New Observable...'''
* The '''Label''' box allows you to change the sensorâs name. you can also change the color of the field sensor plane using the '''Color''' button.
* Set the '''Direction''' of the field sensor. This is specified by the normal vector of the sensor plane. The available options are '''X''', '''Y''' and '''Z''', with the last being the default option.
* By default [[EM.Cube|EM.CUBE ]] creates a field sensor plane passing through the origin of coordinates (0,0,0) and coinciding with the XY plane. You can change the location of the sensor plane to any point by typing in new values for the X, Y and Z '''Center Coordinates'''. You can also changes these coordinates using the spin buttons. Keep in mind that you can move a sensor plane only along the specified direction of the sensor. Therefore, only one coordinate can effectively be changed. As you increment or decrement this coordinate, you can observe the sensor plane moving along that direction in the Project Workspace.
* The initial size of the sensor plane is 100 Ã 100 project units. You can change the dimensions of the sensor plane to any desired size. You can also set the '''Number of Samples''' along the different directions. These determine the resolution of near field calculations. Keep in mind that large numbers of samples may result in long computation times.
=== Modeling Antenna Arrays ===
In view of far field characteristics, [[EM.Cube|EM.CUBE ]] can handle antenna arrays in two different ways. The first approach is full-wave and requires building an array of radiating elements using the '''Array Tool''' and feeding individual array elements using some type of excitation. This method is very accurate and takes into account all the inter-element coupling effects. At the end of the Wire MoM simulation of the array structure, you can plot the radiation patterns and other far field characteristics of the antenna array just like any other wire-frame structure. The second approach is based on the "Array Factor" concept and ignores any inter-element coupling effects. In this approach, you can regard the structure in the project workspace as a single radiating element. A specified array factor can be calculated and multiplied by the element pattern to estimate the radiation pattern of the overall radiating array. To define an array factor, open the '''Radiation Pattern Dialog''' of the project. In the section titled '''Impose Array Factor''', you will see a default value of 1 for the '''Number of Elements''' along the three X, Y and Z directions. This implies a single radiator, which is your structure in the project workspace. There are also default zero values for the '''Element Spacing''' along the X, Y and Z directions. You should change both the number of elements and element spacing in the X, Y or Z directions to define any desired finite array lattice. For example, you can define a linear array by setting the number of elements to 1 in two directions and entering a larger value for the number of elements along the third direction.
The radiation patterns of antenna arrays usually have a main beam and several side lobes. Some [[parameters ]] of interest in such structures include the '''Half Power Beam Width (HPBW)''', '''Maximum Side Lobe Level (SLL)''' and '''First Null [[Parameters]]''' such as first null level and first null beam width. You can have [[EM.Cube|EM.CUBE ]] calculate all such [[parameters ]] if you check the relevant boxes in the "Additional Radiation Characteristics" section of the '''Radiation Pattern Dialog'''. These quantities are saved into ASCII data files of similar names with '''.DAT''' file extensions. In particular, you can plot such data files at the end of a sweep simulation.
{{Note|Defining an array factor in the radiation pattern dialog simply performs a post-processing calculation. The resulting far field obviously do not take into account any inter-element coupling effects as [[EM.Cube|EM.CUBE ]] does not construct a real physical array in the project workspace.}}
{{Note|Using an array factor for far field calculation, you cannot assign non-uniform amplitude or phase distribution to the array elements. For this purpose, you have to define an array object.}}
[[File:wire_pic49.png|thumb|300px|[[MoM3D Module]]'s RCS dialog]]
When the wire-frame structure is excited by a plane wave source, the calculated far field data indeed represent the scattered fields. [[EM.Cube|EM.CUBE ]] calculates the radar cross section (RCS) of a target, which is defined in the following manner:
:<math> \sigma = 4\pi R^2 \cdot \frac{|E_{scat}|^2}{|E_{inc}|^2} </math>
<!--[[File:rcs_equation.png]]-->
[[EM.Cube|EM.CUBE ]] calculates three RCS quantities: the φ and θ components of the radar cross section as well as the total radar cross section: σ<sub>θ</sub>, σ<sub>φ</sub>, and σ<sub>tot</sub>. In addition, [[EM.Cube|EM.CUBE ]] [[MoM3D Module]] calculates two types of RCS for each structure: '''Bi-Static RCS''' and '''Mono-Static RCS'''. In bi-static RCS, the structure is illuminated by a plane wave at incidence angles θ<sub>0</sub> and φ<sub>0</sub> and the RCS is measured and plotted at all θ and φ angles. In mono-static RCS, the structure is illuminated by a plane wave at incidence angles θ<sub>0</sub> and φ<sub>0</sub> and the RCS is measured and plotted at the echo angles 180°-θ<sub>0</sub> and φ<sub>0</sub>.It is clear that in the case of mono-static RCS, the Wire MoM simulation engine runs an internal angular sweep, whereby the values of the plane wave incidence angles θ<sub>0</sub> and φ<sub>0</sub> are varied over the intervals [0°, 180°] and [0°, 360°], respectively, and the backscatter RCS is recorded.
To calculate RCS, first you have to define an RCS observable instead of a radiation pattern. Right click on the '''Far Fields''' item in the '''Observables''' section of the Navigation Tree and select '''Insert New RCS...''' to open the Radar Cross Section Dialog. Use the '''Label''' box to change the name of the far field or change the color of the far field box using the '''Color''' button. Select the type of RCS from the two radio buttons labeled '''Bi-Static RCS''' and '''Mono-Static RCS'''. The former is the default choice. The resolution of RCS calculation is specified by '''Angle Increment''' expressed in degrees. By default, the θ and φ angles are incremented by 5 degrees. At the end of a Wire MoM simulation, besides calculating the RCS data over the entire (spherical) 3-D space, a number of 2-D RCS graphs are also generated. These are RCS cuts at certain planes, which include the three principal XY, YZ and ZX planes plus one additional constant φ-cut. This latter cut is at φ=45° by default. You can assign another phi angle in degrees in the box labeled '''Non-Principal Phi Plane'''.
At the end of a Wire MoM simulation, the thee RCS plots σ<sub>θ</sub>, σ<sub>φ</sub>, and σ<sub>tot</sub>are added under the far field section of the Navigation Tree. These plots are very similar to the three 3-D radiation pattern plots. You can view them by clicking on their names in the navigation tree. The RCS values are expressed in m<sup>2</sup>. For visualization purposes, the 3-D plots are normalized to the maximum RCS value, which is also displayed in the legend box. The 2-D RCS graphs can be plotted from [[EM.Cube|EM.CUBE]]'s data manager exactly in the same way that you plot 2-D radiation pattern graphs. A total of eight 2-D RCS graphs are available: 4 polar and 4 Cartesian graphs for the XY, YZ, ZX and user defined plane cuts. At the end of a sweep simulation, [[EM.Cube|EM.CUBE ]] calculates some other quantities including the backscatter RCS (BRCS), forward-scatter RCS (FRCS) and the maximum RCS (MRCS) as functions of the sweep variable (frequency, angle, or any user defined variable). In this case, the RCS needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth & Elevation''' in the "Output Settings" section of the '''Radar Cross Section Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.
{{Note|Computing the 3-D mono-static RCS may take an enormous amount of computation time.}}
=== Customizing 3D Plots ===
Similar to the current distribution and field sensor plots, [[EM.Cube|EM.CUBE]]'s 3-D radiation pattern plots are interactive. When you move the mouse over a pattern plot, tiny dots appear on its surface. These dots correspond to the theta-phi angle pairs on the surface of the unit sphere where the far field data have been calculated. Upon mouse-over, you can highlight one of these points. A small tooltip appears on the plot that shows the normalized far field value in that direction.
[[File:wire_pic41_tn.png]]
At the end of a Wire MoM simulation, the radiation pattern data E<sub>θ</sub>, E<sub>φ</sub>, and E<sub>tot</sub> in the three principal XY, YZ and ZX planes as well as an additional user defined phi plane cut are available for plotting on 2-D graphs. There are a total of eight 2D pattern graphs in the data manager: 4 polar graphs and 4 Cartesian graphs of the same pattern data. To open data manager, click the '''Data Manager''' [[File:data_manager_icon.png]] button of the '''Compute Toolbar''' or select '''Compute [[File:larrow_tn.png]]Data Manager''' from the menu bar or right click on the '''Data Manager''' item of the Navigation Tree and select Open Data Manager... from the contextual menu or use the keyboard shortcut '''Ctrl+D'''. In the Data manager Dialog, you will see a list of all the data files available for plotting. These include the four polar pattern data files with a '''.ANG''' file extension and the four Cartesian pattern data file with a '''.DAT''' file extension. Select any data file by clicking and highlighting its '''ID''' in the table and then click the '''Plot''' button to plot the graph.
At the end of a Wire MoM sweep simulation, other radiation characteristics are also computed as a function of the sweep variable (frequency, angle, or any other user defined variable). These include the '''Directivity (D0)''', '''Total Radiated Power (PRAD)''' and '''Directive Gain (DG)''' as a function of the theta and phi angles. Another radiation characteristic of interest especially in circularly polarized scenarios is the Axial Ratio. In [[EM.Cube|EM.CUBE]], the axial ratio is always defined in the LCPz or RCPz sense based on the X- and Y-components of the electric field. In order to calculate the directive gain or axial ratio, you have to check the boxes labeled '''Axial Ratio (AR)''' or '''Directive Gain (DG)''' in the "Additional Radiation Characteristics" section of the '''Radiation Pattern Dialog'''. Four 2-D Cartesian graphs of the axial ratio as functions of the theta angle a generated in the three principal XY, YZ and ZX planes as well as the additional user defined phi plane cut. At the end of a Wire MoM sweep simulation, the directive gain and axial ratio can also be plotted as functions of the sweep variable. In this case, either quantity needs to be computed at a fixed pair of phi and theta angles. These angles are specified in degrees as '''User Defined Azimuth & Elevation''' in the "Output Settings" section of the '''Radiation Pattern Dialog'''. The default values of the user defined azimuth and elevation are both zero corresponding to the zenith.
[[File:wire_pic44.png]]
=== 3D MoM Sweep Simulations ===
You can run [[EM.Cube|EM.CUBE]]'s MoM3D simulation engine in the sweep mode, whereby a parameter like frequency, plane wave angles of incidence or a user defined variable is varied over a specified range at predetermined samples. The output data are saved into data file for visualization and plotting. [[EM.Cube|EM.CUBE]]'s [[MoM3D Module]] currently offers three types of sweep:
# Frequency Sweep
The [[PO Module]]'s run simulation dialog with angular sweep selected and the angle settings dialog.
In a parametric sweep, one or more user defined [[variables]] are varied at the same time over their specified ranges. This creates a parametric space with the total number of samples equal to the product of the number of samples for each variable. The user defined [[variables]] are defined using [[EM.Cube|EM.CUBE]]'s '''[[Variables]] Dialog'''. For a description of [[EM.Cube|EM.CUBE ]] [[variables]], please refer to the [[CubeCAD|CUBECAD]] manual or the "Parametric Sweep" sections of the FDTD or [[Planar Module]] manuals.
=== Animation of MoM3D Data ===
At the end of a frequency, angular or parametric sweep simulation in [[EM.Cube|EM.CUBE]]'s [[MoM3D Module]], the output data are saved for visualization and plotting. In particular, if you have defined current distribution, field sensor or far field observables in your project, multiple 3-D plots as many as the total number of sweep samples are added to the Navigation Tree. In a single simulation run, a total of 7 current distribution plots, 14 field sensor plot and 3 radiation pattern plots or 3 RCS plots are generated under every observable node defined in the navigation tree. However, after a sweep simulation, only one plot is saved for each sweep sample. This is done to keep the resulting plots manageable. Thus, only the magnitude of the total wire currents '''|J<sub>L</sub>|''' and the total radiation pattern or total RCS are saved for each sweep sample. In the case of a field sensor observable, you have the choice to save either the total E-field magnitude plot or the total H-field magnitude plot. To change this, open the '''Field Sensor Dialog''' by right clicking on a field sensor's name in the Navigation Tree and selecting '''Properties...''' from the contextual menu. In the '''Field Display - Multiple Plots''' section of this dialog, select one of the radio sensors labeled '''E-Field''' or '''H-Field''' From this dialog, you can also choose the type of 3-D field plot for [[animation]]. The options are '''Confetti''' or '''Cone'''.
[[File:wire_pic60.png]]
Selecting control-type H-Field plot for sweep data visualization in the field sensor dialog.
Once the sweep simulation is finished, you can click any of the field plots and visualize it in the main window. You can also animate these field plots. [[Animation ]] in [[EM.Cube|EM.CUBE ]] consists of consecutive display of the plots in the main window at a preset speed. To animate the field sensor plots, right click on the field sensor's name in the Navigation Tree and select '''[[Animation]]''' from the contextual menu. The field plots start to animate beginning with the first sample, going through all the plots one by one until the last one and repeating the loop all over again. While the [[animation ]] proceeds in the main window, a dialog titled '''[[Animation ]] Controls''' pops up at the lower right corner of the screen. You can drag this dialog anywhere in the project workspace from its title bar. The controls dialog shows the title of each graph as it is reviewed. You can set the speed of [[animation ]] by typing in a value for '''Rate''', which is indeed the frame duration expressed in multiples of 100 milliseconds. The default frame duration is 300 msec. You can pause the [[animation ]] and resume at any time. You can rewind to the first sample or skip to the last sample. You can also step through the samples one at a time using the increment (forward) or decrement (backward) buttons. To stop [[animation ]] at any time, use the keyboard's '''Esc Key''' or click the '''Close (X)''' button of the [[animation ]] controls dialog.
[[File:wire_pic61_tn.png|800px]]
The [[animation ]] controls dialog and [[animation ]] of the H-field plots of a two adjacent dipoles after a frequency sweep.
[[File:wire_pic62_tn.png|800px]]
[[Animation ]] of the wire current plots of a two adjacent dipoles after a frequency sweep.