Difference between revisions of "EM.Ferma"

From Emagtech Wiki
Jump to: navigation, search
(Variety of Physical Objects in EM.Ferma)
 
(442 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[EM.Illumina]] is a 3D electromagnetic simulator for modeling large free-space structures. It features a high frequency asymptotic solver based on Physical Optics (PO) for simulation of electromagnetic scattering from large metallic structures and impedance surfaces.
+
[[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.Tempo]] [[image:prop-ico.png | 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]]'''
  
[[EM.Illumina]] 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.Illumina]]'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.
+
[[Image:Back_icon.png|30px]] '''[[EM.Cube | Back to EM.Cube Main Page]]'''
 +
==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 a full-wave simulator like [[EM.Picasso]], [[EM.Tempo]] or [[EM.Libera]].
+
=== EM.Ferma in a 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. 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 to the enormous memory requirements for storage of the resulting moment matrices. To solve this class of problems, you may instead pursue asymptotic electromagnetic analysis methods.
+
[[Image:Info_icon.png|30px]] Click here to learn more about the '''[[Electrostatic & Magnetostatic Field Analysis | Theory of Electrostatic 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 &lambda;<sub>0 </sub>is the free-space wavelength. Under such conditions, electromagnetic fields and waves start to behave more like optical fields and waves. Asymptotic methods are typically inspired by optical analysis. Two important examples of asymptotic methods are the Shoot-and-Bounce-Rays (SBR) method and Physical Optics (PO). The SBR method, which is featured in EM.Cube's [[Propagation Module]], 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
+
[[Image:Info_icon.png|30px]] Click here to learn more about the '''[[Steady-State_Thermal_Analysis | Theory of Steady-State Heat Transfer Methods]]'''.
  
=== 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. 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 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 of the scatterer are approximated by:
+
=== EM.Ferma as the Static Module of 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>
+
[[Image:Info_icon.png|30px]] Click here to learn more about '''[[Getting_Started_with_EM.Cube | EM.Cube Modeling Environment]]'''.
<!--[[File:PO1(1).png]]-->
+
  
where '''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:
+
=== Advantages & Limitations of EM.Ferma's Static Simulator ===
  
:<math> \alpha = \frac{1-Z/\eta_0}{1+Z/\eta_0} </math>
+
EM.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-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 [[EM.Cube]]'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.
<!--[[File:PO2.png]]-->
+
  
where <math>\eta_0 = 120\pi \; \Omega</math> is the intrinsic impedance of the free space. Then, the electric and magnetic currents reduce to:
+
<table>
 +
<tr>
 +
<td>
 +
[[Image:Ferma L8 Fig title.png|thumb|left|400px| Vector plot of electric 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>
+
=== Physical Structure Definition ===
<!--[[File:PO3.png]]-->
+
  
Two limiting cases of an impedance surface are perfect electric conductor (PEC) and perfect magnetic conductor (PMC) surface. For a PEC surface, Z = 0,  &alpha; = 1, and one can write:
+
<ul>
 +
<li>
 +
Perfect electric conductor(PEC) solids and surfaces (Electrostatics)</li>
 +
<li>
 +
Dielectric objects (Electrostatics)</li>
 +
<li>
 +
Magnetic (permeable) objects (Magnetostatics)</li>
 +
<li>
 +
Perfect thermal conductor (PTC) solids and surfaces (Thermal)</li>
 +
<li>
 +
Insulator objects (Thermal)</li>
 +
</ul>
  
:<math> \mathbf{J(r)} = 2 \mathbf{\hat{n} \times H(r)} </math>
+
=== Sources ===
  
:<math> \mathbf{M(r)} = 0 </math>
+
<ul>
<!--[[File:PO4.png]]-->
+
<li>
 +
Fixed-potential PEC for maintaining equi-potential metal objects (Electrostatics)</li>
 +
<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,  &alpha; = -1, and one can write:
+
=== Mesh generation ===
  
:<math> \mathbf{J(r)} = 0 </math>
+
<ul>
 +
<li>
 +
Fixed-size brick&nbsp;cells</li>
 +
</ul>
  
:<math> \mathbf{M(r)} = -2 \mathbf{\hat{n} \times E(r)} </math>
+
=== 3D Electrostatic & Magnetostatic Simulation ===
<!--[[File:PO5.png]]-->
+
  
Another special case is a Huygens surface with equivalent electric and magnetic surface currents. In that case, Z =  &eta;<sub>0</sub>, &alpha; = 0, and one can write:
+
<ul>
 +
<li>
 +
Finite difference solution of Laplace and Poisson equations for the electric scalar potential with Dirichlet and Neumann domain boundary conditions&nbsp;</li>
 +
<li>
 +
Finite difference solution of Laplace and Poisson equations for the magnetic vector potential with Dirichlet domain boundary conditions&nbsp;</li>
 +
<li>
 +
Calculation of electric scalar potential and electric field</li>
 +
<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, Ohmic power loss and 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 ===
  
:<math> \mathbf{M(r) = -\hat{n} \times E(r)} </math>
+
<ul>
<!--[[File:PO10.png]]-->
+
<li>
 +
2D Finite difference solution of cross section of transmission line structures</li>
 +
<li>
 +
3D domain solution as well as 2D solution of a longitudinally infinite version of the structure defined on a&nbsp;2D plane&nbsp;&nbsp;</li>
 +
<li>
 +
Calculation of electric potential and electric field distribution</li>
 +
<li>
 +
Parametric sweep of transmission line&#39;s geometric and material parameters</li>
 +
<li>
 +
Optimization of transmission line&#39;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&nbsp;</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'''&lt; 0, and shadowed if '''n.k'''&gt; 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.
+
=== Data Generation &amp; Visualization ===
  
=== Calculating Near &amp; 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 the electric and magnetic surface currents are determined in the lit regions of the scatterer(s), they act as secondary sources and radiate into the free space. 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:
+
== Building the Physical Structure in EM.Ferma ==
  
:<math>
+
=== Variety of Physical Objects in EM.Ferma ===
\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}}_{EM}(r|r') \cdot M(r') } ds'
+
</math>
+
  
