[[Image:Splash-static.jpg|right|720px]]<strong><font color="#2603c4" size="4">Electrostatic, Magnetostatic & Thermal Solvers For DC And Low Frequency Simulations</font></strong><table><tr><td>[[image:Cube-icon.png | link=Getting_Started_with_EM.Cube]] [[image:cad-ico.png | link=Building_Geometrical_Constructions_in_CubeCAD]] [[image:fdtd-ico.png | link=EM.IlluminaTempo]] is a 3D electromagnetic simulator for modeling large free[[image:prop-space structuresico. It features a high frequency asymptotic solver based on Physical Optics (PO) for simulation of electromagnetic scattering from large metallic structures and impedance surfacespng | link=EM.Terrano]] [[image:planar-ico.png | link=EM.Picasso]] [[image:metal-ico.png | link=EM.Libera]] [[image:po-ico.png | link=EM.Illumina]]</td><tr></table>[[Image:Tutorial_icon.png|30px]] '''[[EM.Cube#EM.Ferma_Documentation | EM.Ferma Tutorial Gateway]]'''
[[EMImage:Back_icon.Illuminapng|30px]] provides a computationally efficient alternative for extremely large structures when a full-wave solution becomes prohibitively expensive. Based on a high frequency asymptotic physical optics formulation, it assumes that an incident source generates currents on a metallic structure, which in turn reradiate into the free space. A challenging step in establishing the PO currents is the determination of the lit and shadowed points on complex scatterer geometries. Ray tracing from each source to the points on the scatterers to determine whether they are lit or shadowed is a time consuming task. To avoid this difficulty, '''[[EM.IlluminaCube | Back to EM.Cube Main Page]]'s simulator uses a novel Iterative Physical Optics (IPO) formulation, which automatically accounts for multiple shadowing effects.The IPO technique can effectively capture dominant, near-field, multiple scattering effects from electrically large targets.''==Product Overview==
[[=== EM.Illumina]]'s simulator is seamlessly interfaced with EM.CUBE's other simulattion engines. This module is the ideal place to define Huygens sources. These are based on Huygens surface data that are generated using Ferma in a full-wave simulator like [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]].Nutshell ===
== Methods Of Physical Optics ==EM.Ferma is a 3D static solver. It features two distinct electrostatic and magnetostatic simulation engines and a steady-state thermal simulation engine that can be used to solve a variety of static and low-frequency electromagnetic and thermal problems. The thermal solver includes both conduction and convection heat transfer mechanisms. All the three simulation engines are based on finite difference solutions of Poisson's equation for electric and magnetic potentials and temperature.
=== Physical Optics As An Asymptotic Technique ===With EM.Ferma, you can explore the electric fields due to volume charge distributions or fixed-potential perfect conductors, and magnetic fields due to wire or volume current sources and permanent magnets. Your structure may include dielectric or magnetic (permeable) material blocks. Using the thermal simulator, you can solve for the steady-state temperature distribution of structures that include perfect thermal conductors, insulators and volume heat sources. You can also use EM.Ferma's 2D quasi-static mode to compute the characteristic impedance (Z0) and effective permittivity of transmission line structures with complex cross section profiles.
Many larger-scale electromagnetic problems deal with the modeling of radar scattering from large metallic structures (targets like aircraft or vehicles) or the radiation of antennas in the presence of large scatterer platforms[[Image:Info_icon. Although a full-wave analysis of such open-boundary computational problems using the method of moments (MoM) is conceptually feasible, it may not be practical due png|30px]] Click here to learn more about the enormous memory requirements for storage of the resulting moment matrices. To solve this class '''[[Electrostatic & Magnetostatic Field Analysis | Theory of problems, you may instead pursue asymptotic electromagnetic analysis methodsElectrostatic and Magnetostatic Methods]]'''.
Asymptotic methods are usually valid at high frequencies as <math>k_0 R = 2\pi R/\lambda_0 >> 1</math>, where R is the distance between the source and observation points, k<sub>0 </sub> is the free-space propagation constant and λ<sub>0 </sub>is the free-space wavelength[[Image:Info_icon. Under such conditions, electromagnetic fields and waves start png|30px]] Click here to behave learn more like optical fields and waves. Asymptotic methods are typically inspired by optical analysis. Two important examples of asymptotic methods are about the Shoot-and-Bounce-Rays (SBR) method and Physical Optics (PO). The SBR method, which is featured in EM.Cube's ''[[Propagation ModuleSteady-State_Thermal_Analysis | Theory of Steady-State Heat Transfer Methods]], is a ray tracing method based on Geometrical Optics (GO). An SBR analysis starts by shooting a number of ray tubes (or beams) off a source. It then traces all the rays as they propagate in the scene or bounce off the surface of obstructing scatterers'''. T
=== Conventional Physical Optics (GO-PO) ===<table><tr><td>[[Image:Magnet lines1.png|thumb|left|400px| Vector plot of magnetic field distribution in a cylindrical permanent magnet.]]</td></tr></table>
The following analysis assumes a general impedance surface=== EM. To treat an object with an arbitrary geometry using PO, the object is first decomposed into many small elementary patches or cells, which have a simple geometry such Ferma as a rectangle or triangle. Then, using the tangent plane approximation, the electric and magnetic surface currents, '''J(r)''' and '''M(r)''', on the lit region Static Module of the scatterer are approximated by:EM.Cube ===
:<math> \mathbf{J(r)} = (1+\alpha) \mathbf{\hat{n} \times H(r)} </math>EM.Ferma is the low-frequency '''Static Module''' of '''[[EM.Cube]]''', a comprehensive, integrated, modular electromagnetic modeling environment. EM.Ferma shares the visual interface, 3D parametric CAD modeler, data visualization tools, and many more utilities and features collectively known as [[Building_Geometrical_Constructions_in_CubeCAD | CubeCAD]] with all of [[EM.Cube]]'s other computational modules.
:<math> \mathbf{M(r)} = -(1-\alpha) \mathbf{\hat{n} \times E(r)} </math><!--[[FileImage:PO1(1)Info_icon.png|30px]]-->Click here to learn more about '''[[Getting_Started_with_EM.Cube | EM.Cube Modeling Environment]]'''.
where === Advantages & Limitations of EM.Ferma'''E(r)''' and '''H(r)''' are the incident electric and magnetic fields on the object and '''n''' is the local outward normal unit vector as shown in the figure below. a is a parameter related to the impedance Z of the surface (expressed in Ohms), which is defined in the following way:s Static Simulator ===
:<math> \alpha = \frac{1EM.Ferma computes the electric and magnetic fields independent of each other based on electrostatic and magnetostatic approximations, respectively. As a result, any "electromagnetic" coupling effects or wave retardation effects are ignored in the simulation process. In exchange, static or quasi-Z/\eta_0}{1+Z/\eta_0} </math><!static solutions are computationally much more efficient than the full-wave solutions of Maxwell's equations. Therefore, for low-frequency electromagnetic modeling problems or for simulation of sub-wavelength devices, EM.Ferma offers a faster alternative to [[File:PO2EM.pngCube]]'s full-wave modules like [[EM.Tempo]], [[EM.Picasso]] or [[EM.Libera]]. EM.Ferma currently provides a fixed->cell brick volume mesh generator. To model highly irregular geometries or curved objects, you may have to use very small cell sizes, which may lead to a large computational problem.
where <mathtable>\eta_0 = 120\pi \; \Omega</mathtr> is the intrinsic impedance of the free space<td>[[Image:Ferma L8 Fig title. Then, the png|thumb|left|400px| Vector plot of electric and magnetic currents reduce to:field distribution in a coplanar waveguide (CPW) transmission line.]]</td></tr></table>
:<math> \mathbf{J(r)} = \frac{2\eta_0}{\eta_0 + Z} \mathbf{\hat{n} \times H(r)} </math>= EM.Ferma Features at a Glance ==
:<math> \mathbf{M(r)} = - \frac{2Z}{\eta_0 + Z} \mathbf{\hat{n} \times E(r)} </math><!--[[File:PO3.png]]-->== Physical Structure Definition ===
Two limiting cases of an impedance surface are perfect <ul> <li> Perfect electric conductor (PEC) solids and perfect magnetic surfaces (Electrostatics)</li> <li> Dielectric objects (Electrostatics)</li> <li> Magnetic (permeable) objects (Magnetostatics)</li> <li> Perfect thermal conductor (PMCPTC) surface. For a PEC surface, Z = 0, α = 1, solids and one can write:surfaces (Thermal)</li> <li> Insulator objects (Thermal)</li></ul>
:<math> \mathbf{J(r)} = 2 \mathbf{\hat{n} \times H(r)} </math>== Sources ===
:<mathul> \mathbf{M <li> Fixed-potential PEC for maintaining equi-potential metal objects (rElectrostatics)} = 0 </mathli> <!--[[File:PO4.png]]li> Volume charge sources (Electrostatics)</li> <li> Volume current sources (Magnetostatics)</li> <li> Wire current sources (Magnetostatics)</li> <li> Permanent magnets (Magnetostatics)</li> <li> Fixed-temperature PTC for maintaining iso-thermal objects (Thermal)</li> <li> Volume heat sources (Thermal)</li></ul>
while for a PMC surface, Z = 8, α = -1, and one can write:= Mesh generation ===
:<mathul> \mathbf{J(r)} = 0 <li> Fixed-size brick cells</li></mathul>
:<math> \mathbf{M(r)} = -2 \mathbf{\hat{n} \times E(r)} </math><!--[[File:PO5.png]]-->== 3D Electrostatic & Magnetostatic Simulation ===
Another special case is a Huygens surface with equivalent <ul> <li> Finite difference solution of Laplace and Poisson equations for the electric scalar potential with Dirichlet and Neumann domain boundary conditions </li> <li> Finite difference solution of Laplace and Poisson equations for the magnetic surface currents. In that case, Z = vector potential with Dirichlet domain boundary conditions&etanbsp;<sub/li>0 <li> Calculation of electric scalar potential and electric field</subli> <li> Calculation of magnetic vector potential and magnetic field</li> <li> Calculation of electric flux over user defined flux boxes and capacitance</li> <li> Calculation of magnetic flux over user defined flux surfaces and inductance</li> <li> Calculation of electric and magnetic energies, α = 0, Ohmic power loss and one can write:resistance</li> <li> Parametric sweep with variable object properties or source parameters</li></ul>
:<math> \mathbf{J(r) = \hat{n} \times H(r)} </math>== 2D Quasi-Static Simulation ===
:<mathul> \mathbf{M(r) = -\hat{n} \times E(r)} <li> 2D Finite difference solution of cross section of transmission line structures</mathli> <!--[[File:PO10.png]]--li> 3D domain solution as well as 2D solution of a longitudinally infinite version of the structure defined on a 2D plane </li> <li> Calculation of electric potential and electric field distribution</li> <li> Parametric sweep of transmission line's geometric and material parameters</li> <li> Optimization of transmission line's parameters for impedance design</li></ul>
[[File:po_manual_1.png]]=== Steady-State Thermal Simulation ===
Figure 1: A diagram showing a scatterer lit by a source.<ul> <li> Finite difference solution of Laplace and Poisson equations for the temperature with Dirichlet and Neumann domain boundary conditions </li> <li> Calculation of temperature and heat flux density</li> <li> Calculation of thermal energy density on field sensor planes</li> <li> Calculation of thermal flux over user defined flux boxes</li> <li> Calculation of thermal energy</li></ul>
A major difficulty encountered in determining the PO currents of the scatterer is identification of lit and shadowed facets. Determination of lit and shadowed regions for simple, stand-alone, convex objects is rather simple. Denoting the incidence direction from a source to a point on the scatterer by the unit vector '''k''', the point is considered lit if '''n.k'''=== Data Generation <amp; 0, and shadowed if '''n.k'''> 0. These conditions, however, are only valid if there is a direct line of sight (LOS) between the source and the centroid of the cell under consideration. They cannot predict if there are any obstructing objects in the path of the incident beam or ray. For simple convex objects, a Geometrical Optics (GO) approach can be used to finds the optical LOS lines and determine the lit and shadowed areas on the object. The conventional PO can then be used to find the electric and magnetic surface currents.Visualization ===
=== Calculating Near & Far Fields In PO ===<ul> <li> Electric and magnetic field intensity and vector plots on planes</li> <li> Electric and magnetic potential intensity plots on planes</li> <li> Temperature and heat flux intensity and vector plots on planes</li> <li> Electric and magnetic energy density, dissipated power density and thermal energy density plots on planes</li> <li> Animation of field and potential plots after parametric sweeps</li> <li> Graphs of characteristic impedance and effective permittivity of transmission line structures vs. sweep variables</li> <li> Custom output parameters defined as mathematical expressions of standard outputs</li></ul>
Once == Building the electric and magnetic surface currents are determined Physical Structure in the lit regions of the scatterer(s), they act as secondary sources and radiate into the free spaceEM. These secondary fields are the scattered fields that are superposed with the primary incident fields. The near fields at every point '''r''' in space are calculated from:Ferma ==
:<math>\mathbf{ E(r) = E^{inc}(r) } + \iint_{S_J} \mathbf{ \overline{\overline{G}}_{EJ}(r|r') \cdot J(r') } ds' + \iint_{S_M} \mathbf{ \overline{\overline{G}}_{== Variety of Physical Objects in EM}(r|r') \cdot M(r') } ds'</math>.Ferma ===
:<math>\mathbf{ HThe simplest static problems involve a charge source in the free space that produces an electric field, or a current source in the free space that produces a magnetic field. In such cases, the only applicable boundary conditions are defined at the boundary of the computational domain. As soon as you introduce a dielectric object next to a charge source or a magnetic (rpermeable) = H^{inc}(r) } + \iint_{S_J} \mathbf{ \overline{\overline{G}}_{HJ}(r|r') \cdot J(r') } ds' + \iint_{S_M} \mathbf{ \overline{\overline{G}}_{HM}(r|r') \cdot Mmaterial next to a current source, you have to deal with a complex boundary value problem. In other words, you need to solve the electric or magnetic Poisson equation subject to the domain boundary conditions as well as material interface boundary conditions. The simplest thermal problem involves one or more thermal plates held at fixed temperatures. Once you introduce material blocks, you have to enforce conductive and convective boundary conditions at the interface between different materials and air. EM.Ferma uses the Finite Difference (r'FD) } ds'</math><!--[[File:PO6technique to find a numerical solution of your static boundary value problem.png]]-->
where '''G<sub>EJ</sub>''', '''G<sub>[[EM</sub>''', '''G<sub>HJ</sub>''', '''G<sub>HM</sub>''' are the dyadic Green's functions of electric and magnetic fields due to electric and magnetic currents, respectively. In EM.Cube's [[PO ModuleFerma]], offers the background structure is the free space. Therefore, all these dyadic Green's functions reduce to the simple free-space Green's function following types of the form <math>\exp(-jk_0r)/(4\pi r)</math> and the near fields reduce tophysical objects:
:<math>\begin{align}| class="wikitable"\mathbf{ E(r) |-! scope= E^{inc}"col"| Icon! scope="col"| Physical Object Type! scope="col"| Applications! scope="col"| Geometric Object Types Allowed! scope="col"| Notes & Restrictions|-| style="width:30px;" | [[File:pec_group_icon.png]]| style="width:200px;" | [[Glossary of EM.Cube's Materials, Sources, Devices & Other Physical Object Types#Fixed-Potential PEC |Fixed-Potential Perfect Electric Conductor (rPEC) } ]]& | style="width:300px;" | Modeling perfect metals with a fixed voltage| style="width:100px;" | Solid and surface objects| style="width:250px;" | Can be considered an electric source if the fixed voltage is nonzero |- jk_0 Z_0 \iint_{S_J} \left\{ \left| style="width:30px;" | [ 1 [File:diel_group_icon.png]]| style="width:200px;" | [[Glossary of EM.Cube's Materials, Sources, Devices & Other Physical Object Types#Dielectric Material |Dielectric/Magnetic Material]]| style="width:300px;" | Modeling any homogeneous or inhomogeneous material| style="width:100px;" | Solid objects| style="width:250px;" | non- \frac{j}{k_0 R} source material|- \frac{1}{| style="width:30px;" | [[File:aniso_group_icon.png]]| style="width:200px;" | [[Glossary of EM.Cube's Materials, Sources, Devices & Other Physical Object Types#Volume Charge |Volume Charge]]| style="width:300px;" | Modeling volume charge sources with a fixed charge density or an expression in the global coordinates (k_0 Rx,y,z)^2} \right| style="width:100px;" | Solid objects| style="width:250px;" | Acts as an electric source|-| style="width:30px;" | [[File:voxel_group_icon.png] \mathbf{J]| style="width:200px;" | [[Glossary of EM.Cube's Materials, Sources, Devices & Other Physical Object Types#Volume Current |Volume Current]]| style="width:300px;" | Modeling volume current sources with a fixed volume current density vector or expressions in the global coordinates (rx,y,z) | style="width:100px;" | Solid objects| style="width:250px;" | Acts as a magnetic source|-| style="width:30px;" | [[File:pmc_group_icon.png]]| style="width:200px;" | [[Glossary of EM.Cube's Materials, Sources, Devices & Other Physical Object Types#Permanent Magnet |Permanent Magnet]]| style="width:300px;" | Modeling permanent magnet sources with a fixed magnetization vector or expressions in the global coordinates (x,y,z)} | style="width:100px;" | Solid objects| style="width:250px;" | Acts as a magnetic source|- \left| style="width:30px;" | [ 1 [File:thin_group_icon.png]]| style="width:200px;" | [[Glossary of EM.Cube's Materials, Sources, Devices & Other Physical Object Types#Wire Current |Wire Current]]| style="width:300px;" | Modeling wire current sources| style="width:100px;" | Line and polyline objects| style="width:250px;" | Acts as a magnetic source|- \frac{3j}{k_0 R} | style="width:30px;" | [[File:pec_group_icon.png]]| style="width:200px;" | [[Glossary of EM.Cube's Materials, Sources, Devices & Other Physical Object Types#Fixed- \frac{3}{Temperature PTC |Fixed-Temperature Perfect Thermal Conductor (k_0 RPTC)^2} \right] \mathbf{ ]| style="width:300px;" | Modeling isothermal surfaces with a fixed temperature| style="width:100px;" | Solid and surface objects| style="width:250px;" | Can be considered a thermal source if the fixed temperature is different than the ambient temperature (\hat{R} \cdot J(r'shares the same navigation tree node as PEC object)) \hat{R} } \right\}\frac{e^{|-jk_0 R}}{4\pi R} ds' \\& + jk_0 \iint_{S_M} \left| style="width:30px;" | [ 1[File:diel_group_icon.png]]| style="width:200px;" | [[Glossary of EM.Cube's Materials, Sources, Devices & Other Physical Object Types#Dielectric Material |Insulator Material]]| style="width:300px;" | Modeling any homogeneous or inhomogeneous material| style="width:100px;" | Solid objects| style="width:250px;" | non-\frac{j}{k_0 R} \rightsource material (shares the same navigation tree node as dielectric material)|-| style="width:30px;" | [[File:aniso_group_icon.png] \mathbf{ ]| style="width:200px;" | [[Glossary of EM.Cube's Materials, Sources, Devices & Other Physical Object Types#Volume Heat Source |Volume Heat Source]]| style="width:300px;" | Modeling volume heat sources with a fixed heat density or an expression in the global coordinates (\hat{R} \times Mx,y,z) | style="width:100px;" | Solid objects| style="width:250px;" | Acts as a thermal source (r'shares the same navigation tree node as volume charge)) } \frac{e^{|-jk_0 R}}{4\pi R} ds| style="width:30px;" | [[File:Virt_group_icon.png]]| style="width:200px;" | [[Glossary of EM.Cube's Materials, Sources, Devices & Other Physical Object Types#Virtual_Object_Group | Virtual Object]]\end{align}| style="width:300px;" | Used for representing non-physical items </math>| style="width:100px;" | All types of objects| style="width:250px;" | None|}
Click on each category to learn more details about it in the [[Glossary of EM.Cube's Materials, Sources, Devices & Other Physical Object Types]].
:<math>\begin{align}\mathbf{ H(r) = H^{inc}(r) } & - jk_0 Y_0 \iint_{S_M} \left\{ \left[ 1 - \frac{j}{k_0 R} - \frac{1}{(k_0 R)^2} \right] \mathbf{M(r')} - \left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot M(r')) \hat{R} } \right\}\frac{e^{-jk_0 R}}{4\pi R} ds' \\& - jk_0 \iint_{S_J} \left[ 1-\frac{j}{k_0 R} \right] \mathbf{ (\hat{R} \times J(r')) } \frac{e^{-jk_0 R}}{4\pi R} ds'\end{align}</math><!--[[File:PO7.png]]-->== Grouping Objects by Material or Source Type ===
Your physical structure in EM.Ferma is typically made up of some kind of source object either in the free space or in the presence of one or more material objects. EM.Ferma's electrostatic and magnetostatic or thermal simulation engines then discretize the entire computational domain including these source and material objects and solve the Laplace or Poisson equations to find the electric or magnetic fields or temperature everywhere in the computational domain.
where <math> R=|rAll the geometric objects in the project workspace are organized together into object groups which share the same properties including color and electric or magnetic parameters. It is recommended that you first create object groups, and then draw new objects under the active group. To create a new object group, right-r'| \text{click on its category name in the "Physical Structure" section of the navigation tree and select one of the "Insert New Group..." items from the contextual menu. However, } k_0 = \tfrac{2\pi}{\lambda_0} \text{ if you start a new EM.Ferma project from scratch, and start drawing a new object without having previously defined any object groups, a new default "Fixed-Potential PEC" object group with a zero voltage is created and } Z_0 = 1/Y_0 = \eta_0 </math>added to the navigation tree to hold your new geometric object.
When k<sub>0</sub>r >> 1, i.e. in the far-zone field of the scatterer, It is important to note that there is a one can use the asymptotic form of the Green's functions and evaluate the radiation integrals using the stationary phase method -to obtain far-field expressions for the electric one correspondence between electrostatic and magnetic fields as followsthermal simulation entities:
{| class="wikitable"|-! scope="col"| Electrostatic Item! scope="col"| Corresponding Thermal Item|-| style="width:<math>200px;" | Electric Scalar Potential\mathbf{E^{ff}(r)} | style= \frac{jk_0 e^{"width:200px;" | Temperature|-jk_0 r}}{4\pi r} \left\{ Z_0 \mathbf{ \hat{r} \times \hat{r} } \times \iint_{S_J} \mathbf{J(r')} e^{| style="width:200px;" | Electric Field| style="width:200px;" | Heat Flux Density|-jk_0 \mathbf{\hat{r}\cdot r'}} ds' +\mathbf{\hat{r}} \times \iint_{S_M} \mathbf{M(r')} e^{| style="width:200px;" | Perfect Electric Conductor| style="width:200px;" | Perfect Thermal Conductor|-jk_0 \mathbf{ \hat{r| style="width:200px;" | Dielectric Material| style="width:200px;" | Insulator Material|-| style="width:200px;" | Volume Charge| style="width:200px;" | Volume Heat Source|} \cdot r' } } ds' \right\}</math>
:<math> \mathbf{H^{ffNote|Electrostatic and thermal solvers share the same material categories on the navigation tree. This means that PEC objects are treated as PTC objects, dielectric objects are treated as insulator objects and volume charges are treated as volume heat sources when the thermal solver is enabled.}(r)} = \frac{1}{Z_0} \mathbf{\hat{r} \times E^{ff}(r)} </math><!--[[File:PO8.png]]-->
=== Iterative Physical Optics (IPO) ===Once a new object group node has been created in the navigation tree, it becomes and remains the "Active" object group, which is always listed in bold letters. When you draw a new geometric object such as a box or a sphere, its name is added under the currently active object group. There is only one object group that is active at any time. Any group can be made active by right-clicking on its name in the navigation tree and selecting the '''Activate''' item of the contextual menu.
The induced electric and magnetic surface currents on each point of the scatterer object can be calculated from the Magnetic and Electric Field Integral Equations (MFIE & EFIE)[[Image::<math>\mathbf{J(r)} = (1+\alpha)\mathbf{\hat{n}} \times\left\lbrace \begin{align}& \mathbf{ H^{inc}(r) } - jk_0 \iint_{S_J} \left( 1 - \frac{j}{k_0 R} \right) (\mathbf{ \hat{R} \times J(rInfo_icon.png|30px]] Click here to learn more about '''[[Building Geometrical Constructions in CubeCAD#Transferring Objects Among Different Groups or Modules | Moving Objects among Different Groups]]'') }) \frac{e^{-jk_0 R}}{4\pi R} \,ds' \\.
& -j k_0 Y_0 \iint_{S_M} \left<table><tr><td> [ \[Image:STAT MAN1.png|thumb|left( 1 - \frac{j}{k_0 R} - \frac{1}{(k_0 R)^2} \right) \mathbf{M(r|480px|EM.Ferma')} -\left( 1-\frac{3j}{k_0 R}-\frac{3}{(k_0 R)^2} \right) \mathbf{ (\hat{R} \cdot M(r')) \hat{R} } \rights navigation tree.]] </td>\frac{e^{-jk_0 R}}{4\pi R} \,ds'\end{align}\right\rbrace</tr></mathtable>
=== A Note on Material and Source Types in EM.Ferma ===
:<math>\mathbf{M(r)} = -(1-\alpha)\mathbf{\hat{n}} \times\left\lbrace \begin{align}& \mathbf{ E^{inc}(r) } + jk_0 \iint_{S_M} \left( 1 - \frac{j}{k_0 R} \right) (\mathbf{ \hat{R} \times M(rIn [[EM.Cube]]') }) \frac{e^{-jk_0 R}}{4\pi R} \s other modules,ds' \\material types are categorized under the "Physical Structure" section of the navigation tree, and sources are organized under a separate "Sources" section. In those modules, all the geometric objects you draw in your project workspace typically represent material bodies. All of [[EM.Cube]] modules except for EM.Ferma require at least one excitation source to be selected from the "Sources" section of the navigation tree before you can run a simulation.
& In EM.Ferma, materials and sources are all lumped together and listed under the "Physical Structure" section of the navigation tree. In other words, there is no separate "Sources" section. For example, you can define default zero-j k_0 Z_0 \iint_{S_J} \left[ \leftpotential perfect electric conductors ( 1 - \frac{j}{k_0 R} - \frac{1}{(k_0 RPEC)^2} \right) \mathbf{J(r')} -\left( 1-\frac{3j}{k_0 R}-\frac{3}{(k_0 R)^2} \right) \mathbf{ (\hat{R} \cdot J(r')) \hat{R} } \right]\frac{e^{in your project to model metal objects. You can also define fixed-jk_0 R}}{4\pi R} \potential PEC objects with a nonzero voltage,ds'\end{align}\right\rbrace</math><!--[[File:PO9(1)which can effectively act as a voltage source for your boundary value problem. In this case, you will solve the Lapalce equation subject to the specified nonzero potential boundary values. Both types of PEC objects are defined from the same PEC node of the navigation tree by assigning different voltage values. Charge and current sources are also defined as geometric objects, and you have to draw them in the project workspace just like other material objects.png]]-->
where '''R''' == EM.Ferma'''r''' - '''r'''', R s Computational Domain == |'''R'''|, and
:<math>\mathbf{ \hat{R} = \frac{R}{|R|} = \frac{r-r'}{|r-r'|} }</math><!--[[File:PO11.png]]-->=The Domain Box===
The shadowing phenomenon can indeed be attributed In EM.Ferma, the Poisson or Laplace equations are solved subject to near-field interaction of surface currentsboundary conditions using the Finite Difference technique. The current on the lit region produces As a scattered field in the forward direction that is almost equal result, you need to specify a finite computational domain and out of phase with then specify the incident wavedomain boundary conditions. Hence, EM.Ferma's computational domain defines where the sum of domain boundary condition will be specified. A default domain box is always placed in the scattered field and incident field over the shadowed region almost cancel each other, giving rise to project workspace as soon as you draw your first object. The domain can be seen as a very small field there. This suggests blue cubic wireframe that keeping track surrounds all of multiple scattering can take care of shadowing problems automatically. In addition, the effects of multiple scattering can be readily accounted for by an iterative PO approach to be formulated nextCAD objects in the project workspace.
The starting point for To modify the iterative PO solution is domain settings, click the Domain button of the Simulate Toolbar or right-click on "3D Static Domain" entry in the above MFIE Navigation Tree and EFIE integral equationsselect "Domain Settings. To .." from the first (zero-order) approximationcontextual menu. In the Domain Settings Dialog, we the computational domain can writebe defined in two different ways: Default and Custom. The default type places an enclosing box with a specified offset from the largest bounding box of your project's CAD objects. The default offset value is 20 project units, but you can change this value arbitrarily. The custom type defines a fixed domain box by specifying the coordinates of its two opposite corners labeled Min and Max in the world coordinate system.
:<mathtable>\begin{align}& \mathbf{J^{(0)}(r)} = (1+\alpha) \mathbf{ \hat{n} \times H^{inc}(r) } \\& \mathbf{M^{(0)}(r)} = -(1-\alpha) \mathbf{ \hat{n} \times E^{inc}(r) }\end{align}</mathtr><!--td> [[FileImage:PO13Qsource5.png|thumb|left|480px|EM.Ferma's Domain Settings dialog.]]--</td></tr></table>
which are the conventional PO currents. However, this approximation does not formally recognize the lit and shadowed areas. Instead of identifying the exact boundaries of the lit and shadowed areas over a complex target, a simple condition is used first to find the primary shadowed areas. Then, through PO iterations all shadowed areas are determined automatically. When calculating the field on the scatterer for every source point, a primary shadowing condition given by '''n.k'''< 0 is examined. In complex scatterer geometries, there are shadowed points in concave regions where '''n.k'''> 0, but the correct shadowing is eventually achieved through the iteration of the PO currents. Therefore, in computation of the above equations, only the contribution of the points that satisfy the following condition are considered:===Domain Boundary Conditions===
:<math>\mathbf{ \hat{n} \cdot \hat{R}} < *EM.Ferma allows you to specify the electric potential boundary conditions on the domain box. Two options are available. The Dirichlet boundary condition is the default option and is specified as a fixed potential value on the surface of the domain walls. By default, this value is 0 \quad \text{or} \quad \mathbf{\hat{n} \cdot (r-r')} < 0<Volts. The Neumann boundary condition specifies the normal derivative of the electric scalar potential on the surface of the domain walls. This is equivalent to a constant normal electric field component on the domain walls and its value is specified in V/math><!--[[File:PO12m.png]]-->
At *The magnetostatic simulation engine always assumes Dirichlet domain boundary conditions and sets the subsequent iterations, values of the higher order PO currents are given by;magnetic vector potential to zero on all the domain walls.
[[File:PO14(1)*EM.Ferma provides two options for thermal boundary conditions on the domain box. The Dirichlet boundary condition is the default option and is specified as a fixed temperature value on the surface of the domain walls. By default, this value is 0°C. The Neumann boundary condition specifies the normal derivative of the temperature on the surface of the domain walls. This is equivalent to a constant heat flux passing through the domain walls and its value is specified in W/m<sup>2</sup>. A zero heat flux means a perfectly insulated domain box and is known as the adiabatic boundary condition.png]]
For most practical applicationsTo modify the boundary conditions, iterations up right-click on "Boundary Conditions" in the navigation tree, and select "Boundary Conditions..." from the contextual menu to open the second order is sufficientBoundary Conditions Dialog. The iterative solution will not only account for doubleWhen you switch from the electrostatic-bounce scattering over magnetostatic solver to the lit regions but thermal solver in EM.Ferma's Run Simulation dialog, it automatically checks the box labeled '''Treat as a Thermal Structure''' in the Boundary Conditions dialog. Conversely, if you check this box in the Boundary Conditions dialog, the solver type is set to the thermal solver in the Simulation Run dialog. In the "Global Thermal Properties" section of the Boundary Conditions dialog, you can set the values of the ambient temperature in °C, thermal conductivity of the environment in W/(m.K) and the convective coefficient in W/(m<sup>2</sup>.K). You can also removes disable the enforcement of the convective boundary condition on the lower order currents erroneously placed over concave shadowed areassurface of solid insulator objects.
=== General Huygens Sources ===<table><tr> <td> [[Image:fermbc.png|thumb|left|480px|EM.Ferma's Boundary Conditions dialog.]] </td></tr></table>
According to the electromagnetic equivalence theorem, if we know the tangential components of E and H fields on a closed surface, we can determine all the E and H fields inside and outside that surface in a unique way== EM. Such a surface is called a Huygens surface. At the end of a full-wave FDTD or MoM solution, all the electric and magnetic fields are known everywhere in the computational domain. We can therefore define a box around the radiating (source) structure, over which we can record the tangential E and H field components. The tangential field components are then used to define equivalent electric and magnetic surface currents over the Huygens surface as:Ferma's Simulation Data & Observables ==
:<math>\begin{align}& \mathbf{ J(r) = \hat{n} \times H(r) } \\& \mathbf{ M(r) = -\hat{n} \times E(r) }\At the end{align}</math><!--[[File:PO10(1)of an electrostatic simulation, the electric field vector and electric scalar potential values are computed at all the mesh grid points of the entire computational domain. At the end of an magnetostatic simulation, the magnetic field vector and magnetic vector potential values are computed at all the grid nodes. At the end of a thermal simulation, the temperature and heat flux vector are computed at all the mesh grid points of the entire computational domain.png]]-->
In Besides the physical optics domain, the known equivalent electric and magnetic surface currents (or indeed the known tangential E fields and H temperature, EM.Ferma can compute a number of field integral quantities such as voltage, current, flux, energy, etc. The field components) over a given closed surface S , potential values and field integrals are written into output data files and can be used to find reradiated electric and magnetic fields everywhere visualized on the screen or graphed in Data Manager only if you define a field sensor or a field integral observable. In the space as follows:absence of any observable defined in the navigation tree, the static simulation will be carried out and completed, but no output simulation data will be generated.
EM.Ferma offers the following types of output simulation data:<math>\mathbf{E^{inc}(r)} = -jk_0 \sum_j \iint_{\Delta_j} \, ds' \frac{e^{-jk_0 R}}{4\pi R}\left\lbrace
\begin{align}| class="wikitable"& Z_0 \left[ 1 |- \frac{j}{k_0 R} ! scope="col"| Icon! scope="col"| Simulation Data Type! scope="col"| Observable Type! scope="col"| Applications|- \frac{1}{(k_0 R)^2} \right| style="width:30px;" | [[File:fieldsensor_icon.png]] \mathbf{J_j(r')} \\& | style="width:150px;" | Near-Z_0 \leftField Distribution Maps| style="width:150px;" | [ 1 [Glossary of EM.Cube's Simulation Observables & Graph Types#Near- \frac{3j}{k_0 R} Field_Sensor_Observable |Near- \frac{3}{(k_0 R)^2} \rightField Sensor] \mathbf{ (\hat{R} \cdot J_j(r] | style="width:450px;" | Computing electric and magnetic field components, electric scalar potential and magnitude of magnetic vector potential on a planar cross section of the computational domain |-| style="width:30px;" | [[File:fieldsensor_icon.png]]| style="width:150px;" | Electric and Magnetic Energy and Dissipated Power Density Maps | style="width:150px;" | [[Glossary of EM.Cube')) \hat{R} } \\s Simulation Observables & Graph Types#Near-Field_Sensor_Observable |Near-Field Sensor]] | style="width:450px;" | Computing electric and magnetic energy densities and dissipated power density on a planar cross section of the computational domain |-| style="width:30px;" | [[File:fieldsensor_icon.png]]| style="width:150px;" | Temperature and Heat Flux Distribution Maps| style="width:150px;" | [[Glossary of EM.Cube's Simulation Observables & Graph Types#Near- \leftField_Sensor_Observable |Near-Field Sensor]] | style="width:450px;" | Computing temperature and heat flux components on a planar cross section of the computational domain |-| style="width:30px;" | [ 1 [File:fieldsensor_icon.png]]| style="width:150px;" | Thermal Energy Density Maps | style="width:150px;" | [[Glossary of EM.Cube's Simulation Observables & Graph Types#Near- \frac{j}{k_0 R} \rightField_Sensor_Observable |Near-Field Sensor] \mathbf{ (\hat{R} \times M_j(r] | style="width:450px;" | Computing thermal energy density on a planar cross section of the computational domain |-| style="width:30px;" | [[File:field_integ_icon.png]]| style="width:150px;" | Field Integral Quantities| style="width:150px;" | [[Glossary of EM.Cube')) }s Simulation Observables & Graph Types#Static_Field_Integral_Observable | Static Field Integral]] \end{align| style="width:450px;" | Computing line, surface and volume integrals of the electric and magnetic fields and heat flux |}
\right\rbrace</math>Click on each category to learn more details about it in the [[Glossary of EM.Cube's Simulation Observables & Graph Types]].
<table>
<tr>
<td> [[Image:Ferma L1 Fig15.png|thumb|left|640px|Electric field distribution of a spherical charge on a horizontal field sensor plane.]] </td>
</tr>
<tr>
<td> [[Image:Ferma L1 Fig16.png|thumb|left|640px|Electric scalar potential distribution of a spherical charge on a horizontal field sensor plane.]] </td>
</tr>
</table>
The table below list the different types of field integrals and their definitions:<math>\mathbf{H^{inc}(r)} = -jk_0 \sum_j \iint_{\Delta_j} \, ds' \frac{e^{-jk_0 R}}{4\pi R}\left\lbrace
{| class="wikitable"|-! scope="col"| Field Integral! scope="col"| Definition! scope="col"| Output Data File|-! scope="row"| Voltage| <math> V = - \beginint_C \mathbf{alignE(r)} . \mathbf{dl}</math>& Y_0 | voltage.DAT|-! scope="row"| Current| <math> I = \left[ 1 oint_{C_o} \mathbf{H(r)} . \mathbf{dl} </math>| current.DAT|- ! scope="row"| Conduction Current| <math> I_{cond} = \int\int_S \mathbf{J(r)} . \mathbf{ds} = \int\int_S \sigma \mathbf{E(r)} . \mathbf{ds} </math>| conduction_current.DAT|-! scope="row"| Electric Flux| <math> \Phi_E = \int\int_{S_o} \mathbf{D(r)} . \mathbf{ds} = \int\int_{S_o} \epsilon \mathbf{E(r)} . \mathbf{ds} </math>| flux_E.DAT|-! scope="row"| Magnetic Flux| <math> \Phi_H = \int\int_S \mathbf{B(r)} . \mathbf{ds} = \int\int_S \mu \mathbf{H(r)} . \mathbf{ds} </math>| flux_H.DAT|-! scope="row"| Electric Energy| <math> W_E = \frac{j1}{k_0 R2} \int \int \int_V \epsilon \vert \mathbf{E(r)} \vert ^2 dv </math>| energy_E.DAT|- ! scope="row"| Magnetic Energy| <math> W_H = \frac{1}{2} \int\int\int_V \mu \vert \mathbf{H(k_0 Rr)} \vert ^2 dv </math>| energy_H.DAT|-! scope="row"| Ohmic Power Loss| <math> P_{ohmic} = \right] int\int\int_V \sigma \vert \mathbf{M_jE(r')} \vert ^2 dv </math>| ohmic.DAT|-! scope="row"| Capacitance| <math> C = \Phi_E/V = \int\int_{S_o} \epsilon \mathbf{E(r)} . \mathbf{ds} / \int_C \mathbf{E(r)} . \mathbf{dl} </math>& | capacitance.DAT|-Y_0 ! scope="row"| Capacitance (Alternative)| <math> C = 2W_E/V^2 = 2 \int \int \int_V \epsilon \vert \mathbf{E(r)} \vert ^2 dv / \left[ 1 - ( \fracint_C \mathbf{3jE(r)}. \mathbf{k_0 Rdl} \right)^2</math>| capacitance.DAT|- ! scope="row"| Self-Inductance| <math> L = \fracPhi_H/I = \int\int_S \mu \mathbf{3H(r)}. \mathbf{ds} / \oint_{C_o} \mathbf{H(k_0 Rr)} . \mathbf{dl} </math>| inductance.DAT|-! scope="row"| Self-Inductance (Alternative)| <math> L = 2W_M/I^2= 2 \int \int \int_V \mu \vert \mathbf{H(r)} \vert ^2 dv / \left( \oint_{C_o} \mathbf{H(r)} . \mathbf{dl} \right] )^2</math>| inductance.DAT|-! scope="row"| Mutual Inductance| <math> M = \Phi_H^{\prime}/I = \int\int_{S^{\prime}} \mu \mathbf{ H(r)} . \hatmathbf{Rds} / \cdot M_joint_{C_o} \mathbf{H(r')) } . \hatmathbf{dl} </math>| mutual_inductance.DAT|-! scope="row"| Resistance| <math> R= V/I_{cond} = - \int_C \mathbf{E(r)} . \mathbf{dl} / \int\int_S \sigma \mathbf{E(r)} . \mathbf{ds} </math>& + | resistance.DAT|-! scope="row"| Resistance (Alternative 1)| <math> R = V^2/P_{ohmic} = \left[ 1 - ( \fracint_C \mathbf{jE(r)}. \mathbf{k_0 Rdl} \right] )^2 / \int\int\int_V \sigma \vert \mathbf{ E(r)} \hat{vert ^2 dv </math>| resistance.DAT|-! scope="row"| Resistance (Alternative 2)| <math> R= P_{ohmic} /I_{cond}^2 = \times J_jint\int\int_V \sigma \vert \mathbf{E(r')} \vert ^2 dv / \left( \int\int_S \sigma \mathbf{E(r) }. \mathbf{ds} \right)^2</math>| resistance.DAT|-! scope="row"| Thermal Flux| <math> \endPhi_T = \int\int_{alignS_o} \mathbf{q(r)} . \mathbf{ds} </math>| flux_T.DAT|-! scope="row"| Thermal Energy| <math> W_T = Q = \int \int \int_V \rho_V c_p \left( T\mathbf{(r)} - T_{env} \right) dv </math>| energy_T.DAT|}
\right\rbrace<table><tr> <td> [[Image:Qsource13.png|thumb|left|480px|Defining the capacitance observable in the field integral dialog.]]</mathtd><!--/tr> <tr> <tr> <td> [[FileImage:PO16Qsource11.png|thumb|left|480px|The electric flux box for calculation of charge around a capacitor.]]--</td></tr> <tr> <td> [[Image:Qsource12.png|thumb|left|480px|A line defining the voltage path for calculation of voltage between capacitor plates.]] </td></tr></table>
where == Discretizing the summation over index ''j'' is carried out for all the elementary cells Δ<sub>j</sub> that make up the Huygens box. In EM.Cube Huygens surfaces are cubic and are discretized using a rectangular mesh. Therefore, Δ<sub>j</sub> represents any rectangular cell located on one of the six faces of Huygens box. Note that the calculated near-zone electric and magnetic fields act as incident fields for the scatterers Physical Structure in your [[PO Module]] project. The Huygens source data are normally generated in one of EM.Cube's full-wave computational modules like FDTD, Planar or MoM3D. Keep in mind that the fields scattered (or reradiated) by your physical structure do not affect the fields inside the Huygens source. Ferma ==
===The far fields of the Huygens surface currents are calculated from the following relations:Static Mesh===
The Finite Difference technique discretizes the computational domain using a 3D rectangular grid. EM.Ferma generates a fixed-cell mesh. This means that the extents of the mesh cells along the principal axes are fixed:<math>\mathbf{E^{ff}Δx, Δy, Δz. By default, the mesh cell size is set to one unit project along all the three directions (rwith Δx = Δy = Δz)} = \frac{jk_0}{4\pi} \frac{e^{. To modify the cell size, click the Mesh Settings button of the Simulate Toolbar or right-jk_0 r}}{r}\sum_j \iint_{\Delta_j} \left[ Z_0 \click on "Static Mesh" in the Navigation Tree, \mathbf{ \hat{r} \times \hat{r} \times J_j(r') } + and select "Mesh Settings..." from the contextual menu to open the Mesh Settings Dialog. \mathbf{ \hat{rNote|To obtain accurate results, it is highly recommended to use a square mesh as much as possible.} \times M_j(r') } \right] e^{ -jk_0 \mathbf{\hat{r} \cdot r'} } \, ds'</math>
:<math>\mathbf{H^{ff}(r)} = \frac{1}{Z_0} \mathbf{\hat{r} \times E^{ff}(r)} </math><!--[[FileImage:PO17(1)Info_icon.png|30px]]-->Click here to learn more about '''[[Preparing_Physical_Structures_for_Electromagnetic_Simulation#Working_with_EM.Cube.27s_Mesh_Generators | Working with Mesh Generator]]'''.
== Physical Structure & Its Discretization ==[[Image:Info_icon.png|30px]] Click here to learn more about the properties of '''[[Glossary_of_EM.Cube%27s_Simulation-Related_Operations#Fixed-Cell_Brick_Mesh | EM.Ferma's Fixed-Cell Brick Mesh Generator]]'''.
=== Grouping Objects By Surface Type ===<table><tr> <td> [[Image:Qsource4.png|thumb|350px|EM.Ferma's Mesh Settings dialog.]] </td></tr></table>
EM<table><tr> <td> [[Image:Qsource2.Cube's Physical Optics (PO) Module organizes physical objects by their surface type. A regular object is assumed to be made of one png|thumb|360px|Geometry of a spherical charge source and the three surface typesenclosing domain box.]] </td><td> [[Image:Qsource3.png|thumb|360px|Fixed-cel mesh of the spherical charge object.]] </td></tr></table>
# Perfect Electric Conductor (PEC) # Perfect Magnetic Conductor (PMC) # Generalized Impedance Surface== Running Static Simulations in EM.Ferma ==
[[PO Module]] can only handle surface and [[Solid Objects|solid objects]]=== EM. No [[Curve Objects|curve objects]] are allowed in the project workspace; or else, they will be ignored during the PO simulation. You can define several PEC, PMC or impedance surface groups with different colors and impedance values (for the last type). All the objects created and drawn under a group share the same color and other properties. A new surface group can be defined by simply right clicking on one of the three Ferma'''PEC''', '''PMC''' or '''Impedance Surface''' items in the '''Physical Structure''' section of the Navigation Tree and selecting '''Insert New PEC...''', '''Insert New PMC...''', or '''Insert New Impedance Surface...''' from the contextual menu. A dialog for setting up the group properties opens up. In this dialog you can change the name of the group or its color. In the case of a surface impedance group, you can set the values for the real and imaginary parts of the '''Surface Impedance''' in Ohms. s Simulation Modes ===
[[File:PO18(1)EM.pngFerma]] [[Filecurrently offers three different simulation modes as follows:PO19.png]]
{| class="wikitable"|-! scope="col"| Simulation Mode! scope="col"| Usage! scope="col"| Number of Engine Runs! scope="col"| Frequency ! scope="col"| Restrictions|-| style="width:120px;" | [[File#Running an Electrostatic or Magnetostatic Analysis | Analysis]]| style="width:PO20270px;" | Simulates the physical structure "As Is"| style="width:100px;" | Single run| style="width:200px;" | N/A| style="width:150px;" | None|-| style="width:120px;" | [[Parametric_Modeling_%26_Simulation_Modes_in_EM.Cube#Running_Parametric_Sweep_Simulations_in_EM.pngCube | Parametric Sweep]] | style="width:270px;" | Varies the value(s) of one or more project variables| style="width:100px;" | Multiple runs| style="width:200px;" | N/A| style="width:150px;" | None|-| style="width:120px;" | [[File:PO21Parametric_Modeling_%26_Simulation_Modes_in_EM.pngCube#Performing_Optimization_in_EM.Cube | Optimization]]| style="width:270px;" | Optimizes the value(s) of one or more project variables to achieve a design goal | style="width:100px;" | Multiple runs | style="width:200px;" | N/A| style="width:150px;" | None|}
Figure 1: [[PO Module]]'s Navigation Tree and its PEC=== Running an Electrostatic, PMC and Impedance Surface dialogs.Magnetostatic or Thermal Analysis ===
=== Creating New Objects & Moving Them Around ===[[EM.Ferma]] has three independent but functionally similar static simulation engines: Electrostatic, Magnetostatic and Thermal. The electrostatic engine solves the electric form of Poisson's equation for electric scalar potential subject to electric field boundary conditions, in the presence of electric sources (volume charges and fixed-potential PEC blocks) and dielectric material media. The magnetostatic engine solves the magnetic form of Poisson's equation for magnetic vector potential subject to magnetic field boundary conditions, in the presence of magnetic sources (wire and volume currents and permanent magnetic blocks) and magnetic material media. The thermal engine solves the thermal form of Poisson's equation for steady-state temperature subject to thermal boundary conditions, in the presence of heat sources (volume sources and fixed-temperature PTC blocks) and insulator material media.
The objects that To run a static simulation, first you draw in EM.Cube's project workspace always belong have to open the "Active" surface groupRun Dialog. By default, the last object group that you created remains active until you change it. The current active group This is always listed in bold letters in the Navigation Tree. Any surface group can be made active done by right clicking on its name in the Navigation Tree and "Run" button of the Simulate Toolbar, or by selecting the "Run" item of the Simulate Menu, or simply using the keyboard shortcut "Ctrl+R". There are two available options for the simulation engine: '''ActivateElectrostatic-Magnetostatic Solver''' and '''Steady-State Thermal Solver''' item of the contextual menu. If you start a new [[PO Module]] project and draw any object without having previously defined a surface group, Clicking the Run button of this dialog starts a default PEC group is automatically created and added to static analysis. A separate window pops up which reports the Navigation Tree to hold your new objectprogress of the current simulation.
You can move one or more selected objects to any material group. Right click on the highlighted selection and select '''Move To > Physical Optics >''' from the contextual menu. This opens another sub-menu with a list of all the available surface groups already defined in <table><tr> <td> [[PO Module]]Image:Ferma L1 Fig11. Select the desired surface 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 material group's name from the contextual menu. You can also move one or more objects from a PO surface group to png|thumb|left|600px|EM.CubeFerma's other modules, or vice versa. In that case, the sub-menus of the '''Move To >''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objectsSimulation Run dialog. ]] </td></tr></table>
{{Note|In EM.Cube, Ferma you can import external CAD models (such as STEP, IGESdon't have to choose between the electrostatic or magnetostatic simulation engines. The program looks at the types of sources and material objects present in your project workspace and then it determines whether an electrostatic analysis or a magnetostatic analysis or possibly both should be performed. When there are only electric sources present, STL models, etcyou will get nonzero electric fields and zero magnetic fields.) When there are only to [[CubeCAD]]magnetic sources present, you will get nonzero magnetic fields and zero electric fields. From [[CubeCAD]]On the other hand, since the electrostatic and thermal solvers share the same navigation resources, you can then move run only one of the imported objects to any other computational module including [[PO Module]]two engines at a time. By default, the electrostatic solver is enabled.}}
[[File:PO22(1)An "Analysis" is the simplest simulation mode of EM.Ferma. It is a single-shot finite difference solution of your static problem. The physical structure of your project workspace is first discretized using a fixed-cell mesh and the Poisson equation is solved numerically everywhere in the computational domain. The field and potential values at each mesh node are computed, and the specified observables are written into data files. The other available simulation modes, parametric sweep and optimization, involve multiple runs of the static solvers.png|800px]]
Figure 1: Moving objects between different surface groups in [[PO Module]].===Static Simulation Engine Settings===
=== Generating & Customizing PO Mesh ===EM.Ferma offers two different types of linear system solver for solving the matrix equations that result from discretization of Poisson's equation: an iterative solver based on the stabilized Bi-Conjugate Gradient (BiCG) method and a Gauss-Seidel solver. The default solver type is BiCG. You can specify some numerical parameters related to the BiCG solver. To do that, you need to open the Simulation Engine Settings Dialog by clicking the "Settings" button located next to the "Select Engine" drop-down list. From this dialog you can set the maximum number of BiCG iterations, which has a default value of 10,000. You can also set a value for "Convergence Error". The default value for electrostatic analysis is 0.001. For magnetostatic analysis, the specified value of convergence error is reduced by a factor 1000 automatically. Therefore, the default convergence error in this case is 10<sup>-6</sup>.
[[File:PO23.png{{Note|thumb|250px|[[PO Module]]'s Mesh Settings dialog]]The value of convergence error affect the accuracy of your simulation results. For most practical scenarios, the default values are adequate. You can reduce the convergence error for better accuracy at the expense of longer computation time.}}
The mesh generation process in <table><tr> <td> [[PO ModuleImage:Qsource7.png|thumb|left|480px|EM.Ferma's Static Engine Settings dialog.]] involves three steps:</td></tr></table>
# Setting the mesh properties.# Generating the mesh.# Verifying the mesh.== The 2D Quasi-Static Simulation Mode==
The objects of EM.Ferma's electrostatic simulation engine features a 2D solution mode where your physical model is treated as a longitudinally infinite structure are meshed in the direction normal to specified "2D Solution Plane". A 2D solution plane is defined based on a specified mesh density expressed "Field Sensor" definition that already exists in cells/λ<sub>0</sub>your project. The default mesh density is 20 cells/λ<sub>0</sub>To explore EM. To view the PO meshFerma's 2D mode, right-click on the [[File:mesh_tool_tn.png]] button of the '''Simulate Toolbar2D Solution Planes''' or in the "Computational Domain" section of the navigation tree and select '''Menu > Simulate > Discretization > Show Mesh2D Domain Settings...''' or use from the keyboard shortcut '''Ctrl+M'''. When the PO mesh is displayed in the project workspace, EM.Cube's mesh view mode is enabledcontextual menu. 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 enabled2D Static Domain dialog, check the '''Show Mesh''' [[File:mesh_tool.png]] button remains depressed. To get back to checkbox labeled "Reduce the normal view or select mode, click this button one more time, or deselect '''Menu > Simulate > Discretization > Show Mesh''' 3D Domain to remove its check mark or simply click a 2D Solution Plane". The first field sensor observable in the '''Esc Key''' navigation tree is used for the definition of the keyboard2D solution plane.
"Show Mesh" generates At the end of a new mesh 2D electrostatic analysis, you can view the electric field and displays it if there potential results on the field sensor plane. It is none in assumed that your structure is invariant along the memorydirection normal to the 2D solution plane. Therefore, or it simply displays an existing mesh in your computed field and potential profiles must be valid at all the memoryplanes perpendicular to the specified longitudinal direction. This is A 2D structure of this type can be considered to represent a useful feature because generating a PO mesh may take a long time depending on the complexity and size transmission line of objectsinfinite length. If you change EM.Ferma also performs a quasi-static analysis of the transmission line structure or alter the mesh settings, a new mesh is always generated. You can ignore the mesh in the memory and force EMusually provides good results at lower microwave frequencies (f < 10GHz).Cube to generate a mesh from It computes the ground up by selecting '''Menu characteristics impedance Z<sub>0</sub> and effective permittivity >epsilon; Simulate > Discretization > Regenerate Mesh''' or by right clicking on the '''3-D Mesh''' item <sub>eff</sub> of the Navigation Tree multi-conductor TEM or quasi-TEM transmission line. The results are written to two output data files named "solution_plane_Z0.DAT" and selecting '''Regenerate''' from the contextual menu"solution_plane_EpsEff.DAT", respectively.
To set the PO mesh properties, click on the <table><tr> <td> [[FileImage:mesh_settingsQsource14.png]] button of the '''Simulate Toolbar''' or select '''Menu > Simulate > Discretization > Mesh Settings... '''or right click on the '''3-D Mesh''' item in the '''Discretization''' section of the Navigation Tree and select '''Mesh Settings...''' from the contextual menu, or use the keyboard shortcut '''Ctrl+G'''. You can change the value of '''Mesh Density''' to generate a triangular mesh with a higher or lower resolutions. [[PO Module]] offers two algorithms for triangular mesh generation. |thumb|left|450px|The default algorithm is '''Regular Surface Mesh''', which creates triangular elements that have almost equal edge lengths2D static domain dialog. The other algorithm is '''Structured Surface Mesh''', which usually creates a very structured mesh with a large number of aligned triangular elements. You can change the mesh generation algorithm from the dropdown list labeled '''Mesh Type'''. Another parameter that can affect the shape of the mesh especially in the case of [[Solid Objects|solid objects]] is the '''Curvature Angle Tolerance''' expressed in degrees. This parameter determines the apex angle of the triangular cells of the structured mesh. Lower values of the angle tolerance will results in more pointed triangular cells.</td></tr> </table>
=== More On Triangular Surface Mesh ===[[Image:Info_icon.png|30px]] Click here to learn more about the theory of '''[[Electrostatic_%26_Magnetostatic_Field_Analysis#2D_Quasi-Static_Solution_of_TEM_Transmission_Line_Structures | 2D Quasi-Static Analysis of Transmission Lines]]'''.
The physical optics method assumes an unbounded, open-boundary computational domain, wherein the physical structure is placed against a free space background medium. As such, only finite-extent surfaces are discretized. EM.Cube's <table><tr> <td> [[PO Module]] uses a triangular surface mesh to discretize all the surface and [[Solid Objects|solid objects]] in the project workspaceImage:Qsource16. As mentioned earlier, [[Curve Objectspng|curve objects]] (or wires) are not allowed in [[PO Module]]. In the case of solids, only the surface of the object or its faces are discretized, as the interior volume is not taken into account in a PO analysis. In general, triangular cells are placed on the exterior surface of [[Solid Objectsthumb|solid objects]]. In contrast, [[Surface Objectsleft|surface objects]] are assumed to be double-sided by default. The means that the PO mesh of a surface object indeed consists of coinciding double cells, one representing the upper or positive side 480px|A field sensor and the other representing the lower or negative side. This may lead to 2D solution plane defined for a very large number of cellsmicrostrip line. EM.Cube's PO mesh has some more settings that allow you to treat all mesh cells as double-sided or all single-sided. This can be done in the Mesh Settings dialog by checking the boxes labeled '''All Double-Sided Cells''' and '''All Single-Sided Cells'''. This is useful when your project workspace contains well-organized and well-oriented [[Surface Objects|surface objects]] only. In the single-sided case, it is very important that all the normals to the cells point towards the source. Otherwise, the [[Surface Objects|surface objects]] will be assumed to lie in the shadow region and no currents will be computed on them. By checking the box labeled '''Reverse Normal''', you instruct EM.Cube to reverse the direction of the normal vectors at the surface of all the cells.</td></tr></table>
<table><tr> <td> [[FileImage:PO24Qsource17.png|thumb|left|480px|Electric field distribution of the microstrip line on the 2D solution plane.]] </td></tr> <tr> <td> [[Image:Qsource18.png|thumb|left|480px|Electric scalar potential distribution of the microstrip line on the 2D solution plane.]]</td></tr></table>
Figure: Forcing mesh cells to be single-sided in a PO simulation.<br />
'''As a general rule, EM.Cube's PO mesh generator merges all the objects that belong to the same surface group using the Boolean Union operation.''' As a result, overlapping objects are transformed into a single consolidated object. This is particularly important for generating a contiguous and consistent mesh in the transition and junction areas between connected objects. In general, objects of the same CAD category can be "unioned". For example, [[Surface Objects|surface objects]] can be merged together, and so can [[Solid Objects|solid objects]]. However, a surface object and a solid in general do not merge. Objects that belong to different groups on the Navigation Tree are not merged during mesh generation even if they are all of PEC type and physically overlap.<hr>
[[FileImage:PO25Top_icon.png|400px30px]] '''[[File:PO26EM.pngFerma#Product_Overview |400pxBack to the Top of the Page]]'''
Figure[[Image: Geometry and PO mesh of an overlapping sphere and ellipsoidTutorial_icon.png|30px]] '''[[EM.Cube#EM.Ferma_Documentation | EM.Ferma Tutorial Gateway]]'''
=== Mesh Density & Local Mesh Control === EM.Cube's [[PO Module]] applies the mesh density specified in the Mesh Settings dialog on a global scale to discretize all the objects in the project workspace. Although the mesh density is expressed in cells per free space wavelength similar to full-wave method of moments (MoM) solvers, you have to keep in mind that the triangular surface mesh cells in PO Modules act slightly differently. The complex-valued, vectorial, electric and magnetic surface currents, '''J''' and '''M''' are assumed to be constant on the surface of each triangular cell. On plates and flat faces or surfaces, the normal vectors to all the cells are identical. Incident plane waves or other types of relatively uniform source fields induce uniform PO currents on all these cells. Therefore, a high resolution mesh may not be necessary on flat surface or faces. However, a high mesh density is very important for accurate discretization of curved objects like spheres or ellipsoids.  You can lock the mesh density of any surface group to any desired value different than the global mesh density. To do so, open the property dialog of a surface 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 '''Density '''box, where you can set a desired value. The default value is equal to the global mesh density. [[FileImage:PO31.png]] Figure 1: Locking the mesh density of a PEC group. [[File:PO32.png]] Figure 2: Triangular surface mesh of two PEC box objects with the orange PEC group having a locked mesh of higher density. == Excitation Sources == === Hertzian Dipole Sources === [[File:PO30Back_icon.png|thumb|300px|PO Module's Short Dipole Source dialog30px]] A short dipole is the simplest way of exciting a structure in EM.Cube's ''[[PO Module]]. A short dipole source acts like an infinitesimally small ideal current source. To define a short dipole source, follow these steps: * Right click on the '''Short Dipoles''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' from the contextual menu. The Short Dipole dialog opens up.* In the '''Source Location''' section of the dialog, you can set the coordinate of the center of the short dipole. By default, the source is placed at the origin of the world coordinate system at (0,0,0). You can type in new coordinates or use the spin buttons to move the dipole around.* In the '''Source Properties''' section, you can specify the '''Amplitude''' in Volts, the '''Phase''' in degrees as well as the '''Length''' of the dipole in project units.* 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. === Importing Short Dipoles From MoM3D Module === The solution of a problem in one of EM.Cube's computational modules can serve as the excitation source for another problem in another computational module. An example of this is analyzing a wire antenna in the [[MoM3D Module]] and importing the wire current solution to [[PO Module]] to excite a large scatterer. Remember that you cannot define wires or [[Curve Objects|curve objects]] in [[PO Module]]. However, you can have short dipole sources that act like differential wire elements carrying fixed currents. Using this concept, you can realize a complex wire antenna or radiator array as the source of your PO project.  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 Back 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-valued, vectorial current at the center of each cell. You can import the current data from an existing '''.IDI''' file to [[PO Module]], 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, if necessary. [[File:PO36.png|800px]] Figure: Importing a Wire MoM current solution into the [[PO Module]]. In this structure, 90 wire cell currents representing a helical antenna were imported and placed above a large sinusoidal PEC surface. === Plane Wave Sources === [[File:PO29.png|thumb|300px|PO Module's Plane Wave dialog]] Your physical structure in [[PO 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 target. A plane wave is defined by its propagation vector indicating the direction of incidence and its polarization. EM.Cube's [[PO ModuleMain Page]] provides the following polarization options: * TMz* TEz* Custom Linear* LCPz* RCPz The direction of incidence is defined through the θ and φ angles of the unit propagation vector in the spherical coordinate system. The values of these angles are set in degrees in the boxes labeled '''Theta''' and '''Phi'''. The default values are θ = 180° and φ = 0° representing a normally incident plane wave propagating along the -Z direction with a +X-polarized E-vector. In the TM<sub>z</sub> and TE<sub>z</sub> polarization cases, the magnetic and electric fields are parallel to the XY plane, respectively. The components of the unit propagation vector and normalized E- and H-field vectors are displayed in the dialog. In the more general case of custom linear polarization, besides the incidence angles, you have to enter the components of the unit electric '''Field Vector'''. However, two requirements must be satisfied: '''ê . ê''' = 1 and '''ê à k''' = 0 . This can be enforced using the '''Validate''' button at the bottom of the dialog. If these conditions are not met, an error message is generated. The left-hand (LCP) and right-hand (RCP) circular polarization cases are restricted to normal incidences only (θ = 180°). To define a plane wave source follow these steps: * Right click on the '''Plane Waves''' item in the '''Sources''' section of the Navigation Tree and select '''Insert New Source...''' The Plane wave Dialog opens up.* In the Field Definition section of the dialog, you can enter the '''Amplitude''' of the incident electric field in V/m and its '''Phase''' in degrees. The default field Amplitude is 1 V/m with a zero Phase.* The direction of the Plane Wave is determined by the incident '''Theta''' and '''Phi''' angles in degrees. You can also set the '''Polarization''' of the plane wave and choose from the five options described earlier. When the '''Custom Linear''' option is selected, you also need to enter the X, Y, Z components of the '''E-Field Vector'''.