:<math>
+
The 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 (permeable) material 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 (FD) technique to find a numerical solution of your static boundary value problem.
\mathbf{ H(r) = 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 M(r') } ds'
+
</math>
+
<!--[[File:PO6.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 Module]], the background structure is the free space. Therefore, all these dyadic Green's functions reduce to the simple free-space Green's function of the form <math>\exp(-jk_0r)/(4\pi r)</math> and the near fields reduce to:  
+
[[EM.Ferma]] offers the following types of physical objects:
  
:<math>
+
{| class="wikitable"
\begin{align}
+
|-
\mathbf{ E(r) = E^{inc}(r) }
+
! scope="col"| Icon
& - jk_0 Z_0 \iint_{S_J} \left\{ \left[ 1 - \frac{j}{k_0 R} - \frac{1}{(k_0 R)^2} \right] \mathbf{J(r')} -  
+
! scope="col"| Physical Object Type
\left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot J(r')) \hat{R} } \right\}
+
! scope="col"| Applications
\frac{e^{-jk_0 R}}{4\pi R} ds' \\
+
! scope="col"| Geometric Object Types Allowed
& + jk_0 \iint_{S_M} \left[ 1-\frac{j}{k_0 R} \right] \mathbf{ (\hat{R} \times M(r')) } \frac{e^{-jk_0 R}}{4\pi R} ds'
+
! scope="col"| Notes & Restrictions
\end{align}
+
|-
</math>
+
| 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 (PEC)]]
 +
| 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
 +
|-
 +
| style="width:30px;" | [[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-source material
 +
|-
 +
| 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 (x,y,z)  
 +
| style="width:100px;" | Solid objects
 +
| style="width:250px;" | Acts as an electric source
 +
|-
 +
| style="width:30px;" | [[File:voxel_group_icon.png]]
 +
| 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 (x,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
 +
|-
 +
| style="width:30px;" | [[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
 +
|-
 +
| style="width:30px;" | [[File:pec_group_icon.png]]
 +
| style="width:200px;" | [[Glossary of EM.Cube's Materials, Sources, Devices & Other Physical Object Types#Fixed-Temperature PTC |Fixed-Temperature Perfect Thermal Conductor (PTC)]]
 +
| 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 (shares the same navigation tree node as PEC object)
 +
|-
 +
| style="width:30px;" | [[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-source material (shares the same navigation tree node as dielectric material)
 +
|-
 +
| style="width:30px;" | [[File:aniso_group_icon.png]]
 +
| 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 (x,y,z)
 +
| style="width:100px;" | Solid objects
 +
| style="width:250px;" | Acts as a thermal source (shares the same navigation tree node as volume charge)
 +
|-
 +
| 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]]
 +
| style="width:300px;" | Used for representing non-physical items 
 +
| 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>
+
=== Grouping Objects by Material or Source Type ===
\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]]-->
+
  
 +
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=|r-r'| \text{, } k_0 = \tfrac{2\pi}{\lambda_0} \text{ and } Z_0 = 1/Y_0 = \eta_0 </math>.
+
All 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-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, 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 added to the navigation tree to hold your new geometric object.
  
When k<sub>0</sub>r &gt;&gt; 1, i.e. in the far-zone field of the scatterer, 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 and magnetic fields as follows:
+
It is important to note that there is a one-to-one correspondence between electrostatic and thermal simulation entities:
  
:<math>
+
{| class="wikitable"
\mathbf{E^{ff}(r)} = \frac{jk_0 e^{-jk_0 r}}{4\pi r}
+
|-
\left\{ Z_0 \mathbf{ \hat{r} \times \hat{r} } \times \iint_{S_J} \mathbf{J(r')} e^{-jk_0 \mathbf{\hat{r}\cdot r'}} ds' +
+
! scope="col"| Electrostatic Item
\mathbf{\hat{r}} \times \iint_{S_M} \mathbf{M(r')} e^{-jk_0 \mathbf{ \hat{r} \cdot r' } } ds' \right\}
+
! scope="col"| Corresponding Thermal Item
</math>
+
|-
 +
| style="width:200px;" | Electric Scalar Potential
 +
| style="width:200px;" | Temperature
 +
|-
 +
| style="width:200px;" | Electric Field
 +
| style="width:200px;" | Heat Flux Density
 +
|-
 +
| style="width:200px;" | Perfect Electric Conductor
 +
| style="width:200px;" | Perfect Thermal Conductor
 +
|-
 +
| style="width:200px;" | Dielectric Material
 +
| style="width:200px;" | Insulator Material
 +
|-
 +
| style="width:200px;" | Volume Charge
 +
| style="width:200px;" | Volume Heat Source
 +
|}
  
:<math> \mathbf{H^{ff}(r)} = \frac{1}{Z_0} \mathbf{\hat{r} \times E^{ff}(r)} </math>
+
{{Note|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.}}
<!--[[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 &amp; EFIE):
+
[[Image:Info_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]]'''.
:<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(r') }) \frac{e^{-jk_0 R}}{4\pi R} \,ds' \\
+
  
& -j k_0 Y_0 \iint_{S_M} \left[ \left( 1 - \frac{j}{k_0 R} - \frac{1}{(k_0 R)^2} \right) \mathbf{M(r')} -
+
<table>
\left( 1-\frac{3j}{k_0 R}-\frac{3}{(k_0 R)^2} \right) \mathbf{ (\hat{R} \cdot M(r')) \hat{R} } \right]
+
<tr>
\frac{e^{-jk_0 R}}{4\pi R} \,ds'
+
<td> [[Image:STAT MAN1.png|thumb|left|480px|EM.Ferma's navigation tree.]] </td>
\end{align}
+
</tr>
\right\rbrace
+
</table>
</math>
+
  
 +
=== A Note on Material and Source Types in EM.Ferma ===
  
:<math>
+
In [[EM.Cube]]'s other modules, 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. 
\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(r') }) \frac{e^{-jk_0 R}}{4\pi R} \,ds' \\
+
  
& -j k_0 Z_0 \iint_{S_J} \left[ \left( 1 - \frac{j}{k_0 R} - \frac{1}{(k_0 R)^2} \right) \mathbf{J(r')} -
+
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-potential perfect electric conductors (PEC) in your project to model metal objects. You can also define fixed-potential PEC objects with a nonzero voltage, 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.
\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^{-jk_0 R}}{4\pi R} \,ds'
+
\end{align}
+
\right\rbrace
+
</math>
+
<!--[[File:PO9(1).png]]-->
+
  
where '''R''' ='''r''' - '''r'''', R = |'''R'''|, and
+
== EM.Ferma's Computational Domain ==
  
:<math>\mathbf{ \hat{R} = \frac{R}{|R|} = \frac{r-r'}{|r-r'|} }</math>
+
===The Domain Box===
<!--[[File:PO11.png]]-->
+
  
The shadowing phenomenon can indeed be attributed to near-field interaction of surface currents. The current on the lit region produces a scattered field in the forward direction that is almost equal and out of phase with the incident wave. Hence, the sum of the scattered field and incident field over the shadowed region almost cancel each other, giving rise to a very small field there. This suggests that keeping track 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 next.
+
In EM.Ferma, the Poisson or Laplace equations are solved subject to boundary conditions using the Finite Difference technique. As a result, you need to specify a finite computational domain and then specify the domain boundary conditions. EM.Ferma's computational domain defines where the domain boundary condition will be specified. A default domain box is always placed in the project workspace as soon as you draw your first object. The domain can be seen as a blue cubic wireframe that surrounds all of the CAD objects in the project workspace.  
  
The starting point for the iterative PO solution is the above MFIE and EFIE integral equations. To the first (zero-order) approximation, we can write
+
To modify the domain settings, click the Domain button of the Simulate Toolbar or right-click on "3D Static Domain" entry in the Navigation Tree and select "Domain Settings..." from the contextual menu. In the Domain Settings Dialog, the computational domain can be 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.     
  
:<math>
+
<table>
\begin{align}
+
<tr>  
& \mathbf{J^{(0)}(r)} = (1+\alpha) \mathbf{ \hat{n} \times H^{inc}(r) } \\
+
<td> [[Image:Qsource5.png|thumb|left|480px|EM.Ferma's Domain Settings dialog.]] </td>
& \mathbf{M^{(0)}(r)} = -(1-\alpha) \mathbf{ \hat{n} \times E^{inc}(r) }
+
</tr>
\end{align}
+
</table>
</math>
+
<!--[[File:PO13.png]]-->
+
  
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'''&lt; 0 is examined. In complex scatterer geometries, there are shadowed points in concave regions where '''n.k'''&gt; 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}} < 0 \quad \text{or} \quad \mathbf{\hat{n} \cdot (r-r')} < 0</math>
+
*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 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/m.  
<!--[[File:PO12.png]]-->
+
  
At the subsequent iterations, the higher order PO currents are given by;
+
*The magnetostatic simulation engine always assumes Dirichlet domain boundary conditions and sets the values of the magnetic vector potential to zero on all the domain walls.
  
[[File:PO14(1).png]]
+
*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&deg;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.
  
For most practical applications, iterations up to the second order is sufficient. The iterative solution will not only account for double-bounce scattering over the lit regions but it also removes the lower order currents erroneously placed over concave shadowed areas.
+
To modify the boundary conditions, right-click on "Boundary Conditions" in the navigation tree, and select "Boundary Conditions..." from the contextual menu to open the Boundary Conditions Dialog. When you switch from the electrostatic-magnetostatic solver to the 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 &deg;C, thermal conductivity of the environment in W/(m.K) and the convective coefficient in W/(m<sup>2</sup>.K). You can also disable the enforcement of the convective boundary condition on the surface 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. 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:
+
== EM.Ferma's Simulation Data & Observables ==
  
:<math>
+
At the end 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.  
\begin{align}
+
& \mathbf{ J(r) = \hat{n} \times H(r) } \\
+
& \mathbf{ M(r) = -\hat{n} \times E(r) }
+
\end{align}
+
</math>
+
<!--[[File:PO10(1).png]]-->
+
  
In the physical optics domain, the known equivalent electric and magnetic surface currents (or indeed the known tangential E and H field components) over a given closed surface S can be used to find reradiated electric and magnetic fields everywhere in the space as follows:
+
Besides the electric and magnetic fields and temperature, EM.Ferma can compute a number of field integral quantities such as voltage, current, flux, energy, etc. The field components, potential values and field integrals are written into output data files and can be visualized on the screen or graphed in Data Manager only if you define a field sensor or a field integral observable. In the 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.   
  
:<math>
+
EM.Ferma offers the following types of output simulation data:  
\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} - \frac{1}{(k_0 R)^2} \right] \mathbf{J_j(r')} \\
+
|-
& -Z_0 \left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot J_j(r')) \hat{R} } \\
+
! scope="col"| Icon
& - \left[ 1 - \frac{j}{k_0 R} \right] \mathbf{ (\hat{R} \times M_j(r')) }
+
! scope="col"| Simulation Data Type
\end{align}
+
! scope="col"| Observable Type
 +
! scope="col"| Applications
 +
|-
 +
| style="width:30px;" | [[File:fieldsensor_icon.png]]
 +
| style="width:150px;" | Near-Field Distribution Maps
 +
| style="width:150px;" | [[Glossary of EM.Cube's Simulation Observables & Graph Types#Near-Field_Sensor_Observable |Near-Field Sensor]]
 +
| 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'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-Field_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;" | [[File:fieldsensor_icon.png]]
 +
| style="width:150px;" | Thermal Energy Density Maps
 +
| style="width:150px;" | [[Glossary of EM.Cube's Simulation Observables & Graph Types#Near-Field_Sensor_Observable |Near-Field Sensor]]
 +
| 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]]
 +
| style="width:450px;" | Computing line, surface and volume integrals of the electric and magnetic fields and heat flux
 +
|}
  
\right\rbrace
+
Click on each category to learn more details about it in the [[Glossary of EM.Cube's Simulation Observables & Graph Types]].
</math>
+
  
 +
<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>
  
:<math>
+
The table below list the different types of field integrals and their definitions:
\mathbf{H^{inc}(r)} = -jk_0 \sum_j \iint_{\Delta_j} \, ds' \frac{e^{-jk_0 R}}{4\pi R}
+
\left\lbrace
+
  
\begin{align}
+
{| class="wikitable"
& Y_0 \left[ 1 - \frac{j}{k_0 R} - \frac{1}{(k_0 R)^2} \right] \mathbf{M_j(r')} \\
+
|-
& -Y_0 \left[ 1 - \frac{3j}{k_0 R} - \frac{3}{(k_0 R)^2} \right] \mathbf{ (\hat{R} \cdot M_j(r')) \hat{R} } \\
+
! scope="col"| Field Integral
& + \left[ 1 - \frac{j}{k_0 R} \right] \mathbf{ (\hat{R} \times J_j(r')) }
+
! scope="col"| Definition
\end{align}
+
! scope="col"| Output Data File
 +
|-
 +
! scope="row"| Voltage
 +
| <math> V = - \int_C \mathbf{E(r)} . \mathbf{dl} </math>
 +
| voltage.DAT
 +
|-
 +
! scope="row"| Current
 +
| <math> I = \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{1}{2} \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(r)} \vert ^2 dv </math>
 +
| energy_H.DAT
 +
|-
 +
! scope="row"| Ohmic Power Loss
 +
| <math> P_{ohmic} = \int\int\int_V \sigma \vert \mathbf{E(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
 +
|-
 +
! scope="row"| Capacitance (Alternative)
 +
| <math> C = 2W_E/V^2 = 2 \int \int \int_V \epsilon  \vert \mathbf{E(r)} \vert ^2  dv / \left( \int_C \mathbf{E(r)} . \mathbf{dl} \right)^2</math>
 +
| capacitance.DAT
 +
|-
 +
! scope="row"| Self-Inductance
 +
| <math> L = \Phi_H/I = \int\int_S \mu \mathbf{H(r)} . \mathbf{ds} / \oint_{C_o} \mathbf{H(r)} . \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)} . \mathbf{ds} / \oint_{C_o} \mathbf{H(r)} . \mathbf{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( \int_C \mathbf{E(r)} . \mathbf{dl} \right)^2 / \int\int\int_V \sigma \vert \mathbf{E(r)} \vert ^2 dv </math>
 +
| resistance.DAT
 +
|-
 +
! scope="row"| Resistance (Alternative 2)
 +
| <math> R = P_{ohmic}/I_{cond}^2 = \int\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> \Phi_T = \int\int_{S_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>
</math>
+
<tr>
<!--[[File:PO16.png]]-->
+
<td>
 +
[[Image:Qsource13.png|thumb|left|480px|Defining the capacitance observable in the field integral dialog.]]
 +
</td>
 +
</tr>
 +
<tr>
 +
<tr>
 +
<td>
 +
[[Image:Qsource11.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 the summation over index ''j'' is carried out for all the elementary cells &Delta;<sub>j</sub> that make up the Huygens box. In EM.Cube Huygens surfaces are cubic and are discretized using a rectangular mesh. Therefore, &Delta;<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 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.   
+
== Discretizing the Physical Structure in EM.Ferma ==
  
The far fields of the Huygens surface currents are calculated from the following relations:
+
===The Static Mesh===
  
:<math>
+
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: &Delta;x, &Delta;y, &Delta;z. By default, the mesh cell size is set to one unit project along all the three directions (with &Delta;x = &Delta;y = &Delta;z). To modify the cell size, click the Mesh Settings button of the Simulate Toolbar or right-click on "Static Mesh" in the Navigation Tree, and select "Mesh Settings..." from the contextual menu to open the Mesh Settings Dialog.
\mathbf{E^{ff}(r)} = \frac{jk_0}{4\pi} \frac{e^{-jk_0 r}}{r}
+
\sum_j \iint_{\Delta_j} \left[ Z_0 \, \mathbf{ \hat{r} \times \hat{r} \times J_j(r') } +
+
{{Note|To obtain accurate results, it is highly recommended to use a square mesh as much as possible.}}
\mathbf{ \hat{r} \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>
+
[[Image: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]]'''.
<!--[[File:PO17(1).png]]-->
+
  
== Physical Structure &amp; 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.Cube's Physical Optics (PO) Module organizes physical objects by their surface type. A regular object is assumed to be made of one of the three surface types:
+
<table>
 +
<tr>
 +
<td> [[Image:Qsource2.png|thumb|360px|Geometry of a spherical charge source and the enclosing domain box.]] </td>
 +
<td> [[Image:Qsource3.png|thumb|360px|Fixed-cel mesh of the spherical charge object.]] </td>
 +
</tr>
 +
</table>
  
# Perfect Electric Conductor (PEC)
+
== Running Static Simulations in EM.Ferma ==
# Perfect Magnetic Conductor (PMC)
+
# Generalized Impedance Surface
+
  
[[PO Module]] can only handle surface and [[Solid Objects|solid objects]]. 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 '''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.
+
=== EM.Ferma's Simulation Modes ===
  
[[File:PO18(1).png]] [[File:PO19.png]]
+
[[EM.Ferma]] currently offers three different simulation modes as follows:  
  
[[File:PO20.png]] [[File:PO21.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;" | [[#Running an Electrostatic or Magnetostatic Analysis | Analysis]]
 +
| style="width:270px;" | 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.Cube | 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;" | [[Parametric_Modeling_%26_Simulation_Modes_in_EM.Cube#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, PMC and Impedance Surface dialogs.
+
=== Running an Electrostatic, Magnetostatic or Thermal Analysis ===
  
=== Creating New Objects &amp; 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 you draw in EM.Cube's project workspace always belong to the &quot;Active&quot; surface group. By default, the last object group that you created remains active until you change it. The current active group is always listed in bold letters in the Navigation Tree. Any surface group can be made active by right clicking on its name in the Navigation Tree and selecting the '''Activate''' item of the contextual menu. If you start a new [[PO Module]] project and draw any object without having previously defined a surface group, a default PEC group is automatically created and added to the Navigation Tree to hold your new object.  
+
To run a static simulation, first you have to open the Run Dialog. This is done by clicking the "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: '''Electrostatic-Magnetostatic Solver''' and '''Steady-State Thermal Solver'''. Clicking the Run button of this dialog starts a static analysis. A separate window pops up which reports the progress 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 &gt; Physical Optics &gt;''' from the contextual menu. This opens another sub-menu with a list of all the available surface groups already defined in [[PO Module]]. 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 EM.Cube's other modules, or vice versa. In that case, the sub-menus of the '''Move To &gt;''' item of the contextual menu will indicate all the EM.Cube modules that have valid groups for transfer of the selected objects.  
+
<table>
 +
<tr>
 +
<td> [[Image:Ferma L1 Fig11.png|thumb|left|600px|EM.Ferma's Simulation Run dialog.]] </td>
 +
</tr>
 +
</table>
  
{{Note|In EM.Cube, you can import external CAD models (such as STEP, IGES, STL models, etc.) only to [[CubeCAD]]. From [[CubeCAD]], you can then move the imported objects to any other computational module including [[PO Module]].}}
+
In EM.Ferma you don'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, you will get nonzero electric fields and zero magnetic fields. When there are only magnetic sources present, you will get nonzero magnetic fields and zero electric fields. On the other hand, since the electrostatic and thermal solvers share the same navigation resources, you can run only one of the two engines at a time. By default, the electrostatic solver is enabled.  
  
[[File:PO22(1).png|800px]]
+
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.
  
Figure 1: Moving objects between different surface groups in [[PO Module]].
+
===Static Simulation Engine Settings===
  
=== Generating &amp; 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|thumb|250px|[[PO Module]]'s Mesh Settings dialog]]
+
{{Note|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 [[PO Module]] involves three steps:
+
<table>
 +
<tr>
 +
<td>
 +
[[Image:Qsource7.png|thumb|left|480px|EM.Ferma's Static Engine Settings dialog.]]
 +
</td>
 +
</tr>
 +
</table>
  
# Setting the mesh properties.
+
== The 2D Quasi-Static Simulation Mode==
# Generating the mesh.
+
# Verifying the mesh.
+
  
The objects of your physical structure are meshed based on a specified mesh density expressed in cells/&lambda;<sub>0</sub>. The default mesh density is 20 cells/&lambda;<sub>0</sub>. To view the PO mesh, click on the [[File:mesh_tool_tn.png]] button of the '''Simulate Toolbar''' or select '''Menu &gt; Simulate &gt; Discretization &gt; Show Mesh''' or use the keyboard shortcut '''Ctrl+M'''. When the PO mesh is displayed in the project workspace, 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 or select mode, click this button one more time, or deselect '''Menu &gt; Simulate &gt; Discretization &gt; Show Mesh''' to remove its check mark or simply click the '''Esc Key''' of the keyboard.
+
EM.Ferma's electrostatic simulation engine features a 2D solution mode where your physical model is treated as a longitudinally infinite structure in the direction normal to specified "2D Solution Plane". A 2D solution plane is defined based on a "Field Sensor" definition that already exists in your project. To explore EM.Ferma's 2D mode, right-click on '''2D Solution Planes''' in the "Computational Domain" section of the navigation tree and select '''2D Domain Settings...''' from the contextual menu. In the 2D Static Domain dialog, check the checkbox labeled "Reduce the 3D Domain to a 2D Solution Plane". The first field sensor observable in the navigation tree is used for the definition of the 2D solution plane.  
  
&quot;Show Mesh&quot; 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 PO 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 to generate a mesh from the ground up by selecting '''Menu &gt; Simulate &gt; Discretization &gt; Regenerate Mesh''' or by right clicking on the '''3-D Mesh''' item of the Navigation Tree and selecting '''Regenerate''' from the contextual menu.
+
At the end of a 2D electrostatic analysis, you can view the electric field and potential results on the field sensor plane. It is assumed that your structure is invariant along the direction normal to the 2D solution plane. Therefore, your computed field and potential profiles must be valid at all the planes perpendicular to the specified longitudinal direction. A 2D structure of this type can be considered to represent a transmission line of infinite length. EM.Ferma also performs a quasi-static analysis of the transmission line structure, and usually provides good results at lower microwave frequencies (f < 10GHz). It computes the characteristics impedance Z<sub>0</sub> and effective permittivity &epsilon;<sub>eff</sub> of the multi-conductor TEM or quasi-TEM transmission line. The results are written to two output data files named "solution_plane_Z0.DAT" and "solution_plane_EpsEff.DAT", respectively.  
  
To set the PO mesh properties, click on the [[File:mesh_settings.png]] button of the '''Simulate Toolbar''' or select '''Menu &gt; Simulate &gt; Discretization &gt; 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. The default algorithm is '''Regular Surface Mesh''', which creates triangular elements that have almost equal edge lengths. 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.
+
<table>
 +
<tr>
 +
<td> [[Image:Qsource14.png|thumb|left|450px|The 2D static domain dialog.]] </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 [[PO Module]] uses a triangular surface mesh to discretize all the surface and [[Solid Objects|solid objects]] in the project workspace. As mentioned earlier, [[Curve Objects|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 Objects|solid objects]]. In contrast, [[Surface Objects|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 and the other representing the lower or negative side. This may lead to a very large number of cells. 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.
+
<table>
 +
<tr>
 +
<td>
 +
[[Image:Qsource16.png|thumb|left|480px|A field sensor and 2D solution plane defined for a microstrip line.]]
 +
</td>
 +
</tr>
 +
</table>
  
[[File:PO24.png]]
+
<table>
 +
<tr>
 +
<td> [[Image:Qsource17.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 &quot;unioned&quot;. 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>
  
[[File:PO25.png|400px]] [[File:PO26.png|400px]]
+
[[Image:Top_icon.png|30px]] '''[[EM.Ferma#Product_Overview | Back to the Top of the Page]]'''
  
Figure: Geometry and PO mesh of an overlapping sphere and ellipsoid.
+
[[Image:Tutorial_icon.png|30px]] '''[[EM.Cube#EM.Ferma_Documentation | EM.Ferma Tutorial Gateway]]'''
  
=== Mesh Density &amp; Local Mesh Control ===
+
[[Image:Back_icon.png|30px]] '''[[EM.Cube | Back to EM.Cube Main Page]]'''
 
+
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.
+
 
+
[[File: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:PO30.png|thumb|300px|PO Module's Short Dipole Source dialog]]
+
 
+
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 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 &quot;MoM.IDI&quot; 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 Module]] provides the following polarization options:
+
 
+
* TMz
+
* TEz
+
* Custom Linear
+
* LCPz
+
* RCPz
+
 
+
The direction of incidence is defined through the &theta; and &phi; 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 &theta; = 180° and &phi; = 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 (&theta; = 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'''.
+

Latest revision as of 16:59, 11 January 2021

Splash-static.jpg

Electrostatic, Magnetostatic & Thermal Solvers For DC And Low Frequency Simulations

Cube-icon.png Cad-ico.png Fdtd-ico.png Prop-ico.png Planar-ico.png Metal-ico.png Po-ico.png

Tutorial icon.png EM.Ferma Tutorial Gateway

Back icon.png Back to EM.Cube Main Page

Product Overview

EM.Ferma in a Nutshell

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.

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.

Info icon.png Click here to learn more about the Theory of Electrostatic and Magnetostatic Methods.

Info icon.png Click here to learn more about the Theory of Steady-State Heat Transfer Methods.

Vector plot of magnetic field distribution in a cylindrical permanent magnet.

EM.Ferma as the Static Module of EM.Cube

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 CubeCAD with all of EM.Cube's other computational modules.

Info icon.png Click here to learn more about EM.Cube Modeling Environment.

Advantages & Limitations of EM.Ferma's Static Simulator

EM.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-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 EM.Cube'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.

Vector plot of electric field distribution in a coplanar waveguide (CPW) transmission line.

EM.Ferma Features at a Glance

Physical Structure Definition

  • Perfect electric conductor(PEC) solids and surfaces (Electrostatics)
  • Dielectric objects (Electrostatics)
  • Magnetic (permeable) objects (Magnetostatics)
  • Perfect thermal conductor (PTC) solids and surfaces (Thermal)
  • Insulator objects (Thermal)

Sources

  • Fixed-potential PEC for maintaining equi-potential metal objects (Electrostatics)
  • Volume charge sources (Electrostatics)
  • Volume current sources (Magnetostatics)
  • Wire current sources (Magnetostatics)
  • Permanent magnets (Magnetostatics)
  • Fixed-temperature PTC for maintaining iso-thermal objects (Thermal)
  • Volume heat sources (Thermal)

Mesh generation

  • Fixed-size brick cells

3D Electrostatic & Magnetostatic Simulation

  • Finite difference solution of Laplace and Poisson equations for the electric scalar potential with Dirichlet and Neumann domain boundary conditions 
  • Finite difference solution of Laplace and Poisson equations for the magnetic vector potential with Dirichlet domain boundary conditions 
  • Calculation of electric scalar potential and electric field
  • Calculation of magnetic vector potential and magnetic field
  • Calculation of electric flux over user defined flux boxes and capacitance
  • Calculation of magnetic flux over user defined flux surfaces and inductance
  • Calculation of electric and magnetic energies, Ohmic power loss and resistance
  • Parametric sweep with variable object properties or source parameters

2D Quasi-Static Simulation

  • 2D Finite difference solution of cross section of transmission line structures
  • 3D domain solution as well as 2D solution of a longitudinally infinite version of the structure defined on a 2D plane  
  • Calculation of electric potential and electric field distribution
  • Parametric sweep of transmission line's geometric and material parameters
  • Optimization of transmission line's parameters for impedance design

Steady-State Thermal Simulation

  • Finite difference solution of Laplace and Poisson equations for the temperature with Dirichlet and Neumann domain boundary conditions 
  • Calculation of temperature and heat flux density
  • Calculation of thermal energy density on field sensor planes
  • Calculation of thermal flux over user defined flux boxes
  • Calculation of thermal energy

Data Generation & Visualization

  • Electric and magnetic field intensity and vector plots on planes
  • Electric and magnetic potential intensity plots on planes
  • Temperature and heat flux intensity and vector plots on planes
  • Electric and magnetic energy density, dissipated power density and thermal energy density plots on planes
  • Animation of field and potential plots after parametric sweeps
  • Graphs of characteristic impedance and effective permittivity of transmission line structures vs. sweep variables
  • Custom output parameters defined as mathematical expressions of standard outputs

Building the Physical Structure in EM.Ferma

Variety of Physical Objects in EM.Ferma

The 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 (permeable) material 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 (FD) technique to find a numerical solution of your static boundary value problem.

EM.Ferma offers the following types of physical objects:

Icon Physical Object Type Applications Geometric Object Types Allowed Notes & Restrictions
Pec group icon.png Fixed-Potential Perfect Electric Conductor (PEC) Modeling perfect metals with a fixed voltage Solid and surface objects Can be considered an electric source if the fixed voltage is nonzero
Diel group icon.png Dielectric/Magnetic Material Modeling any homogeneous or inhomogeneous material Solid objects non-source material
Aniso group icon.png Volume Charge Modeling volume charge sources with a fixed charge density or an expression in the global coordinates (x,y,z) Solid objects Acts as an electric source
Voxel group icon.png Volume Current Modeling volume current sources with a fixed volume current density vector or expressions in the global coordinates (x,y,z) Solid objects Acts as a magnetic source
Pmc group icon.png Permanent Magnet Modeling permanent magnet sources with a fixed magnetization vector or expressions in the global coordinates (x,y,z) Solid objects Acts as a magnetic source
Thin group icon.png Wire Current Modeling wire current sources Line and polyline objects Acts as a magnetic source
Pec group icon.png Fixed-Temperature Perfect Thermal Conductor (PTC) Modeling isothermal surfaces with a fixed temperature Solid and surface objects Can be considered a thermal source if the fixed temperature is different than the ambient temperature (shares the same navigation tree node as PEC object)
Diel group icon.png Insulator Material Modeling any homogeneous or inhomogeneous material Solid objects non-source material (shares the same navigation tree node as dielectric material)
Aniso group icon.png Volume Heat Source Modeling volume heat sources with a fixed heat density or an expression in the global coordinates (x,y,z) Solid objects Acts as a thermal source (shares the same navigation tree node as volume charge)
Virt group icon.png Virtual Object Used for representing non-physical items All types of objects 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.

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.

All 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-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, 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 added to the navigation tree to hold your new geometric object.

It is important to note that there is a one-to-one correspondence between electrostatic and thermal simulation entities:

Electrostatic Item Corresponding Thermal Item
Electric Scalar Potential Temperature
Electric Field Heat Flux Density
Perfect Electric Conductor Perfect Thermal Conductor
Dielectric Material Insulator Material
Volume Charge Volume Heat Source
Attention icon.png 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.

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.

Info icon.png Click here to learn more about Moving Objects among Different Groups.

EM.Ferma's navigation tree.

A Note on Material and Source Types in EM.Ferma

In EM.Cube's other modules, 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-potential perfect electric conductors (PEC) in your project to model metal objects. You can also define fixed-potential PEC objects with a nonzero voltage, 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.

EM.Ferma's Computational Domain

The Domain Box

In EM.Ferma, the Poisson or Laplace equations are solved subject to boundary conditions using the Finite Difference technique. As a result, you need to specify a finite computational domain and then specify the domain boundary conditions. EM.Ferma's computational domain defines where the domain boundary condition will be specified. A default domain box is always placed in the project workspace as soon as you draw your first object. The domain can be seen as a blue cubic wireframe that surrounds all of the CAD objects in the project workspace.

To modify the domain settings, click the Domain button of the Simulate Toolbar or right-click on "3D Static Domain" entry in the Navigation Tree and select "Domain Settings..." from the contextual menu. In the Domain Settings Dialog, the computational domain can be 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.

EM.Ferma's Domain Settings dialog.

Domain Boundary Conditions

  • 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 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/m.
  • The magnetostatic simulation engine always assumes Dirichlet domain boundary conditions and sets the values of the magnetic vector potential to zero on all the domain walls.
  • 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/m2. A zero heat flux means a perfectly insulated domain box and is known as the adiabatic boundary condition.

To modify the boundary conditions, right-click on "Boundary Conditions" in the navigation tree, and select "Boundary Conditions..." from the contextual menu to open the Boundary Conditions Dialog. When you switch from the electrostatic-magnetostatic solver to the 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/(m2.K). You can also disable the enforcement of the convective boundary condition on the surface of solid insulator objects.

EM.Ferma's Boundary Conditions dialog.

EM.Ferma's Simulation Data & Observables

At the end 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.

Besides the electric and magnetic fields and temperature, EM.Ferma can compute a number of field integral quantities such as voltage, current, flux, energy, etc. The field components, potential values and field integrals are written into output data files and can be visualized on the screen or graphed in Data Manager only if you define a field sensor or a field integral observable. In the 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:

Icon Simulation Data Type Observable Type Applications
Fieldsensor icon.png Near-Field Distribution Maps Near-Field Sensor Computing electric and magnetic field components, electric scalar potential and magnitude of magnetic vector potential on a planar cross section of the computational domain
Fieldsensor icon.png Electric and Magnetic Energy and Dissipated Power Density Maps Near-Field Sensor Computing electric and magnetic energy densities and dissipated power density on a planar cross section of the computational domain
Fieldsensor icon.png Temperature and Heat Flux Distribution Maps Near-Field Sensor Computing temperature and heat flux components on a planar cross section of the computational domain
Fieldsensor icon.png Thermal Energy Density Maps Near-Field Sensor Computing thermal energy density on a planar cross section of the computational domain
Field integ icon.png Field Integral Quantities Static Field Integral Computing line, surface and volume integrals of the electric and magnetic fields and heat flux

Click on each category to learn more details about it in the Glossary of EM.Cube's Simulation Observables & Graph Types.

Electric field distribution of a spherical charge on a horizontal field sensor plane.
Electric scalar potential distribution of a spherical charge on a horizontal field sensor plane.

The table below list the different types of field integrals and their definitions:

Field Integral Definition Output Data File
Voltage [math] V = - \int_C \mathbf{E(r)} . \mathbf{dl} [/math] voltage.DAT
Current [math] I = \oint_{C_o} \mathbf{H(r)} . \mathbf{dl} [/math] current.DAT
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
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
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
Electric Energy [math] W_E = \frac{1}{2} \int \int \int_V \epsilon \vert \mathbf{E(r)} \vert ^2 dv [/math] energy_E.DAT
Magnetic Energy [math] W_H = \frac{1}{2} \int\int\int_V \mu \vert \mathbf{H(r)} \vert ^2 dv [/math] energy_H.DAT
Ohmic Power Loss [math] P_{ohmic} = \int\int\int_V \sigma \vert \mathbf{E(r)} \vert ^2 dv [/math] ohmic.DAT
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
Capacitance (Alternative) [math] C = 2W_E/V^2 = 2 \int \int \int_V \epsilon \vert \mathbf{E(r)} \vert ^2 dv / \left( \int_C \mathbf{E(r)} . \mathbf{dl} \right)^2[/math] capacitance.DAT
Self-Inductance [math] L = \Phi_H/I = \int\int_S \mu \mathbf{H(r)} . \mathbf{ds} / \oint_{C_o} \mathbf{H(r)} . \mathbf{dl} [/math] inductance.DAT
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
Mutual Inductance [math] M = \Phi_H^{\prime}/I = \int\int_{S^{\prime}} \mu \mathbf{H(r)} . \mathbf{ds} / \oint_{C_o} \mathbf{H(r)} . \mathbf{dl} [/math] mutual_inductance.DAT
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
Resistance (Alternative 1) [math] R = V^2/P_{ohmic} = \left( \int_C \mathbf{E(r)} . \mathbf{dl} \right)^2 / \int\int\int_V \sigma \vert \mathbf{E(r)} \vert ^2 dv [/math] resistance.DAT
Resistance (Alternative 2) [math] R = P_{ohmic}/I_{cond}^2 = \int\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
Thermal Flux [math] \Phi_T = \int\int_{S_o} \mathbf{q(r)} . \mathbf{ds} [/math] flux_T.DAT
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
Defining the capacitance observable in the field integral dialog.
The electric flux box for calculation of charge around a capacitor.
A line defining the voltage path for calculation of voltage between capacitor plates.

Discretizing the Physical Structure in EM.Ferma

The 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: Δx, Δy, Δz. By default, the mesh cell size is set to one unit project along all the three directions (with Δx = Δy = Δz). To modify the cell size, click the Mesh Settings button of the Simulate Toolbar or right-click on "Static Mesh" in the Navigation Tree, and select "Mesh Settings..." from the contextual menu to open the Mesh Settings Dialog.

Attention icon.png To obtain accurate results, it is highly recommended to use a square mesh as much as possible.

Info icon.png Click here to learn more about Working with Mesh Generator.

Info icon.png Click here to learn more about the properties of EM.Ferma's Fixed-Cell Brick Mesh Generator.

EM.Ferma's Mesh Settings dialog.
Geometry of a spherical charge source and the enclosing domain box.
Fixed-cel mesh of the spherical charge object.

Running Static Simulations in EM.Ferma

EM.Ferma's Simulation Modes

EM.Ferma currently offers three different simulation modes as follows:

Simulation Mode Usage Number of Engine Runs Frequency Restrictions
Analysis Simulates the physical structure "As Is" Single run N/A None
Parametric Sweep Varies the value(s) of one or more project variables Multiple runs N/A None
Optimization Optimizes the value(s) of one or more project variables to achieve a design goal Multiple runs N/A None

Running an Electrostatic, Magnetostatic or Thermal Analysis

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.

To run a static simulation, first you have to open the Run Dialog. This is done by clicking the "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: Electrostatic-Magnetostatic Solver and Steady-State Thermal Solver. Clicking the Run button of this dialog starts a static analysis. A separate window pops up which reports the progress of the current simulation.

EM.Ferma's Simulation Run dialog.

In EM.Ferma you don'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, you will get nonzero electric fields and zero magnetic fields. When there are only magnetic sources present, you will get nonzero magnetic fields and zero electric fields. On the other hand, since the electrostatic and thermal solvers share the same navigation resources, you can run only one of the two engines at a time. By default, the electrostatic solver is enabled.

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.

Static Simulation Engine Settings

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-6.

Attention icon.png 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.
EM.Ferma's Static Engine Settings dialog.

The 2D Quasi-Static Simulation Mode

EM.Ferma's electrostatic simulation engine features a 2D solution mode where your physical model is treated as a longitudinally infinite structure in the direction normal to specified "2D Solution Plane". A 2D solution plane is defined based on a "Field Sensor" definition that already exists in your project. To explore EM.Ferma's 2D mode, right-click on 2D Solution Planes in the "Computational Domain" section of the navigation tree and select 2D Domain Settings... from the contextual menu. In the 2D Static Domain dialog, check the checkbox labeled "Reduce the 3D Domain to a 2D Solution Plane". The first field sensor observable in the navigation tree is used for the definition of the 2D solution plane.

At the end of a 2D electrostatic analysis, you can view the electric field and potential results on the field sensor plane. It is assumed that your structure is invariant along the direction normal to the 2D solution plane. Therefore, your computed field and potential profiles must be valid at all the planes perpendicular to the specified longitudinal direction. A 2D structure of this type can be considered to represent a transmission line of infinite length. EM.Ferma also performs a quasi-static analysis of the transmission line structure, and usually provides good results at lower microwave frequencies (f < 10GHz). It computes the characteristics impedance Z0 and effective permittivity εeff of the multi-conductor TEM or quasi-TEM transmission line. The results are written to two output data files named "solution_plane_Z0.DAT" and "solution_plane_EpsEff.DAT", respectively.

The 2D static domain dialog.

Info icon.png Click here to learn more about the theory of 2D Quasi-Static Analysis of Transmission Lines.

A field sensor and 2D solution plane defined for a microstrip line.
Electric field distribution of the microstrip line on the 2D solution plane.
Electric scalar potential distribution of the microstrip line on the 2D solution plane.



Top icon.png Back to the Top of the Page

Tutorial icon.png EM.Ferma Tutorial Gateway

Back icon.png Back to EM.Cube Main Page